[Renaming] Do not Rename Docblock inner Namespace on RenameClassRector (#2441)

* Add failing test for rector/rector#7209

* update fixture

* Closes #2440

* fixture

Co-authored-by: Einar Gangsø <mail@einargangso.no>
This commit is contained in:
Abdul Malik Ikhsan 2022-06-06 12:53:42 +07:00 committed by GitHub
parent b1583c7d86
commit 40d9102eab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 64 additions and 0 deletions

View File

@ -60,6 +60,11 @@ final class ClassRenamePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor
throw new ShouldNotHappenException();
}
$virtualNode = $phpParserNode->getAttribute(AttributeKey::VIRTUAL_NODE);
if ($virtualNode === true) {
return null;
}
$identifier = clone $node;
$namespacedName = $this->resolveNamespacedName($phpParserNode, $identifier->name);

View File

@ -0,0 +1,58 @@
<?php
namespace Rector\Tests\Renaming\Rector\Name\RenameClassRector\FixtureAutoImportNames;
use CompanyB\Storage;
class DoNotRenameDocblockInnerNamespace
{
/**
* @var Storage
*/
protected $storage;
public function __construct(
Storage $storage
) {
\Log::error('Some loggin');
$this->storage = $storage;
}
private function foo(): string
{
new Foo($this->storage);
}
}
?>
-----
<?php
namespace Rector\Tests\Renaming\Rector\Name\RenameClassRector\FixtureAutoImportNames;
use Log;
use CompanyB\Storage;
class DoNotRenameDocblockInnerNamespace
{
/**
* @var Storage
*/
protected $storage;
public function __construct(
Storage $storage
) {
Log::error('Some loggin');
$this->storage = $storage;
}
private function foo(): string
{
new Foo($this->storage);
}
}
?>

View File

@ -15,5 +15,6 @@ return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(RenameClassRector::class, [
OldClass::class => NewClass::class,
SomeServiceClassFirstNamespace::class => SomeServiceClass::class,
'Storage' => 'Illuminate\Support\Facades\Storage',
]);
};