mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-28 23:10:51 +00:00
Updated Rector to commit 2869f42534
2869f42534
[Core] Clean up AbstractRector: Apply InfiniteLoopValidator only before refactor (#1773)
This commit is contained in:
parent
4d4eb2f2ad
commit
3fdb783c48
|
@ -16,11 +16,11 @@ final class VersionResolver
|
|||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = 'ca5b89baadea89ea41ce64e79a39f13a5848f5ff';
|
||||
public const PACKAGE_VERSION = '2869f42534c34807ce45eaeb641ac566cf49662f';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2022-02-06 17:27:29';
|
||||
public const RELEASE_DATE = '2022-02-07 02:26:23';
|
||||
public static function resolvePackageVersion() : string
|
||||
{
|
||||
$process = new \RectorPrefix20220206\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);
|
||||
|
|
|
@ -241,7 +241,7 @@ abstract class AbstractRector extends \PhpParser\NodeVisitorAbstract implements
|
|||
$this->printDebugApplying();
|
||||
$originalAttributes = $node->getAttributes();
|
||||
$originalNode = $originalNode ?? clone $node;
|
||||
if (!$this->infiniteLoopValidator->isValid($node, $originalNode, static::class)) {
|
||||
if (!$this->infiniteLoopValidator->isValid($originalNode, static::class)) {
|
||||
return null;
|
||||
}
|
||||
$node = $this->refactor($node);
|
||||
|
@ -249,12 +249,9 @@ abstract class AbstractRector extends \PhpParser\NodeVisitorAbstract implements
|
|||
if ($this->isNothingToChange($node)) {
|
||||
return null;
|
||||
}
|
||||
/** @var Node|array<Node> $node */
|
||||
if (!$this->infiniteLoopValidator->isValid($node, $originalNode, static::class)) {
|
||||
return null;
|
||||
}
|
||||
/** @var Node $originalNode */
|
||||
if (\is_array($node)) {
|
||||
/** @var array<Node> $node */
|
||||
$this->createdByRuleDecorator->decorate($node, $originalNode, static::class);
|
||||
$originalNodeHash = \spl_object_hash($originalNode);
|
||||
$this->nodesToReturn[$originalNodeHash] = $node;
|
||||
|
@ -265,6 +262,7 @@ abstract class AbstractRector extends \PhpParser\NodeVisitorAbstract implements
|
|||
return $originalNode;
|
||||
}
|
||||
// not changed, return node early
|
||||
/** @var Node $node */
|
||||
if (!$this->changedNodeAnalyzer->hasNodeChanged($originalNode, $node)) {
|
||||
return $node;
|
||||
}
|
||||
|
|
|
@ -4,44 +4,12 @@ declare (strict_types=1);
|
|||
namespace Rector\Core\Validation;
|
||||
|
||||
use PhpParser\Node;
|
||||
use Rector\Core\PhpParser\Comparing\NodeComparator;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
final class InfiniteLoopValidator
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Comparing\NodeComparator
|
||||
*/
|
||||
private $nodeComparator;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\Core\PhpParser\Comparing\NodeComparator $nodeComparator, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
public function isValid(\PhpParser\Node $originalNode, string $rectorClass) : bool
|
||||
{
|
||||
$this->nodeComparator = $nodeComparator;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param mixed[]|\PhpParser\Node $node
|
||||
*/
|
||||
public function isValid($node, \PhpParser\Node $originalNode, string $rectorClass) : bool
|
||||
{
|
||||
if ($this->nodeComparator->areNodesEqual($node, $originalNode)) {
|
||||
return \true;
|
||||
}
|
||||
$isFound = (bool) $this->betterNodeFinder->findFirst($node, function (\PhpParser\Node $subNode) use($node) : bool {
|
||||
return $this->nodeComparator->areNodesEqual($node, $subNode);
|
||||
});
|
||||
if (!$isFound) {
|
||||
return \true;
|
||||
}
|
||||
$createdByRule = $originalNode->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CREATED_BY_RULE) ?? [];
|
||||
if ($createdByRule === []) {
|
||||
return \true;
|
||||
}
|
||||
return !\in_array($rectorClass, $createdByRule, \true);
|
||||
}
|
||||
}
|
||||
|
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
|
@ -4,4 +4,4 @@
|
|||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625::getLoader();
|
||||
return ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15::getLoader();
|
||||
|
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625
|
||||
class ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
|
@ -22,15 +22,15 @@ class ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625
|
|||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit4b50c3212c6733f12dc6b0c0cacd8625::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit76589e52c8b369d44fc3d9b597904d15::getInitializer($loader));
|
||||
} else {
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
|
@ -42,12 +42,12 @@ class ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625
|
|||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit4b50c3212c6733f12dc6b0c0cacd8625::$files;
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit76589e52c8b369d44fc3d9b597904d15::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequire4b50c3212c6733f12dc6b0c0cacd8625($fileIdentifier, $file);
|
||||
composerRequire76589e52c8b369d44fc3d9b597904d15($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
|
@ -59,7 +59,7 @@ class ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625
|
|||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
function composerRequire4b50c3212c6733f12dc6b0c0cacd8625($fileIdentifier, $file)
|
||||
function composerRequire76589e52c8b369d44fc3d9b597904d15($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 ComposerStaticInit4b50c3212c6733f12dc6b0c0cacd8625
|
||||
class ComposerStaticInit76589e52c8b369d44fc3d9b597904d15
|
||||
{
|
||||
public static $files = array (
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
|
@ -3862,9 +3862,9 @@ class ComposerStaticInit4b50c3212c6733f12dc6b0c0cacd8625
|
|||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit4b50c3212c6733f12dc6b0c0cacd8625::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit4b50c3212c6733f12dc6b0c0cacd8625::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit4b50c3212c6733f12dc6b0c0cacd8625::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit76589e52c8b369d44fc3d9b597904d15::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit76589e52c8b369d44fc3d9b597904d15::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit76589e52c8b369d44fc3d9b597904d15::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
|
22
vendor/composer/installed.json
vendored
22
vendor/composer/installed.json
vendored
|
@ -1012,17 +1012,17 @@
|
|||
},
|
||||
{
|
||||
"name": "phpstan\/phpstan",
|
||||
"version": "1.4.5",
|
||||
"version_normalized": "1.4.5.0",
|
||||
"version": "1.4.6",
|
||||
"version_normalized": "1.4.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https:\/\/github.com\/phpstan\/phpstan.git",
|
||||
"reference": "150d1fbd82fb71ff76b3bd7f6ea6006d89c5f0c3"
|
||||
"reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/150d1fbd82fb71ff76b3bd7f6ea6006d89c5f0c3",
|
||||
"reference": "150d1fbd82fb71ff76b3bd7f6ea6006d89c5f0c3",
|
||||
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/8a7761f1c520e0dad6e04d862fdc697445457cfe",
|
||||
"reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1031,7 +1031,7 @@
|
|||
"conflict": {
|
||||
"phpstan\/phpstan-shim": "*"
|
||||
},
|
||||
"time": "2022-02-02T19:35:10+00:00",
|
||||
"time": "2022-02-06T12:56:13+00:00",
|
||||
"bin": [
|
||||
"phpstan",
|
||||
"phpstan.phar"
|
||||
|
@ -1055,7 +1055,7 @@
|
|||
"description": "PHPStan - PHP Static Analysis Tool",
|
||||
"support": {
|
||||
"issues": "https:\/\/github.com\/phpstan\/phpstan\/issues",
|
||||
"source": "https:\/\/github.com\/phpstan\/phpstan\/tree\/1.4.5"
|
||||
"source": "https:\/\/github.com\/phpstan\/phpstan\/tree\/1.4.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1805,12 +1805,12 @@
|
|||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"RectorPrefix20220206\\React\\Promise\\Timer\\": "src\/"
|
||||
},
|
||||
"files": [
|
||||
"src\/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"RectorPrefix20220206\\React\\Promise\\Timer\\": "src\/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https:\/\/packagist.org\/downloads\/",
|
||||
"license": [
|
||||
|
|
2
vendor/composer/installed.php
vendored
2
vendor/composer/installed.php
vendored
File diff suppressed because one or more lines are too long
BIN
vendor/phpstan/phpstan/phpstan.phar
vendored
BIN
vendor/phpstan/phpstan/phpstan.phar
vendored
Binary file not shown.
26
vendor/phpstan/phpstan/phpstan.phar.asc
vendored
26
vendor/phpstan/phpstan/phpstan.phar.asc
vendored
|
@ -1,16 +1,16 @@
|
|||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEE0yaA1ZV9xxFr4pwUzxoQjQ565yAFAmH63O0ACgkQzxoQjQ56
|
||||
5yAGLw//XoKgrdDKO3XKrSlO8NjLC8TQcCqPX2KFbCEhIUC4HXilbjZHsyIsBnSC
|
||||
VPbyWDKk5f2ugSq6/8zwdvD6VP3JGbP/4sGUxm9Y0N3EojPOEwQXueR1cRMo3EGx
|
||||
fyzqRMgBJSGr43cSmokv5/mA6QpMWCtlxbMBP+g3t09MwA5ywDL/SylN+k0hXEAx
|
||||
D5u/lhs+EtZ+q978CUDla1Sf2gToKnli00i3mHTLQMDs/cHQ+gVUXcLjFbIOMbW8
|
||||
n2+Jp5Y2a/zRCkTgxhfuV9FWj4F43Qu00qAsfzDlltbG55ks7DcLONldP/7Qg9uN
|
||||
ODiIO6fu3v7oqy4hg3lqeNPwCtNk5Gz9r6rjfuvCA2t/QDnOOIad1X3nPTxfb1i+
|
||||
UyVjg3/pfLmYmhtEF48jkN6dm8TAPV2HTdv5E8bhzKbxVu/YVcRmXQOnnMs+cNAj
|
||||
nU3z+SU2wxfnZH50Qw7QILEUIKpm8AfinbA5V1q1hvKsNOTsPZamYYeHvnCqdhDh
|
||||
0VLFCTrD2j6Azu6CLnf8fqegXdZlEUqkuhgJ8OyZW3Mtuy5RxkYbCUCnMUnTLN5x
|
||||
Ddz56sx5I0eqqnVIBPhorhZxKZLVaguEAjSuxX4WaaRiUKno7rYzojyFo0pyVa0M
|
||||
rRd4hlg4bLMk+GRS3fyCZr8mQhb24AzvXTdRhAYg8WdfFTaogeM=
|
||||
=Gtro
|
||||
iQIzBAABCgAdFiEE0yaA1ZV9xxFr4pwUzxoQjQ565yAFAmH/xW0ACgkQzxoQjQ56
|
||||
5yBk0xAAhfBd0NFaBCnqF1964bUN1pw2FNr8sBza4EvaGNki+HsjVRLVFRGMiWYV
|
||||
RCYZEDW5qfkBF/GvgH5XYjZZR0LPg81CLW2SV0hanmA16KpbfkYMK68xrR8FF/bU
|
||||
R+4yow0Nkizoa5u7zUWktz+l1tedhcurhrMvghONPWEyqz3e3VlfR2VsjXHSWtsr
|
||||
XPrR01XK9jqNhA9kMKpzoZiRrmVUCnszj/5D+FCWa4qs7H9tMbhgUXY+X1pPU49V
|
||||
YUsKFJvIzFgvs4a3tnW6mHHB855Y1grJR9rIy1oqZf7lTiRoqcrZNOO5KxYaDNRU
|
||||
3zQfJbW2f9XC1sqVMQ8ZtRRLKE7dwfOwURuPILPcQ9vHQR6iiwd81s7EmszKYkr8
|
||||
Ybc1SCXEoIqlPhSLz7aVrCDsS0DTCQP+MD9Ra7GjS491grHV4yzmqooZsPA4eCVi
|
||||
6yCSZqRodmIjLij6uSMckesQRzBOJBNjlWX1Wzp4tED54aE6LAw0kX5AsNQVT6TK
|
||||
CaeypdaNmKUZs3wB5hAO3RIu7aVduj+6+NzuEHHFsLerlSOg1OUbPmMeqmwXRqb3
|
||||
N0VQORkf4Zu1Uh8ZJpzIq9GPuDaECXEzrI/xBirUhcmq2T4SfqMIDAlbiXA0gFcO
|
||||
9t9ZScB90IYxNT9pgRXREQ4+bSKp3Qf8rJBq9M4F+4NH6BVJP04=
|
||||
=jgQV
|
||||
-----END PGP SIGNATURE-----
|
||||
|
|
10
vendor/scoper-autoload.php
vendored
10
vendor/scoper-autoload.php
vendored
|
@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php';
|
|||
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
|
||||
spl_autoload_call('RectorPrefix20220206\AutoloadIncluder');
|
||||
}
|
||||
if (!class_exists('ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625', false) && !interface_exists('ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625', false) && !trait_exists('ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625', false)) {
|
||||
spl_autoload_call('RectorPrefix20220206\ComposerAutoloaderInit4b50c3212c6733f12dc6b0c0cacd8625');
|
||||
if (!class_exists('ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15', false) && !interface_exists('ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15', false) && !trait_exists('ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15', false)) {
|
||||
spl_autoload_call('RectorPrefix20220206\ComposerAutoloaderInit76589e52c8b369d44fc3d9b597904d15');
|
||||
}
|
||||
if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) {
|
||||
spl_autoload_call('RectorPrefix20220206\Helmich\TypoScriptParser\Parser\AST\Statement');
|
||||
|
@ -71,9 +71,9 @@ if (!function_exists('print_node')) {
|
|||
return \RectorPrefix20220206\print_node(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('composerRequire4b50c3212c6733f12dc6b0c0cacd8625')) {
|
||||
function composerRequire4b50c3212c6733f12dc6b0c0cacd8625() {
|
||||
return \RectorPrefix20220206\composerRequire4b50c3212c6733f12dc6b0c0cacd8625(...func_get_args());
|
||||
if (!function_exists('composerRequire76589e52c8b369d44fc3d9b597904d15')) {
|
||||
function composerRequire76589e52c8b369d44fc3d9b597904d15() {
|
||||
return \RectorPrefix20220206\composerRequire76589e52c8b369d44fc3d9b597904d15(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('scanPath')) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user