From bb8b99d70c6e6d6f8d8e184c18798c0b497d9ef5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 23 Mar 2024 14:36:19 +0000 Subject: [PATCH] Updated Rector to commit e3e741edd3ca55fc2c24c040f43c8974bda7e953 https://github.com/rectorphp/rector-src/commit/e3e741edd3ca55fc2c24c040f43c8974bda7e953 [AutoImport] Allow auto import same namespace with sub use with docblock short name (#5763) --- .../FullyQualifiedNameClassNameImportSkipVoter.php | 13 +------------ .../ClassNameImport/ShortNameResolver.php | 6 ++++-- src/Application/VersionResolver.php | 4 ++-- src/PostRector/Rector/ClassRenamingPostRector.php | 6 +----- 4 files changed, 8 insertions(+), 21 deletions(-) diff --git a/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php b/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php index eb2d2f9a1fe..9fa3232bcb7 100644 --- a/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php +++ b/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php @@ -5,12 +5,9 @@ namespace Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter; use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; -use PhpParser\Node\Name; -use PhpParser\Node\Name\FullyQualified; use Rector\CodingStyle\ClassNameImport\ShortNameResolver; use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; use Rector\Configuration\RenamedClassesDataCollector; -use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; use Rector\ValueObject\Application\File; /** @@ -47,11 +44,6 @@ final class FullyQualifiedNameClassNameImportSkipVoter implements ClassNameImpor $fullyQualifiedObjectTypeShortName = $fullyQualifiedObjectType->getShortName(); $className = $fullyQualifiedObjectType->getClassName(); $removedUses = $this->renamedClassesDataCollector->getOldClasses(); - $originalName = $node->getAttribute(AttributeKey::ORIGINAL_NAME); - $originalNameToAttribute = null; - if ($originalName instanceof Name && !$originalName instanceof FullyQualified && $originalName->hasAttribute(AttributeKey::PHP_ATTRIBUTE_NAME)) { - $originalNameToAttribute = $originalName->getAttribute(AttributeKey::PHP_ATTRIBUTE_NAME); - } foreach ($shortNamesToFullyQualifiedNames as $shortName => $fullyQualifiedName) { if ($fullyQualifiedObjectTypeShortName !== $shortName) { $shortName = $this->cleanShortName($shortName); @@ -63,10 +55,7 @@ final class FullyQualifiedNameClassNameImportSkipVoter implements ClassNameImpor if ($className === $fullyQualifiedName) { return \false; } - if (!\in_array($fullyQualifiedName, $removedUses, \true)) { - return $originalNameToAttribute == null || !\in_array($originalNameToAttribute, $removedUses, \true); - } - return \false; + return !\in_array($fullyQualifiedName, $removedUses, \true); } return \false; } diff --git a/rules/CodingStyle/ClassNameImport/ShortNameResolver.php b/rules/CodingStyle/ClassNameImport/ShortNameResolver.php index 1bb71899915..db6efd46015 100644 --- a/rules/CodingStyle/ClassNameImport/ShortNameResolver.php +++ b/rules/CodingStyle/ClassNameImport/ShortNameResolver.php @@ -177,8 +177,10 @@ final class ShortNameResolver $shortNamesToFullyQualifiedNames = []; foreach ($shortNames as $shortName) { $stmtsMatchedName = $this->useImportNameMatcher->matchNameWithStmts($shortName, $stmts); - $fullyQualifiedName = \is_string($stmtsMatchedName) ? $stmtsMatchedName : $shortName; - $shortNamesToFullyQualifiedNames[$shortName] = $fullyQualifiedName; + if ($stmtsMatchedName == null) { + continue; + } + $shortNamesToFullyQualifiedNames[$shortName] = $stmtsMatchedName; } return $shortNamesToFullyQualifiedNames; } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 5b3102a9795..526351e0e96 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = 'c45f0e2cef30cb0b3090d51fd14dc6ffaa1fc095'; + public const PACKAGE_VERSION = 'e3e741edd3ca55fc2c24c040f43c8974bda7e953'; /** * @api * @var string */ - public const RELEASE_DATE = '2024-03-23 13:36:05'; + public const RELEASE_DATE = '2024-03-23 21:34:02'; /** * @var int */ diff --git a/src/PostRector/Rector/ClassRenamingPostRector.php b/src/PostRector/Rector/ClassRenamingPostRector.php index 24fc731c6c9..07ad855c75d 100644 --- a/src/PostRector/Rector/ClassRenamingPostRector.php +++ b/src/PostRector/Rector/ClassRenamingPostRector.php @@ -110,11 +110,7 @@ final class ClassRenamingPostRector extends \Rector\PostRector\Rector\AbstractPo { $phpAttributeName = $name->getAttribute(AttributeKey::PHP_ATTRIBUTE_NAME); if (\is_string($phpAttributeName)) { - $result = $this->classRenamer->renameNode(new FullyQualified($phpAttributeName, $name->getAttributes()), $oldToNewClasses, $scope); - if ($result instanceof FullyQualified) { - $result->setAttribute(AttributeKey::ORIGINAL_NAME, $name); - } - return $result; + return $this->classRenamer->renameNode(new FullyQualified($phpAttributeName, $name->getAttributes()), $oldToNewClasses, $scope); } return null; }