Skip to content

Commit

Permalink
[Renaming] Remove RenameClassRector::processCleanUpUse() as already c…
Browse files Browse the repository at this point in the history
…overed on ClassRenamingPostRector (#3463)

Co-authored-by: GitHub Action <actions@github.com>
  • Loading branch information
samsonasik and actions-user committed Mar 8, 2023
1 parent 1142c99 commit 4d9b7e8
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 27 deletions.
7 changes: 7 additions & 0 deletions packages/PostRector/Rector/UnusedImportRemovingPostRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ public function enterNode(Node $node): ?Node
continue;
}

if ($namespaceStmt->uses === []) {
unset($node->stmts[$key]);
$hasChanged = true;

continue;
}

$useUse = $namespaceStmt->uses[0];
// skip aliased imports, harder to check
if ($useUse->alias !== null) {
Expand Down
32 changes: 5 additions & 27 deletions rules/Renaming/Rector/Name/RenameClassRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,12 @@

use PhpParser\Node;
use PhpParser\Node\FunctionLike;
use PhpParser\Node\Identifier;
use PhpParser\Node\Name;
use PhpParser\Node\Stmt\ClassLike;
use PhpParser\Node\Stmt\Expression;
use PhpParser\Node\Stmt\Namespace_;
use PhpParser\Node\Stmt\Property;
use PhpParser\Node\Stmt\Use_;
use Rector\Core\Configuration\RectorConfigProvider;
use Rector\Core\Configuration\RenamedClassesDataCollector;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace;
Expand All @@ -38,7 +36,6 @@ final class RenameClassRector extends AbstractRector implements ConfigurableRect
public function __construct(
private readonly RenamedClassesDataCollector $renamedClassesDataCollector,
private readonly ClassRenamer $classRenamer,
private readonly RectorConfigProvider $rectorConfigProvider,
private readonly RenameClassCallbackHandler $renameClassCallbackHandler,
) {
}
Expand Down Expand Up @@ -98,24 +95,20 @@ public function getNodeTypes(): array
}

/**
* @param FunctionLike|Name|ClassLike|Expression|Namespace_|Property|FileWithoutNamespace|Use_ $node
* @param FunctionLike|Name|ClassLike|Expression|Namespace_|Property|FileWithoutNamespace $node
*/
public function refactor(Node $node): ?Node
{
$oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses();
if ($oldToNewClasses === [] && ! $this->renameClassCallbackHandler->hasOldToNewClassCallbacks()) {
return null;
}

if (! $node instanceof Use_) {
if ($oldToNewClasses !== []) {
return $this->classRenamer->renameNode($node, $oldToNewClasses);
}

if (! $this->rectorConfigProvider->shouldImportNames()) {
return null;
if ($this->renameClassCallbackHandler->hasOldToNewClassCallbacks()) {
return $this->classRenamer->renameNode($node, $oldToNewClasses);
}

return $this->processCleanUpUse($node, $oldToNewClasses);
return null;
}

/**
Expand All @@ -138,21 +131,6 @@ public function configure(array $configuration): void
$this->addOldToNewClasses($configuration);
}

/**
* @param array<string, string> $oldToNewClasses
*/
private function processCleanUpUse(Use_ $use, array $oldToNewClasses): ?Use_
{
foreach ($use->uses as $useUse) {
if (! $useUse->alias instanceof Identifier && isset($oldToNewClasses[$useUse->name->toString()])) {
$this->removeNode($use);
return $use;
}
}

return null;
}

/**
* @param mixed[] $oldToNewClasses
*/
Expand Down

0 comments on commit 4d9b7e8

Please sign in to comment.