diff --git a/rules/DeadCode/Rector/Assign/RemoveDoubleAssignRector.php b/rules/DeadCode/Rector/Assign/RemoveDoubleAssignRector.php index ad45594dbff..53b807c71d3 100644 --- a/rules/DeadCode/Rector/Assign/RemoveDoubleAssignRector.php +++ b/rules/DeadCode/Rector/Assign/RemoveDoubleAssignRector.php @@ -5,12 +5,15 @@ namespace Rector\DeadCode\Rector\Assign; use PhpParser\Node; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\BinaryOp\Coalesce; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; +use PhpParser\Node\Expr\Ternary; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt\Expression; use Rector\Core\Rector\AbstractRector; use Rector\DeadCode\SideEffect\SideEffectNodeDetector; +use Rector\NodeNestingScope\ParentFinder; use Rector\NodeNestingScope\ScopeNestingComparator; use Rector\NodeTypeResolver\Node\AttributeKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -28,10 +31,15 @@ final class RemoveDoubleAssignRector extends \Rector\Core\Rector\AbstractRector * @var \Rector\DeadCode\SideEffect\SideEffectNodeDetector */ private $sideEffectNodeDetector; - public function __construct(\Rector\NodeNestingScope\ScopeNestingComparator $scopeNestingComparator, \Rector\DeadCode\SideEffect\SideEffectNodeDetector $sideEffectNodeDetector) + /** + * @var \Rector\NodeNestingScope\ParentFinder + */ + private $parentFinder; + public function __construct(\Rector\NodeNestingScope\ScopeNestingComparator $scopeNestingComparator, \Rector\DeadCode\SideEffect\SideEffectNodeDetector $sideEffectNodeDetector, \Rector\NodeNestingScope\ParentFinder $parentFinder) { $this->scopeNestingComparator = $scopeNestingComparator; $this->sideEffectNodeDetector = $sideEffectNodeDetector; + $this->parentFinder = $parentFinder; } public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition { @@ -87,7 +95,10 @@ CODE_SAMPLE if (!$this->areInSameClassMethod($assign, $expression)) { return \true; } - return !$this->scopeNestingComparator->areScopeNestingEqual($assign, $expression); + if (!$this->scopeNestingComparator->areScopeNestingEqual($assign, $expression)) { + return \true; + } + return (bool) $this->parentFinder->findByTypes($assign, [\PhpParser\Node\Expr\Ternary::class, \PhpParser\Node\Expr\BinaryOp\Coalesce::class]); } private function isSelfReferencing(\PhpParser\Node\Expr\Assign $assign) : bool { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 37a1a26d8e3..9af6663729d 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -16,11 +16,11 @@ final class VersionResolver /** * @var string */ - public const PACKAGE_VERSION = '7ff79f6e02a2b2fe1fb87ee9933c25e09cbbeee2'; + public const PACKAGE_VERSION = '479df50e71997ffcc081fa4818a859ee4712ac4f'; /** * @var string */ - public const RELEASE_DATE = '2021-09-03 22:21:05'; + public const RELEASE_DATE = '2021-09-03 18:46:34'; public static function resolvePackageVersion() : string { $process = new \RectorPrefix20210903\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__); diff --git a/vendor/autoload.php b/vendor/autoload.php index 79794bcb509..28fa1fe36e3 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518::getLoader(); +return ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 8f5bb51e8ba..5d11a4e8fed 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518 +class ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541 { private static $loader; @@ -22,15 +22,15 @@ class ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541', '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\ComposerStaticInitcd71ca378649c1c1ddbdbb93b021e518::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit98e077d8cb213bf51fb48a14c104a541::getInitializer($loader)); } else { $classMap = require __DIR__ . '/autoload_classmap.php'; if ($classMap) { @@ -42,19 +42,19 @@ class ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitcd71ca378649c1c1ddbdbb93b021e518::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit98e077d8cb213bf51fb48a14c104a541::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequirecd71ca378649c1c1ddbdbb93b021e518($fileIdentifier, $file); + composerRequire98e077d8cb213bf51fb48a14c104a541($fileIdentifier, $file); } return $loader; } } -function composerRequirecd71ca378649c1c1ddbdbb93b021e518($fileIdentifier, $file) +function composerRequire98e077d8cb213bf51fb48a14c104a541($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 214644941ea..c6406a8c37b 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitcd71ca378649c1c1ddbdbb93b021e518 +class ComposerStaticInit98e077d8cb213bf51fb48a14c104a541 { public static $files = array ( 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', @@ -3856,9 +3856,9 @@ class ComposerStaticInitcd71ca378649c1c1ddbdbb93b021e518 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitcd71ca378649c1c1ddbdbb93b021e518::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitcd71ca378649c1c1ddbdbb93b021e518::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitcd71ca378649c1c1ddbdbb93b021e518::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit98e077d8cb213bf51fb48a14c104a541::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit98e077d8cb213bf51fb48a14c104a541::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit98e077d8cb213bf51fb48a14c104a541::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index b21d31145fb..7db8840b0ae 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -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('RectorPrefix20210903\AutoloadIncluder'); } -if (!class_exists('ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518', false) && !interface_exists('ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518', false) && !trait_exists('ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518', false)) { - spl_autoload_call('RectorPrefix20210903\ComposerAutoloaderInitcd71ca378649c1c1ddbdbb93b021e518'); +if (!class_exists('ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541', false) && !interface_exists('ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541', false) && !trait_exists('ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541', false)) { + spl_autoload_call('RectorPrefix20210903\ComposerAutoloaderInit98e077d8cb213bf51fb48a14c104a541'); } 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('RectorPrefix20210903\Helmich\TypoScriptParser\Parser\AST\Statement'); @@ -3311,9 +3311,9 @@ if (!function_exists('print_node')) { return \RectorPrefix20210903\print_node(...func_get_args()); } } -if (!function_exists('composerRequirecd71ca378649c1c1ddbdbb93b021e518')) { - function composerRequirecd71ca378649c1c1ddbdbb93b021e518() { - return \RectorPrefix20210903\composerRequirecd71ca378649c1c1ddbdbb93b021e518(...func_get_args()); +if (!function_exists('composerRequire98e077d8cb213bf51fb48a14c104a541')) { + function composerRequire98e077d8cb213bf51fb48a14c104a541() { + return \RectorPrefix20210903\composerRequire98e077d8cb213bf51fb48a14c104a541(...func_get_args()); } } if (!function_exists('parseArgs')) {