Skip to content

Commit 3176cfd

Browse files
committed
Updated Rector to commit 7ccb174abecda973a5f37b174c1343866dc82c5c
rectorphp/rector-src@7ccb174 Different logic: verify equal before substr on ClassLikeNameClassNameImportSkipVoter (#7450)
1 parent 6813895 commit 3176cfd

5 files changed

Lines changed: 27 additions & 4 deletions

File tree

rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ClassLikeNameClassNameImportSkipVoter.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
use PhpParser\Node;
77
use PHPStan\Analyser\Scope;
8+
use Rector\CodingStyle\ClassNameImport\NamespaceBeforeClassNameResolver;
89
use Rector\CodingStyle\ClassNameImport\ShortNameResolver;
910
use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface;
1011
use Rector\NodeTypeResolver\Node\AttributeKey;
@@ -25,9 +26,14 @@ final class ClassLikeNameClassNameImportSkipVoter implements ClassNameImportSkip
2526
* @readonly
2627
*/
2728
private ShortNameResolver $shortNameResolver;
28-
public function __construct(ShortNameResolver $shortNameResolver)
29+
/**
30+
* @readonly
31+
*/
32+
private NamespaceBeforeClassNameResolver $namespaceBeforeClassNameResolver;
33+
public function __construct(ShortNameResolver $shortNameResolver, NamespaceBeforeClassNameResolver $namespaceBeforeClassNameResolver)
2934
{
3035
$this->shortNameResolver = $shortNameResolver;
36+
$this->namespaceBeforeClassNameResolver = $namespaceBeforeClassNameResolver;
3137
}
3238
public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType, Node $node): bool
3339
{
@@ -45,7 +51,7 @@ public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedO
4551
$namespace = $scope instanceof Scope ? $scope->getNamespace() : null;
4652
$namespace = strtolower((string) $namespace);
4753
$shortNameLowered = $fullyQualifiedObjectType->getShortNameLowered();
48-
$subClassName = substr($fullyQualifiedObjectType->getClassName(), 0, -strlen($fullyQualifiedObjectType->getShortName()) - 1);
54+
$subClassName = $this->namespaceBeforeClassNameResolver->resolve($fullyQualifiedObjectType);
4955
$fullyQualifiedObjectTypeNamespace = strtolower($subClassName);
5056
foreach ($classLikeNames as $classLikeName) {
5157
if (strtolower($classLikeName) !== $shortNameLowered) {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
declare (strict_types=1);
4+
namespace Rector\CodingStyle\ClassNameImport;
5+
6+
use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType;
7+
final class NamespaceBeforeClassNameResolver
8+
{
9+
public function resolve(FullyQualifiedObjectType $fullyQualifiedObjectType): string
10+
{
11+
$className = $fullyQualifiedObjectType->getClassName();
12+
$shortName = $fullyQualifiedObjectType->getShortName();
13+
return $className === $shortName ? '' : substr($className, 0, -strlen($shortName) - 1);
14+
}
15+
}

src/Application/VersionResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ final class VersionResolver
1919
* @api
2020
* @var string
2121
*/
22-
public const PACKAGE_VERSION = '9a95b6b13e7522da28576a3e615f319b417feedb';
22+
public const PACKAGE_VERSION = '7ccb174abecda973a5f37b174c1343866dc82c5c';
2323
/**
2424
* @api
2525
* @var string
2626
*/
27-
public const RELEASE_DATE = '2025-10-08 09:20:27';
27+
public const RELEASE_DATE = '2025-10-08 14:53:58';
2828
/**
2929
* @var int
3030
*/

vendor/composer/autoload_classmap.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,6 +1242,7 @@
12421242
'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\ShortClassImportSkipVoter' => $baseDir . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ShortClassImportSkipVoter.php',
12431243
'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\UsesClassNameImportSkipVoter' => $baseDir . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/UsesClassNameImportSkipVoter.php',
12441244
'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipper' => $baseDir . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipper.php',
1245+
'Rector\\CodingStyle\\ClassNameImport\\NamespaceBeforeClassNameResolver' => $baseDir . '/rules/CodingStyle/ClassNameImport/NamespaceBeforeClassNameResolver.php',
12451246
'Rector\\CodingStyle\\ClassNameImport\\ShortNameResolver' => $baseDir . '/rules/CodingStyle/ClassNameImport/ShortNameResolver.php',
12461247
'Rector\\CodingStyle\\ClassNameImport\\UseImportsTraverser' => $baseDir . '/rules/CodingStyle/ClassNameImport/UseImportsTraverser.php',
12471248
'Rector\\CodingStyle\\ClassNameImport\\UsedImportsResolver' => $baseDir . '/rules/CodingStyle/ClassNameImport/UsedImportsResolver.php',

vendor/composer/autoload_static.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,6 +1490,7 @@ class ComposerStaticInitaec8d909b4f5341922f1774ccd2ec774
14901490
'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\ShortClassImportSkipVoter' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ShortClassImportSkipVoter.php',
14911491
'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\UsesClassNameImportSkipVoter' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/UsesClassNameImportSkipVoter.php',
14921492
'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipper' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipper.php',
1493+
'Rector\\CodingStyle\\ClassNameImport\\NamespaceBeforeClassNameResolver' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/NamespaceBeforeClassNameResolver.php',
14931494
'Rector\\CodingStyle\\ClassNameImport\\ShortNameResolver' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/ShortNameResolver.php',
14941495
'Rector\\CodingStyle\\ClassNameImport\\UseImportsTraverser' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/UseImportsTraverser.php',
14951496
'Rector\\CodingStyle\\ClassNameImport\\UsedImportsResolver' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/UsedImportsResolver.php',

0 commit comments

Comments
 (0)