diff --git a/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/Fixture/use_name_from_alias.php.inc b/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/Fixture/use_name_from_alias.php.inc index e3465a6b498..9c4e84c1c4a 100644 --- a/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/Fixture/use_name_from_alias.php.inc +++ b/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/Fixture/use_name_from_alias.php.inc @@ -26,7 +26,7 @@ class UseNameFromAlias { public function run() { - return SomeAlias::class; + return \Rector\Tests\Php55\Rector\String_\StringClassNameToClassConstantRector\Source\AnotherClass::class; } } diff --git a/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/FixtureImport/use_name_from_alias.php.inc b/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/FixtureImport/use_name_from_alias.php.inc index 8604423bb82..c07a7aeb15e 100644 --- a/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/FixtureImport/use_name_from_alias.php.inc +++ b/rules-tests/Php55/Rector/String_/StringClassNameToClassConstantRector/FixtureImport/use_name_from_alias.php.inc @@ -26,7 +26,7 @@ class UseNameFromAlias { public function run() { - return SomeAlias::class; + return \Rector\Tests\Php55\Rector\String_\StringClassNameToClassConstantRector\Source\AnotherClass::class; } } diff --git a/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php b/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php index 2ef518ad582..4145b37cd94 100644 --- a/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php +++ b/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php @@ -9,15 +9,14 @@ use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\FuncCall; -use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\ClassConst; +use PHPStan\Analyser\Scope; use PHPStan\Reflection\ReflectionProvider; use Rector\Core\Contract\Rector\AllowEmptyConfigurableRectorInterface; -use Rector\Core\Rector\AbstractRector; +use Rector\Core\Rector\AbstractScopeAwareRector; use Rector\Core\ValueObject\PhpVersionFeature; -use Rector\Naming\Naming\AliasNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; @@ -29,7 +28,7 @@ * * @see \Rector\Tests\Php55\Rector\String_\StringClassNameToClassConstantRector\StringClassNameToClassConstantRectorTest */ -final class StringClassNameToClassConstantRector extends AbstractRector implements AllowEmptyConfigurableRectorInterface, MinPhpVersionInterface +final class StringClassNameToClassConstantRector extends AbstractScopeAwareRector implements AllowEmptyConfigurableRectorInterface, MinPhpVersionInterface { /** * @var string[] @@ -38,7 +37,6 @@ final class StringClassNameToClassConstantRector extends AbstractRector implemen public function __construct( private readonly ReflectionProvider $reflectionProvider, - private readonly AliasNameResolver $aliasNameResolver ) { } @@ -90,7 +88,7 @@ public function getNodeTypes(): array /** * @param String_ $node */ - public function refactor(Node $node): ?Node + public function refactorWithScope(Node $node, Scope $scope): ?Node { $classLikeName = $node->value; @@ -105,15 +103,7 @@ public function refactor(Node $node): ?Node } $fullyQualified = new FullyQualified($classLikeName); - - $name = clone $fullyQualified; - $name->setAttribute(AttributeKey::PARENT_NODE, $node->getAttribute(AttributeKey::PARENT_NODE)); - - $aliasName = $this->aliasNameResolver->resolveByName($name); - - $fullyQualifiedOrAliasName = is_string($aliasName) - ? new Name($aliasName) - : $fullyQualified; + $fullyQualifiedOrAliasName = new FullyQualified($scope->resolveName($fullyQualified)); if ($classLikeName !== $node->value) { $preSlashCount = strlen($node->value) - strlen($classLikeName);