Updated Rector to commit 92a992ef6e5c5350a0e6de2b4e844e21f072fb1b

92a992ef6e [NodeManipulator] Clean up AssignManipulator take 2 (#3696)
This commit is contained in:
Tomas Votruba 2023-04-28 10:15:23 +00:00
parent a4e6a42d08
commit d73b4dcf29
6 changed files with 18 additions and 42 deletions

View File

@ -145,7 +145,7 @@ final class ForAnalyzer
if (!$parentNode instanceof Node) {
return \false;
}
if ($this->assignManipulator->isNodePartOfAssign($parentNode)) {
if ($this->assignManipulator->isLeftPartOfAssign($arrayDimFetch)) {
return \true;
}
return $this->isArgParentCount($parentNode);

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = '14b6073057861d5547610084eb59a7b1826d2ad8';
public const PACKAGE_VERSION = '92a992ef6e5c5350a0e6de2b4e844e21f072fb1b';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2023-04-28 10:48:20';
public const RELEASE_DATE = '2023-04-28 17:10:34';
/**
* @var int
*/

View File

@ -19,9 +19,7 @@ use PhpParser\Node\Expr\PreInc;
use PhpParser\Node\Expr\PropertyFetch;
use PhpParser\Node\Expr\StaticPropertyFetch;
use PhpParser\Node\FunctionLike;
use PhpParser\Node\Stmt\Expression;
use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer;
use Rector\Core\PhpParser\Comparing\NodeComparator;
use Rector\Core\PhpParser\Node\BetterNodeFinder;
use Rector\Core\Util\MultiInstanceofChecker;
use Rector\NodeNameResolver\NodeNameResolver;
@ -31,17 +29,12 @@ final class AssignManipulator
/**
* @var array<class-string<Expr>>
*/
private const MODIFYING_NODE_TYPES = [AssignOp::class, PreDec::class, PostDec::class, PreInc::class, PostInc::class];
private const MODIFYING_NODE_TYPES = [Assign::class, AssignOp::class, PreDec::class, PostDec::class, PreInc::class, PostInc::class];
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\Core\PhpParser\Comparing\NodeComparator
*/
private $nodeComparator;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
@ -57,10 +50,9 @@ final class AssignManipulator
* @var \Rector\Core\Util\MultiInstanceofChecker
*/
private $multiInstanceofChecker;
public function __construct(NodeNameResolver $nodeNameResolver, NodeComparator $nodeComparator, BetterNodeFinder $betterNodeFinder, PropertyFetchAnalyzer $propertyFetchAnalyzer, MultiInstanceofChecker $multiInstanceofChecker)
public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder $betterNodeFinder, PropertyFetchAnalyzer $propertyFetchAnalyzer, MultiInstanceofChecker $multiInstanceofChecker)
{
$this->nodeNameResolver = $nodeNameResolver;
$this->nodeComparator = $nodeComparator;
$this->betterNodeFinder = $betterNodeFinder;
$this->propertyFetchAnalyzer = $propertyFetchAnalyzer;
$this->multiInstanceofChecker = $multiInstanceofChecker;
@ -82,11 +74,9 @@ final class AssignManipulator
public function isLeftPartOfAssign(Node $node) : bool
{
$parentNode = $node->getAttribute(AttributeKey::PARENT_NODE);
if ($parentNode instanceof Assign || $parentNode instanceof AssignOp) {
return $this->nodeComparator->areNodesEqual($parentNode->var, $node);
}
if ($parentNode instanceof Node && $this->multiInstanceofChecker->isInstanceOf($parentNode, self::MODIFYING_NODE_TYPES)) {
return \true;
/** @var Assign|AssignOp|PreDec|PostDec|PreInc|PostInc $parentNode */
return $parentNode->var === $node;
}
if ($this->isOnArrayDestructuring($parentNode)) {
return \true;
@ -98,27 +88,13 @@ final class AssignManipulator
$previousParent = $parentNode;
$parentNode = $parentNode->getAttribute(AttributeKey::PARENT_NODE);
}
$item1Unpacked = self::MODIFYING_NODE_TYPES;
if ($parentNode instanceof Node && $this->multiInstanceofChecker->isInstanceOf($parentNode, \array_merge([Assign::class], $item1Unpacked))) {
if ($parentNode instanceof Node && $this->multiInstanceofChecker->isInstanceOf($parentNode, self::MODIFYING_NODE_TYPES)) {
/** @var Assign|AssignOp|PreDec|PostDec|PreInc|PostInc $parentNode */
return $parentNode->var === $previousParent;
}
}
return \false;
}
public function isNodePartOfAssign(Node $node) : bool
{
$previousNode = $node;
$parentNode = $node->getAttribute(AttributeKey::PARENT_NODE);
while ($parentNode instanceof Node && !$parentNode instanceof Expression) {
if ($parentNode instanceof Assign && $this->nodeComparator->areNodesEqual($parentNode->var, $previousNode)) {
return \true;
}
$previousNode = $parentNode;
$parentNode = $parentNode->getAttribute(AttributeKey::PARENT_NODE);
}
return \false;
}
/**
* @api doctrine
* @return array<PropertyFetch|StaticPropertyFetch>

2
vendor/autoload.php vendored
View File

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

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitf167373a28fac5d4ba8c412064d9b2b8
class ComposerAutoloaderInita8ee314711efb8ec289a213de4a955f6
{
private static $loader;
@ -22,17 +22,17 @@ class ComposerAutoloaderInitf167373a28fac5d4ba8c412064d9b2b8
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitf167373a28fac5d4ba8c412064d9b2b8', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInita8ee314711efb8ec289a213de4a955f6', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInitf167373a28fac5d4ba8c412064d9b2b8', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInita8ee314711efb8ec289a213de4a955f6', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitf167373a28fac5d4ba8c412064d9b2b8::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInita8ee314711efb8ec289a213de4a955f6::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$filesToLoad = \Composer\Autoload\ComposerStaticInitf167373a28fac5d4ba8c412064d9b2b8::$files;
$filesToLoad = \Composer\Autoload\ComposerStaticInita8ee314711efb8ec289a213de4a955f6::$files;
$requireFile = \Closure::bind(static function ($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 ComposerStaticInitf167373a28fac5d4ba8c412064d9b2b8
class ComposerStaticInita8ee314711efb8ec289a213de4a955f6
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@ -3152,9 +3152,9 @@ class ComposerStaticInitf167373a28fac5d4ba8c412064d9b2b8
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitf167373a28fac5d4ba8c412064d9b2b8::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitf167373a28fac5d4ba8c412064d9b2b8::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitf167373a28fac5d4ba8c412064d9b2b8::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInita8ee314711efb8ec289a213de4a955f6::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInita8ee314711efb8ec289a213de4a955f6::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInita8ee314711efb8ec289a213de4a955f6::$classMap;
}, null, ClassLoader::class);
}