fix unused method type for return type (#1831)

fix unused method type for return type
This commit is contained in:
Tomáš Votruba 2019-08-09 10:40:50 +02:00 committed by GitHub
commit c10d77d993
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 26 additions and 3 deletions

View File

@ -0,0 +1,17 @@
<?php
namespace Rector\DeadCode\Tests\Rector\ClassMethod\RemoveUnusedPrivateMethodRector\Fixture;
use stdClass;
final class KeepStaticEdge
{
public static function run()
{
return self::iAmUsed();
}
private static function iAmUsed(): stdClass
{
}
}

View File

@ -1,6 +1,6 @@
<?php declare(strict_types=1);
namespace Rector\DeadCode\Tests\Rector\ClassMethod\RemoveUnusedPrivateMethodRector;
namespace Rector\DeadCode\Tests\Rector\ClassMethod\RemoveUnusedPrivateMethodRector\Fixture;
use PhpParser\Node;
use PhpParser\Node\Expr\Assign;

View File

@ -1,6 +1,6 @@
<?php declare(strict_types=1);
namespace Rector\DeadCode\Tests\Rector\ClassMethod\RemoveUnusedPrivateMethodRector;
namespace Rector\DeadCode\Tests\Rector\ClassMethod\RemoveUnusedPrivateMethodRector\Fixture;
use PhpParser\Node;
use PhpParser\Node\Expr\Assign;

View File

@ -14,6 +14,7 @@ final class RemoveUnusedPrivateMethodRectorTest extends AbstractRectorTestCase
__DIR__ . '/Fixture/static_method.php.inc',
__DIR__ . '/Fixture/private_constructor.php.inc',
// skip
__DIR__ . '/Fixture/keep_static_edge.php.inc',
__DIR__ . '/Fixture/keep_anonymous.php.inc',
__DIR__ . '/Fixture/skip_local_called.php.inc',
__DIR__ . '/Fixture/keep_in_trait.php.inc',

View File

@ -576,7 +576,12 @@ final class ParsedNodesByType
private function addCall(Node $node): void
{
// one node can be of multiple-class types
$classTypes = $this->resolveNodeClassTypes($node);
if ($node instanceof MethodCall) {
$classTypes = $this->resolveNodeClassTypes($node->var);
} else {
$classTypes = $this->resolveNodeClassTypes($node->class);
}
if ($classTypes === []) { // anonymous
return;
}