From 57b835b5d011c373bbe550e3d4d52eeb602c5ca7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 25 Apr 2022 10:26:35 +0200 Subject: [PATCH] Make ClassRenamer use UseImportsResolver (#2160) --- rules/Renaming/NodeManipulator/ClassRenamer.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rules/Renaming/NodeManipulator/ClassRenamer.php b/rules/Renaming/NodeManipulator/ClassRenamer.php index e4e35e80599..8d7959898fe 100644 --- a/rules/Renaming/NodeManipulator/ClassRenamer.php +++ b/rules/Renaming/NodeManipulator/ClassRenamer.php @@ -28,6 +28,7 @@ use Rector\CodingStyle\Naming\ClassNaming; use Rector\Core\Configuration\Option; use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Core\ValueObject\Application\File; +use Rector\Naming\Naming\UseImportsResolver; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeRemoval\NodeRemover; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -54,7 +55,8 @@ final class ClassRenamer private readonly DocBlockClassRenamer $docBlockClassRenamer, private readonly ReflectionProvider $reflectionProvider, private readonly NodeRemover $nodeRemover, - private readonly ParameterProvider $parameterProvider + private readonly ParameterProvider $parameterProvider, + private readonly UseImportsResolver $useImportsResolver, ) { } @@ -413,14 +415,13 @@ final class ClassRenamer private function isValidUseImportChange(string $newName, UseUse $useUse): bool { - /** @var Use_[]|null $useNodes */ - $useNodes = $useUse->getAttribute(AttributeKey::USE_NODES); - if ($useNodes === null) { + $uses = $this->useImportsResolver->resolveForNode($useUse); + if ($uses === []) { return true; } - foreach ($useNodes as $useNode) { - if ($this->nodeNameResolver->isName($useNode, $newName)) { + foreach ($uses as $use) { + if ($this->nodeNameResolver->isName($use, $newName)) { // name already exists return false; }