mirror of
https://github.com/rectorphp/rector.git
synced 2025-04-20 07:22:43 +02:00
Updated Rector to commit ed494161ee091037ea7cb791e569abb1bf2ff990
ed494161ee
Drop AttributeKey::SCOPE in ClassRenamer (#3806)
This commit is contained in:
parent
059ea469aa
commit
c8378bb7c9
@ -5,6 +5,7 @@ namespace Rector\PostRector\Rector;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Stmt\Namespace_;
|
||||
use PHPStan\Analyser\Scope;
|
||||
use Rector\CodingStyle\Application\UseImportsRemover;
|
||||
use Rector\Core\Configuration\RectorConfigProvider;
|
||||
use Rector\Core\Configuration\RenamedClassesDataCollector;
|
||||
@ -12,6 +13,7 @@ use Rector\Core\Contract\Rector\RectorInterface;
|
||||
use Rector\Core\NonPhpFile\Rector\RenameClassNonPhpRector;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PostRector\Contract\Rector\PostRectorDependencyInterface;
|
||||
use Rector\Renaming\NodeManipulator\ClassRenamer;
|
||||
use Rector\Renaming\Rector\Name\RenameClassRector;
|
||||
@ -70,7 +72,11 @@ final class ClassRenamingPostRector extends \Rector\PostRector\Rector\AbstractPo
|
||||
if ($oldToNewClasses === []) {
|
||||
return null;
|
||||
}
|
||||
$result = $this->classRenamer->renameNode($node, $oldToNewClasses);
|
||||
$originalNode = $node->getAttribute(AttributeKey::ORIGINAL_NODE);
|
||||
$originalNode = $originalNode ?? $node;
|
||||
/** @var Scope|null $scope */
|
||||
$scope = $originalNode->getAttribute(AttributeKey::SCOPE);
|
||||
$result = $this->classRenamer->renameNode($node, $oldToNewClasses, $scope);
|
||||
if (!$this->rectorConfigProvider->shouldImportNames()) {
|
||||
return $result;
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ final class ClassRenamer
|
||||
/**
|
||||
* @param array<string, string> $oldToNewClasses
|
||||
*/
|
||||
public function renameNode(Node $node, array $oldToNewClasses) : ?Node
|
||||
public function renameNode(Node $node, array $oldToNewClasses, ?Scope $scope) : ?Node
|
||||
{
|
||||
$oldToNewTypes = $this->createOldToNewTypes($node, $oldToNewClasses);
|
||||
$this->refactorPhpDoc($node, $oldToNewTypes, $oldToNewClasses);
|
||||
@ -135,7 +135,7 @@ final class ClassRenamer
|
||||
return $this->refactorNamespace($node, $oldToNewClasses);
|
||||
}
|
||||
if ($node instanceof ClassLike) {
|
||||
return $this->refactorClassLike($node, $oldToNewClasses);
|
||||
return $this->refactorClassLike($node, $oldToNewClasses, $scope);
|
||||
}
|
||||
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node);
|
||||
if ($phpDocInfo->hasChanged()) {
|
||||
@ -267,10 +267,10 @@ final class ClassRenamer
|
||||
/**
|
||||
* @param array<string, string> $oldToNewClasses
|
||||
*/
|
||||
private function refactorClassLike(ClassLike $classLike, array $oldToNewClasses) : ?Node
|
||||
private function refactorClassLike(ClassLike $classLike, array $oldToNewClasses, ?Scope $scope) : ?Node
|
||||
{
|
||||
// rename interfaces
|
||||
$this->renameClassImplements($classLike, $oldToNewClasses);
|
||||
$this->renameClassImplements($classLike, $oldToNewClasses, $scope);
|
||||
$className = (string) $this->nodeNameResolver->getName($classLike);
|
||||
$newName = $oldToNewClasses[$className] ?? null;
|
||||
if ($newName === null) {
|
||||
@ -346,13 +346,11 @@ final class ClassRenamer
|
||||
/**
|
||||
* @param string[] $oldToNewClasses
|
||||
*/
|
||||
private function renameClassImplements(ClassLike $classLike, array $oldToNewClasses) : void
|
||||
private function renameClassImplements(ClassLike $classLike, array $oldToNewClasses, ?Scope $scope) : void
|
||||
{
|
||||
if (!$classLike instanceof Class_) {
|
||||
return;
|
||||
}
|
||||
/** @var Scope|null $scope */
|
||||
$scope = $classLike->getAttribute(AttributeKey::SCOPE);
|
||||
$classLike->implements = \array_unique($classLike->implements);
|
||||
foreach ($classLike->implements as $key => $implementName) {
|
||||
$virtualNode = (bool) $implementName->getAttribute(AttributeKey::VIRTUAL_NODE);
|
||||
|
@ -10,9 +10,11 @@ use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\Expression;
|
||||
use PhpParser\Node\Stmt\Namespace_;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use PHPStan\Analyser\Scope;
|
||||
use Rector\Core\Configuration\RenamedClassesDataCollector;
|
||||
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\Rector\AbstractScopeAwareRector;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\Renaming\Helper\RenameClassCallbackHandler;
|
||||
use Rector\Renaming\NodeManipulator\ClassRenamer;
|
||||
@ -22,7 +24,7 @@ use RectorPrefix202305\Webmozart\Assert\Assert;
|
||||
/**
|
||||
* @see \Rector\Tests\Renaming\Rector\Name\RenameClassRector\RenameClassRectorTest
|
||||
*/
|
||||
final class RenameClassRector extends AbstractRector implements ConfigurableRectorInterface
|
||||
final class RenameClassRector extends AbstractScopeAwareRector implements ConfigurableRectorInterface
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
@ -87,14 +89,14 @@ CODE_SAMPLE
|
||||
/**
|
||||
* @param FunctionLike|Name|ClassLike|Expression|Namespace_|Property $node
|
||||
*/
|
||||
public function refactor(Node $node) : ?Node
|
||||
public function refactorWithScope(Node $node, Scope $scope) : ?Node
|
||||
{
|
||||
$oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses();
|
||||
if ($oldToNewClasses !== []) {
|
||||
return $this->classRenamer->renameNode($node, $oldToNewClasses);
|
||||
return $this->classRenamer->renameNode($node, $oldToNewClasses, $scope);
|
||||
}
|
||||
if ($this->renameClassCallbackHandler->hasOldToNewClassCallbacks()) {
|
||||
return $this->classRenamer->renameNode($node, $oldToNewClasses);
|
||||
return $this->classRenamer->renameNode($node, $oldToNewClasses, $scope);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -19,12 +19,12 @@ final class VersionResolver
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = '3f8cc390d07486978300abe3dea9f36eeb017c5a';
|
||||
public const PACKAGE_VERSION = 'ed494161ee091037ea7cb791e569abb1bf2ff990';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2023-05-13 13:52:33';
|
||||
public const RELEASE_DATE = '2023-05-13 14:36:19';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitdbeb53e5fe0c0a574bcb78897e66c21c::getLoader();
|
||||
return ComposerAutoloaderInitb5ee464d17bb12f1d6a060ed28147208::getLoader();
|
||||
|
10
vendor/composer/autoload_real.php
vendored
10
vendor/composer/autoload_real.php
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInitdbeb53e5fe0c0a574bcb78897e66c21c
|
||||
class ComposerAutoloaderInitb5ee464d17bb12f1d6a060ed28147208
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
@ -22,17 +22,17 @@ class ComposerAutoloaderInitdbeb53e5fe0c0a574bcb78897e66c21c
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitdbeb53e5fe0c0a574bcb78897e66c21c', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInitb5ee464d17bb12f1d6a060ed28147208', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitdbeb53e5fe0c0a574bcb78897e66c21c', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitb5ee464d17bb12f1d6a060ed28147208', 'loadClassLoader'));
|
||||
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitdbeb53e5fe0c0a574bcb78897e66c21c::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitb5ee464d17bb12f1d6a060ed28147208::getInitializer($loader));
|
||||
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
$loader->register(true);
|
||||
|
||||
$filesToLoad = \Composer\Autoload\ComposerStaticInitdbeb53e5fe0c0a574bcb78897e66c21c::$files;
|
||||
$filesToLoad = \Composer\Autoload\ComposerStaticInitb5ee464d17bb12f1d6a060ed28147208::$files;
|
||||
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
8
vendor/composer/autoload_static.php
vendored
8
vendor/composer/autoload_static.php
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitdbeb53e5fe0c0a574bcb78897e66c21c
|
||||
class ComposerStaticInitb5ee464d17bb12f1d6a060ed28147208
|
||||
{
|
||||
public static $files = array (
|
||||
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
|
||||
@ -3111,9 +3111,9 @@ class ComposerStaticInitdbeb53e5fe0c0a574bcb78897e66c21c
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitdbeb53e5fe0c0a574bcb78897e66c21c::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitdbeb53e5fe0c0a574bcb78897e66c21c::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitdbeb53e5fe0c0a574bcb78897e66c21c::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitb5ee464d17bb12f1d6a060ed28147208::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitb5ee464d17bb12f1d6a060ed28147208::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitb5ee464d17bb12f1d6a060ed28147208::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user