Updated Rector to commit e1ecbe90fc

e1ecbe90fc [DeadCode] Handle RemoveDoubleAssignRector+RemoveUnusedVariableAssignRector (#2355)
This commit is contained in:
Tomas Votruba 2022-05-24 20:58:43 +00:00
parent b93cf80a4f
commit 5dfc95ba95
7 changed files with 39 additions and 47 deletions

View File

@ -81,7 +81,7 @@ final class ClassChildAnalyzer
$parentClassMethods = [];
$parents = \array_merge($classReflection->getParents(), $classReflection->getInterfaces());
foreach ($parents as $parent) {
if (!$parent->hasMethod($methodName)) {
if (!$parent->hasNativeMethod($methodName)) {
continue;
}
$methodReflection = $parent->getNativeMethod($methodName);

View File

@ -58,55 +58,47 @@ CODE_SAMPLE
if ($stmts === null) {
return null;
}
$hasChanged = \false;
$previousStmt = null;
$hasRemovedStmt = \false;
foreach ($stmts as $key => $stmt) {
if (!isset($stmts[$key + 1])) {
continue;
}
if (!$stmt instanceof \PhpParser\Node\Stmt\Expression) {
$previousStmt = $stmt;
continue;
}
$expr = $stmt->expr;
if (!$expr instanceof \PhpParser\Node\Expr\Assign) {
$previousStmt = $stmt;
$nextStmt = $stmts[$key + 1];
if (!$nextStmt instanceof \PhpParser\Node\Stmt\Expression) {
continue;
}
if (!$expr->var instanceof \PhpParser\Node\Expr\Variable && !$expr->var instanceof \PhpParser\Node\Expr\PropertyFetch && !$expr->var instanceof \PhpParser\Node\Expr\StaticPropertyFetch) {
$previousStmt = $stmt;
if (!$stmt->expr instanceof \PhpParser\Node\Expr\Assign) {
continue;
}
if (!$previousStmt instanceof \PhpParser\Node\Stmt\Expression) {
$previousStmt = $stmt;
if (!$nextStmt->expr instanceof \PhpParser\Node\Expr\Assign) {
continue;
}
if (!$previousStmt->expr instanceof \PhpParser\Node\Expr\Assign) {
$previousStmt = $stmt;
continue;
}
$previousAssign = $previousStmt->expr;
if (!$this->nodeComparator->areNodesEqual($previousAssign->var, $expr->var)) {
$previousStmt = $stmt;
$nextAssign = $nextStmt->expr;
if (!$this->nodeComparator->areNodesEqual($nextAssign->var, $stmt->expr->var)) {
continue;
}
// early check self referencing, ensure that variable not re-used
if ($this->isSelfReferencing($expr)) {
$previousStmt = $stmt;
if ($this->isSelfReferencing($nextAssign)) {
continue;
}
// detect call expression has side effect
// no calls on right, could hide e.g. array_pop()|array_shift()
if ($this->sideEffectNodeDetector->detectCallExpr($previousAssign->expr)) {
$previousStmt = $stmt;
if ($this->sideEffectNodeDetector->detectCallExpr($stmt->expr->expr)) {
continue;
}
// remove previous stmt, not current one as the current one is the override
unset($stmts[$key - 1]);
$hasChanged = \true;
if (!$stmt->expr->var instanceof \PhpParser\Node\Expr\Variable && !$stmt->expr->var instanceof \PhpParser\Node\Expr\PropertyFetch && !$stmt->expr->var instanceof \PhpParser\Node\Expr\StaticPropertyFetch) {
continue;
}
// remove current Stmt if will be overriden in next stmt
$this->removeNode($stmt);
$hasRemovedStmt = \true;
}
if (!$hasChanged) {
if (!$hasRemovedStmt) {
return null;
}
\ksort($stmts);
$node->stmts = $stmts;
return $node;
}
private function isSelfReferencing(\PhpParser\Node\Expr\Assign $assign) : bool

View File

@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = 'dc9189280f34a29309ee3b9de20c788ed46402c8';
public const PACKAGE_VERSION = 'e1ecbe90fc96be1af3a59ef2312383aa85d5a15d';
/**
* @var string
*/
public const RELEASE_DATE = '2022-05-24 19:55:12';
public const RELEASE_DATE = '2022-05-24 22:50:15';
/**
* @var string
*/

2
vendor/autoload.php vendored
View File

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

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455
class ComposerAutoloaderInit0b8f6740451d5bc7f232a991cca8f361
{
private static $loader;
@ -22,19 +22,19 @@ class ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit0b8f6740451d5bc7f232a991cca8f361', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit0b8f6740451d5bc7f232a991cca8f361', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit1d71cc90e37f236bc02c7c114b395455::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit0b8f6740451d5bc7f232a991cca8f361::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$includeFiles = \Composer\Autoload\ComposerStaticInit1d71cc90e37f236bc02c7c114b395455::$files;
$includeFiles = \Composer\Autoload\ComposerStaticInit0b8f6740451d5bc7f232a991cca8f361::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire1d71cc90e37f236bc02c7c114b395455($fileIdentifier, $file);
composerRequire0b8f6740451d5bc7f232a991cca8f361($fileIdentifier, $file);
}
return $loader;
@ -46,7 +46,7 @@ class ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455
* @param string $file
* @return void
*/
function composerRequire1d71cc90e37f236bc02c7c114b395455($fileIdentifier, $file)
function composerRequire0b8f6740451d5bc7f232a991cca8f361($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 ComposerStaticInit1d71cc90e37f236bc02c7c114b395455
class ComposerStaticInit0b8f6740451d5bc7f232a991cca8f361
{
public static $files = array (
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
@ -3914,9 +3914,9 @@ class ComposerStaticInit1d71cc90e37f236bc02c7c114b395455
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit1d71cc90e37f236bc02c7c114b395455::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit1d71cc90e37f236bc02c7c114b395455::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit1d71cc90e37f236bc02c7c114b395455::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit0b8f6740451d5bc7f232a991cca8f361::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit0b8f6740451d5bc7f232a991cca8f361::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit0b8f6740451d5bc7f232a991cca8f361::$classMap;
}, null, ClassLoader::class);
}

View File

@ -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('RectorPrefix20220524\AutoloadIncluder');
}
if (!class_exists('ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455', false) && !interface_exists('ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455', false) && !trait_exists('ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455', false)) {
spl_autoload_call('RectorPrefix20220524\ComposerAutoloaderInit1d71cc90e37f236bc02c7c114b395455');
if (!class_exists('ComposerAutoloaderInit0b8f6740451d5bc7f232a991cca8f361', false) && !interface_exists('ComposerAutoloaderInit0b8f6740451d5bc7f232a991cca8f361', false) && !trait_exists('ComposerAutoloaderInit0b8f6740451d5bc7f232a991cca8f361', false)) {
spl_autoload_call('RectorPrefix20220524\ComposerAutoloaderInit0b8f6740451d5bc7f232a991cca8f361');
}
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('RectorPrefix20220524\Helmich\TypoScriptParser\Parser\AST\Statement');
@ -59,9 +59,9 @@ if (!function_exists('print_node')) {
return \RectorPrefix20220524\print_node(...func_get_args());
}
}
if (!function_exists('composerRequire1d71cc90e37f236bc02c7c114b395455')) {
function composerRequire1d71cc90e37f236bc02c7c114b395455() {
return \RectorPrefix20220524\composerRequire1d71cc90e37f236bc02c7c114b395455(...func_get_args());
if (!function_exists('composerRequire0b8f6740451d5bc7f232a991cca8f361')) {
function composerRequire0b8f6740451d5bc7f232a991cca8f361() {
return \RectorPrefix20220524\composerRequire0b8f6740451d5bc7f232a991cca8f361(...func_get_args());
}
}
if (!function_exists('scanPath')) {