Updated Rector to commit baf8394798205ee0d9c6f27e72f018e0996e624f

baf8394798 Fix var/property usage for RemoveUnusedNonEmptyArrayBeforeForeachRector. (#3040)
This commit is contained in:
Tomas Votruba 2022-11-10 07:49:28 +00:00
parent 329458c65d
commit d9e32f78d0
5 changed files with 25 additions and 23 deletions

View File

@ -11,6 +11,7 @@ use PhpParser\Node\Stmt\Foreach_;
use PhpParser\Node\Stmt\If_;
use PHPStan\Analyser\Scope;
use PHPStan\Type\ArrayType;
use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer;
use Rector\Core\NodeManipulator\IfManipulator;
use Rector\Core\Php\ReservedKeywordAnalyzer;
use Rector\Core\Rector\AbstractScopeAwareRector;
@ -44,12 +45,18 @@ final class RemoveUnusedNonEmptyArrayBeforeForeachRector extends AbstractScopeAw
* @var \Rector\Core\Php\ReservedKeywordAnalyzer
*/
private $reservedKeywordAnalyzer;
public function __construct(CountManipulator $countManipulator, IfManipulator $ifManipulator, UselessIfCondBeforeForeachDetector $uselessIfCondBeforeForeachDetector, ReservedKeywordAnalyzer $reservedKeywordAnalyzer)
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer
*/
private $propertyFetchAnalyzer;
public function __construct(CountManipulator $countManipulator, IfManipulator $ifManipulator, UselessIfCondBeforeForeachDetector $uselessIfCondBeforeForeachDetector, ReservedKeywordAnalyzer $reservedKeywordAnalyzer, PropertyFetchAnalyzer $propertyFetchAnalyzer)
{
$this->countManipulator = $countManipulator;
$this->ifManipulator = $ifManipulator;
$this->uselessIfCondBeforeForeachDetector = $uselessIfCondBeforeForeachDetector;
$this->reservedKeywordAnalyzer = $reservedKeywordAnalyzer;
$this->propertyFetchAnalyzer = $propertyFetchAnalyzer;
}
public function getRuleDefinition() : RuleDefinition
{
@ -99,9 +106,6 @@ CODE_SAMPLE
}
/** @var Foreach_ $stmt */
$stmt = $node->stmts[0];
if ($node->cond instanceof Assign) {
return null;
}
$ifComments = $node->getAttribute(AttributeKey::COMMENTS) ?? [];
$stmtComments = $stmt->getAttribute(AttributeKey::COMMENTS) ?? [];
$comments = \array_merge($ifComments, $stmtComments);
@ -122,17 +126,15 @@ CODE_SAMPLE
return \false;
}
}
if (($if->cond instanceof Variable || $this->propertyFetchAnalyzer->isPropertyFetch($if->cond)) && $this->nodeComparator->areNodesEqual($if->cond, $foreachExpr)) {
return $scope->getType($if->cond) instanceof ArrayType;
}
if ($this->uselessIfCondBeforeForeachDetector->isMatchingNotIdenticalEmptyArray($if, $foreachExpr)) {
return \true;
}
if ($this->uselessIfCondBeforeForeachDetector->isMatchingNotEmpty($if, $foreachExpr, $scope)) {
return \true;
}
// we know it's an array
$condType = $this->getType($if->cond);
if ($condType instanceof ArrayType) {
return \true;
}
return $this->countManipulator->isCounterHigherThanOne($if->cond, $foreachExpr);
}
}

View File

@ -17,12 +17,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = '10c6a3047fde6a6a2f94c9260dc3482de6e7f5c0';
public const PACKAGE_VERSION = 'baf8394798205ee0d9c6f27e72f018e0996e624f';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2022-11-08 14:32:39';
public const RELEASE_DATE = '2022-11-10 14:43:44';
/**
* @var int
*/

2
vendor/autoload.php vendored
View File

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

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit1c3cbccfa64a5d167f095ce822ca30fd
class ComposerAutoloaderInit616d5e9225234d487d24cad0ea6ffd9f
{
private static $loader;
@ -22,19 +22,19 @@ class ComposerAutoloaderInit1c3cbccfa64a5d167f095ce822ca30fd
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit1c3cbccfa64a5d167f095ce822ca30fd', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit616d5e9225234d487d24cad0ea6ffd9f', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit1c3cbccfa64a5d167f095ce822ca30fd', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit616d5e9225234d487d24cad0ea6ffd9f', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit1c3cbccfa64a5d167f095ce822ca30fd::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit616d5e9225234d487d24cad0ea6ffd9f::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$includeFiles = \Composer\Autoload\ComposerStaticInit1c3cbccfa64a5d167f095ce822ca30fd::$files;
$includeFiles = \Composer\Autoload\ComposerStaticInit616d5e9225234d487d24cad0ea6ffd9f::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire1c3cbccfa64a5d167f095ce822ca30fd($fileIdentifier, $file);
composerRequire616d5e9225234d487d24cad0ea6ffd9f($fileIdentifier, $file);
}
return $loader;
@ -46,7 +46,7 @@ class ComposerAutoloaderInit1c3cbccfa64a5d167f095ce822ca30fd
* @param string $file
* @return void
*/
function composerRequire1c3cbccfa64a5d167f095ce822ca30fd($fileIdentifier, $file)
function composerRequire616d5e9225234d487d24cad0ea6ffd9f($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 ComposerStaticInit1c3cbccfa64a5d167f095ce822ca30fd
class ComposerStaticInit616d5e9225234d487d24cad0ea6ffd9f
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@ -3053,9 +3053,9 @@ class ComposerStaticInit1c3cbccfa64a5d167f095ce822ca30fd
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit1c3cbccfa64a5d167f095ce822ca30fd::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit1c3cbccfa64a5d167f095ce822ca30fd::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit1c3cbccfa64a5d167f095ce822ca30fd::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit616d5e9225234d487d24cad0ea6ffd9f::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit616d5e9225234d487d24cad0ea6ffd9f::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit616d5e9225234d487d24cad0ea6ffd9f::$classMap;
}, null, ClassLoader::class);
}