From e06d4e31cf307066a58deaacc267f789ed60c13a Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 17 Oct 2026 21:49:07 +0200 Subject: [PATCH] read class-like short names through ClassNameImportContext in ClassLikeName skip voter --- .../ClassNameImport/ClassNameImportContext.php | 10 ++++++++++ .../ClassLikeNameClassNameImportSkipVoter.php | 6 +++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/rules/CodingStyle/ClassNameImport/ClassNameImportContext.php b/rules/CodingStyle/ClassNameImport/ClassNameImportContext.php index 9063af376a4..e5b58e88f9e 100644 --- a/rules/CodingStyle/ClassNameImport/ClassNameImportContext.php +++ b/rules/CodingStyle/ClassNameImport/ClassNameImportContext.php @@ -47,6 +47,16 @@ public function resolveShortNamesToFullyQualifiedNames(File $file): array return $this->shortNameResolver->resolveFromFile($file); } + /** + * Short names of class-likes (class, interface, trait) declared in the file + * + * @return string[] + */ + public function resolveShortClassLikeNames(File $file): array + { + return $this->shortNameResolver->resolveShortClassLikeNames($file); + } + /** * @return string[] */ diff --git a/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ClassLikeNameClassNameImportSkipVoter.php b/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ClassLikeNameClassNameImportSkipVoter.php index d7e9fd80045..9fa262a7b31 100644 --- a/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ClassLikeNameClassNameImportSkipVoter.php +++ b/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ClassLikeNameClassNameImportSkipVoter.php @@ -6,8 +6,8 @@ use PhpParser\Node; use PHPStan\Analyser\Scope; +use Rector\CodingStyle\ClassNameImport\ClassNameImportContext; use Rector\CodingStyle\ClassNameImport\NamespaceBeforeClassNameResolver; -use Rector\CodingStyle\ClassNameImport\ShortNameResolver; use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; @@ -25,14 +25,14 @@ final readonly class ClassLikeNameClassNameImportSkipVoter implements ClassNameImportSkipVoterInterface { public function __construct( - private ShortNameResolver $shortNameResolver, + private ClassNameImportContext $classNameImportContext, private NamespaceBeforeClassNameResolver $namespaceBeforeClassNameResolver ) { } public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType, Node $node): bool { - $classLikeNames = $this->shortNameResolver->resolveShortClassLikeNames($file); + $classLikeNames = $this->classNameImportContext->resolveShortClassLikeNames($file); if ($classLikeNames === []) { return false; }