Updated Rector to commit 4d931030cb41813a2cfc90d5f7f7a1825ae87686

4d931030cb [Core] Improve performance: verify consecutive execute same Rector Rule when Original Node is Null (#3047)
This commit is contained in:
Tomas Votruba 2022-11-11 11:48:30 +00:00
parent e974c922b9
commit 04b65fc52f
6 changed files with 28 additions and 20 deletions

View File

@ -17,12 +17,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = 'b31bb42c902e6de649cb1228579be72023c171ec';
public const PACKAGE_VERSION = '4d931030cb41813a2cfc90d5f7f7a1825ae87686';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2022-11-11 12:41:06';
public const RELEASE_DATE = '2022-11-11 12:42:46';
/**
* @var int
*/

View File

@ -36,7 +36,7 @@ final class RectifiedAnalyzer
public function verify(string $rectorClass, Node $node, string $filePath) : ?RectifiedNode
{
$originalNode = $node->getAttribute(AttributeKey::ORIGINAL_NODE);
if ($this->hasCreatedByRule($rectorClass, $originalNode)) {
if ($this->hasCreatedByRule($rectorClass, $node, $originalNode)) {
return new RectifiedNode($rectorClass, $node);
}
if (!isset($this->previousFileWithNodes[$filePath])) {
@ -57,10 +57,16 @@ final class RectifiedAnalyzer
/**
* @param class-string<RectorInterface> $rectorClass
*/
private function hasCreatedByRule(string $rectorClass, ?Node $originalNode) : bool
private function hasCreatedByRule(string $rectorClass, Node $node, ?Node $originalNode) : bool
{
if (!$originalNode instanceof Node) {
return \false;
$createdByRule = $node->getAttribute(AttributeKey::CREATED_BY_RULE) ?? [];
\end($createdByRule);
$lastRectorRuleKey = \key($createdByRule);
if ($lastRectorRuleKey === null) {
return \false;
}
return $createdByRule[$lastRectorRuleKey] === $rectorClass;
}
$createdByRule = $originalNode->getAttribute(AttributeKey::CREATED_BY_RULE) ?? [];
return \in_array($rectorClass, $createdByRule, \true);

View File

@ -216,7 +216,10 @@ CODE_SAMPLE;
// for PHP doc info factory and change notifier
$this->currentNodeProvider->setNode($node);
$this->printDebugCurrentFileAndRule();
$this->changedNodeScopeRefresher->reIndexNodeAttributes($node);
$originalNode = $node->getAttribute(AttributeKey::ORIGINAL_NODE);
if ($originalNode instanceof Node) {
$this->changedNodeScopeRefresher->reIndexNodeAttributes($node);
}
$refactoredNode = $this->refactor($node);
// nothing to change → continue
if ($refactoredNode === null) {
@ -226,8 +229,7 @@ CODE_SAMPLE;
$errorMessage = \sprintf(self::EMPTY_NODE_ARRAY_MESSAGE, static::class);
throw new ShouldNotHappenException($errorMessage);
}
/** @var Node $originalNode */
$originalNode = $node->getAttribute(AttributeKey::ORIGINAL_NODE) ?? $node;
$originalNode = $originalNode ?? $node;
/** @var Node[]|Node $refactoredNode */
$this->createdByRuleDecorator->decorate($refactoredNode, $originalNode, static::class);
$rectorWithLineChange = new RectorWithLineChange(\get_class($this), $originalNode->getLine());

2
vendor/autoload.php vendored
View File

@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitdf03c9bec31b7f661a682f9f88cae2ad::getLoader();
return ComposerAutoloaderInit6efb5fb25ad41fc37a9ecfbb30a77dfa::getLoader();

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitdf03c9bec31b7f661a682f9f88cae2ad
class ComposerAutoloaderInit6efb5fb25ad41fc37a9ecfbb30a77dfa
{
private static $loader;
@ -22,19 +22,19 @@ class ComposerAutoloaderInitdf03c9bec31b7f661a682f9f88cae2ad
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitdf03c9bec31b7f661a682f9f88cae2ad', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit6efb5fb25ad41fc37a9ecfbb30a77dfa', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInitdf03c9bec31b7f661a682f9f88cae2ad', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit6efb5fb25ad41fc37a9ecfbb30a77dfa', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitdf03c9bec31b7f661a682f9f88cae2ad::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit6efb5fb25ad41fc37a9ecfbb30a77dfa::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$includeFiles = \Composer\Autoload\ComposerStaticInitdf03c9bec31b7f661a682f9f88cae2ad::$files;
$includeFiles = \Composer\Autoload\ComposerStaticInit6efb5fb25ad41fc37a9ecfbb30a77dfa::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequiredf03c9bec31b7f661a682f9f88cae2ad($fileIdentifier, $file);
composerRequire6efb5fb25ad41fc37a9ecfbb30a77dfa($fileIdentifier, $file);
}
return $loader;
@ -46,7 +46,7 @@ class ComposerAutoloaderInitdf03c9bec31b7f661a682f9f88cae2ad
* @param string $file
* @return void
*/
function composerRequiredf03c9bec31b7f661a682f9f88cae2ad($fileIdentifier, $file)
function composerRequire6efb5fb25ad41fc37a9ecfbb30a77dfa($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInitdf03c9bec31b7f661a682f9f88cae2ad
class ComposerStaticInit6efb5fb25ad41fc37a9ecfbb30a77dfa
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@ -3053,9 +3053,9 @@ class ComposerStaticInitdf03c9bec31b7f661a682f9f88cae2ad
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitdf03c9bec31b7f661a682f9f88cae2ad::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitdf03c9bec31b7f661a682f9f88cae2ad::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitdf03c9bec31b7f661a682f9f88cae2ad::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit6efb5fb25ad41fc37a9ecfbb30a77dfa::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit6efb5fb25ad41fc37a9ecfbb30a77dfa::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit6efb5fb25ad41fc37a9ecfbb30a77dfa::$classMap;
}, null, ClassLoader::class);
}