mirror of https://github.com/rectorphp/rector.git
Updated Rector to commit 13284c60485e972ef72bf234b3c014c5f89e0d14
13284c6048
[Renaming][Performance] Re-structure check namespace only on renamed node got Namespace_ (#5265)
This commit is contained in:
parent
318c07bf9f
commit
5980d06d27
|
@ -36,11 +36,24 @@ final class RenameClassRector extends AbstractRector implements ConfigurableRect
|
|||
* @var \Rector\Renaming\NodeManipulator\ClassRenamer
|
||||
*/
|
||||
private $classRenamer;
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $isMayRequireRestructureNamespace = \false;
|
||||
public function __construct(RenamedClassesDataCollector $renamedClassesDataCollector, ClassRenamer $classRenamer)
|
||||
{
|
||||
$this->renamedClassesDataCollector = $renamedClassesDataCollector;
|
||||
$this->classRenamer = $classRenamer;
|
||||
}
|
||||
/**
|
||||
* @param Node[] $nodes
|
||||
* @return Node[]|null
|
||||
*/
|
||||
public function beforeTraverse(array $nodes) : ?array
|
||||
{
|
||||
$this->isMayRequireRestructureNamespace = \false;
|
||||
return parent::beforeTraverse($nodes);
|
||||
}
|
||||
public function getRuleDefinition() : RuleDefinition
|
||||
{
|
||||
return new RuleDefinition('Replaces defined classes by new ones.', [new ConfiguredCodeSample(<<<'CODE_SAMPLE'
|
||||
|
@ -84,7 +97,11 @@ CODE_SAMPLE
|
|||
$oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses();
|
||||
if ($oldToNewClasses !== []) {
|
||||
$scope = $node->getAttribute(AttributeKey::SCOPE);
|
||||
return $this->classRenamer->renameNode($node, $oldToNewClasses, $scope);
|
||||
$renameNode = $this->classRenamer->renameNode($node, $oldToNewClasses, $scope);
|
||||
if ($renameNode instanceof Namespace_) {
|
||||
$this->isMayRequireRestructureNamespace = \true;
|
||||
}
|
||||
return $renameNode;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -103,18 +120,21 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function afterTraverse(array $nodes) : ?array
|
||||
{
|
||||
if (!$this->isMayRequireRestructureNamespace) {
|
||||
return parent::afterTraverse($nodes);
|
||||
}
|
||||
foreach ($nodes as $node) {
|
||||
if ($node instanceof Namespace_) {
|
||||
return parent::afterTraverse($nodes);
|
||||
}
|
||||
if ($node instanceof FileWithoutNamespace) {
|
||||
foreach ($node->stmts as $stmt) {
|
||||
if ($stmt instanceof Namespace_) {
|
||||
$this->restructureUnderNamespace($node);
|
||||
return $node->stmts;
|
||||
}
|
||||
if (!$node instanceof FileWithoutNamespace) {
|
||||
continue;
|
||||
}
|
||||
foreach ($node->stmts as $stmt) {
|
||||
if ($stmt instanceof Namespace_) {
|
||||
$this->restructureUnderNamespace($node);
|
||||
return $node->stmts;
|
||||
}
|
||||
return parent::afterTraverse($nodes);
|
||||
}
|
||||
}
|
||||
return parent::afterTraverse($nodes);
|
||||
|
|
|
@ -19,12 +19,12 @@ final class VersionResolver
|
|||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = 'e43a1cec56310b6762eb0b56d18f60402d5fd652';
|
||||
public const PACKAGE_VERSION = '13284c60485e972ef72bf234b3c014c5f89e0d14';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2023-11-19 09:53:05';
|
||||
public const RELEASE_DATE = '2023-11-19 10:12:03';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue