diff --git a/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php b/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php index 34b1fe3fa9e5..bd5a687b3760 100644 --- a/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php +++ b/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php @@ -6,7 +6,8 @@ use PhpParser\Node; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; -use PhpParser\Node\Scalar\String_; +use PHPStan\Type\ArrayType; +use PHPStan\Type\IntegerType; use Rector\DowngradePhp74\Rector\Array_\DowngradeArraySpreadRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -67,7 +68,15 @@ private function shouldSkip(\PhpParser\Node\Expr\Array_ $array) : bool if (!$item instanceof \PhpParser\Node\Expr\ArrayItem) { continue; } - if (!$item->key instanceof \PhpParser\Node\Scalar\String_) { + if (!$item->unpack) { + continue; + } + $type = $this->nodeTypeResolver->getType($item->value); + if (!$type instanceof \PHPStan\Type\ArrayType) { + continue; + } + $keyType = $type->getKeyType(); + if ($keyType instanceof \PHPStan\Type\IntegerType) { return \true; } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 6d39c12d5ef6..d751d962d815 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -16,11 +16,11 @@ final class VersionResolver /** * @var string */ - public const PACKAGE_VERSION = '81a50ac6ddcd91edf119a500fbce9b0cb377b5af'; + public const PACKAGE_VERSION = '493d4e6d0e99cc7e5e24bcdd69d124e52d4207cb'; /** * @var string */ - public const RELEASE_DATE = '2021-12-03 07:42:11'; + public const RELEASE_DATE = '2021-12-03 14:09:16'; public static function resolvePackageVersion() : string { $process = new \RectorPrefix20211203\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__); diff --git a/vendor/autoload.php b/vendor/autoload.php index 5527d8033062..a2f1ebb42c0c 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee::getLoader(); +return ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 9708a5af9765..01c4cf3d7b82 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee +class ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac { private static $loader; @@ -22,15 +22,15 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac', '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\ComposerStaticInit73609966b6ebdd532fc02117b9cbd1ee::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitd41d721b12778623b2d1f0f5c9b63fac::getInitializer($loader)); } else { $classMap = require __DIR__ . '/autoload_classmap.php'; if ($classMap) { @@ -42,19 +42,19 @@ public static function getLoader() $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit73609966b6ebdd532fc02117b9cbd1ee::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitd41d721b12778623b2d1f0f5c9b63fac::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire73609966b6ebdd532fc02117b9cbd1ee($fileIdentifier, $file); + composerRequired41d721b12778623b2d1f0f5c9b63fac($fileIdentifier, $file); } return $loader; } } -function composerRequire73609966b6ebdd532fc02117b9cbd1ee($fileIdentifier, $file) +function composerRequired41d721b12778623b2d1f0f5c9b63fac($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 cdccdb64a8e7..0a36bdf17b63 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit73609966b6ebdd532fc02117b9cbd1ee +class ComposerStaticInitd41d721b12778623b2d1f0f5c9b63fac { public static $files = array ( 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', @@ -3795,9 +3795,9 @@ class ComposerStaticInit73609966b6ebdd532fc02117b9cbd1ee public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit73609966b6ebdd532fc02117b9cbd1ee::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit73609966b6ebdd532fc02117b9cbd1ee::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit73609966b6ebdd532fc02117b9cbd1ee::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitd41d721b12778623b2d1f0f5c9b63fac::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitd41d721b12778623b2d1f0f5c9b63fac::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitd41d721b12778623b2d1f0f5c9b63fac::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index eb5d880bca4f..c38f0728818e 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -12,8 +12,8 @@ if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) { spl_autoload_call('RectorPrefix20211203\AutoloadIncluder'); } -if (!class_exists('ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee', false) && !interface_exists('ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee', false) && !trait_exists('ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee', false)) { - spl_autoload_call('RectorPrefix20211203\ComposerAutoloaderInit73609966b6ebdd532fc02117b9cbd1ee'); +if (!class_exists('ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac', false) && !interface_exists('ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac', false) && !trait_exists('ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac', false)) { + spl_autoload_call('RectorPrefix20211203\ComposerAutoloaderInitd41d721b12778623b2d1f0f5c9b63fac'); } 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('RectorPrefix20211203\Helmich\TypoScriptParser\Parser\AST\Statement'); @@ -81,9 +81,9 @@ function print_node() { return \RectorPrefix20211203\print_node(...func_get_args()); } } -if (!function_exists('composerRequire73609966b6ebdd532fc02117b9cbd1ee')) { - function composerRequire73609966b6ebdd532fc02117b9cbd1ee() { - return \RectorPrefix20211203\composerRequire73609966b6ebdd532fc02117b9cbd1ee(...func_get_args()); +if (!function_exists('composerRequired41d721b12778623b2d1f0f5c9b63fac')) { + function composerRequired41d721b12778623b2d1f0f5c9b63fac() { + return \RectorPrefix20211203\composerRequired41d721b12778623b2d1f0f5c9b63fac(...func_get_args()); } } if (!function_exists('scanPath')) {