diff --git a/rules/Php81/NodeAnalyzer/ComplexNewAnalyzer.php b/rules/Php81/NodeAnalyzer/ComplexNewAnalyzer.php index 08248004c91..bd20c3d3366 100644 --- a/rules/Php81/NodeAnalyzer/ComplexNewAnalyzer.php +++ b/rules/Php81/NodeAnalyzer/ComplexNewAnalyzer.php @@ -9,22 +9,15 @@ use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\New_; use PhpParser\Node\Name\FullyQualified; use Rector\Core\NodeAnalyzer\ExprAnalyzer; -use Rector\Core\NodeManipulator\ArrayManipulator; final class ComplexNewAnalyzer { - /** - * @readonly - * @var \Rector\Core\NodeManipulator\ArrayManipulator - */ - private $arrayManipulator; /** * @readonly * @var \Rector\Core\NodeAnalyzer\ExprAnalyzer */ private $exprAnalyzer; - public function __construct(ArrayManipulator $arrayManipulator, ExprAnalyzer $exprAnalyzer) + public function __construct(ExprAnalyzer $exprAnalyzer) { - $this->arrayManipulator = $arrayManipulator; $this->exprAnalyzer = $exprAnalyzer; } public function isDynamic(New_ $new) : bool @@ -61,7 +54,7 @@ final class ComplexNewAnalyzer } private function isAllowedArray(Array_ $array) : bool { - if (!$this->arrayManipulator->isDynamicArray($array)) { + if (!$this->exprAnalyzer->isDynamicArray($array)) { return \true; } $arrayItems = $array->items; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 92a4cdd92ac..7aa040dcd1b 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '9b03d8367cd3c69b36b8b1aedf458b191f46655a'; + public const PACKAGE_VERSION = 'ae896432a906ca02a97c326295a29ced3c689998'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-08-05 11:25:26'; + public const RELEASE_DATE = '2023-08-05 13:09:12'; /** * @var int */ diff --git a/src/NodeAnalyzer/ExprAnalyzer.php b/src/NodeAnalyzer/ExprAnalyzer.php index 348bdd190dd..660a6e9dc5d 100644 --- a/src/NodeAnalyzer/ExprAnalyzer.php +++ b/src/NodeAnalyzer/ExprAnalyzer.php @@ -5,6 +5,7 @@ namespace Rector\Core\NodeAnalyzer; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\ConstFetch; use PhpParser\Node\Expr\Variable; @@ -12,23 +13,15 @@ use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Scalar; use PhpParser\Node\Scalar\Encapsed; +use PhpParser\Node\Scalar\LNumber; +use PhpParser\Node\Scalar\String_; use PHPStan\Analyser\Scope; use PHPStan\Type\MixedType; use PHPStan\Type\UnionType; use Rector\Core\Enum\ObjectReference; -use Rector\Core\NodeManipulator\ArrayManipulator; use Rector\NodeTypeResolver\Node\AttributeKey; final class ExprAnalyzer { - /** - * @readonly - * @var \Rector\Core\NodeManipulator\ArrayManipulator - */ - private $arrayManipulator; - public function __construct(ArrayManipulator $arrayManipulator) - { - $this->arrayManipulator = $arrayManipulator; - } public function isNonTypedFromParam(Expr $expr) : bool { if (!$expr instanceof Variable) { @@ -58,7 +51,22 @@ final class ExprAnalyzer } return !$this->isAllowedConstFetchOrClassConstFetch($expr); } - return $this->arrayManipulator->isDynamicArray($expr); + return $this->isDynamicArray($expr); + } + public function isDynamicArray(Array_ $array) : bool + { + foreach ($array->items as $item) { + if (!$item instanceof ArrayItem) { + continue; + } + if (!$this->isAllowedArrayKey($item->key)) { + return \true; + } + if (!$this->isAllowedArrayValue($item->value)) { + return \true; + } + } + return \false; } private function isAllowedConstFetchOrClassConstFetch(Expr $expr) : bool { @@ -77,4 +85,21 @@ final class ExprAnalyzer } return \false; } + private function isAllowedArrayKey(?Expr $expr) : bool + { + if (!$expr instanceof Expr) { + return \true; + } + if ($expr instanceof String_) { + return \true; + } + return $expr instanceof LNumber; + } + private function isAllowedArrayValue(Expr $expr) : bool + { + if ($expr instanceof Array_) { + return !$this->isDynamicArray($expr); + } + return !$this->isDynamicExpr($expr); + } } diff --git a/vendor/autoload.php b/vendor/autoload.php index 32b2014e504..731283e5d3a 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitcf6a7b224b07ea957577e7892385954b::getLoader(); +return ComposerAutoloaderInit19495756deacfcbb37b409ae48e3c3f5::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 4b068abd38c..358ae79ea78 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1581,7 +1581,6 @@ return array( 'Rector\\Core\\NodeAnalyzer\\VariadicAnalyzer' => $baseDir . '/src/NodeAnalyzer/VariadicAnalyzer.php', 'Rector\\Core\\NodeDecorator\\CreatedByRuleDecorator' => $baseDir . '/src/NodeDecorator/CreatedByRuleDecorator.php', 'Rector\\Core\\NodeDecorator\\PropertyTypeDecorator' => $baseDir . '/src/NodeDecorator/PropertyTypeDecorator.php', - 'Rector\\Core\\NodeManipulator\\ArrayManipulator' => $baseDir . '/src/NodeManipulator/ArrayManipulator.php', 'Rector\\Core\\NodeManipulator\\AssignManipulator' => $baseDir . '/src/NodeManipulator/AssignManipulator.php', 'Rector\\Core\\NodeManipulator\\BinaryOpManipulator' => $baseDir . '/src/NodeManipulator/BinaryOpManipulator.php', 'Rector\\Core\\NodeManipulator\\ClassConstManipulator' => $baseDir . '/src/NodeManipulator/ClassConstManipulator.php', @@ -2487,6 +2486,7 @@ return array( 'Rector\\Symfony\\NodeFactory\\OnSuccessLogoutClassMethodFactory' => $vendorDir . '/rector/rector-symfony/src/NodeFactory/OnSuccessLogoutClassMethodFactory.php', 'Rector\\Symfony\\NodeFactory\\ThisRenderFactory' => $vendorDir . '/rector/rector-symfony/src/NodeFactory/ThisRenderFactory.php', 'Rector\\Symfony\\NodeFinder\\EmptyReturnNodeFinder' => $vendorDir . '/rector/rector-symfony/src/NodeFinder/EmptyReturnNodeFinder.php', + 'Rector\\Symfony\\NodeManipulator\\ArrayManipulator' => $vendorDir . '/rector/rector-symfony/src/NodeManipulator/ArrayManipulator.php', 'Rector\\Symfony\\NodeManipulator\\ClassManipulator' => $vendorDir . '/rector/rector-symfony/src/NodeManipulator/ClassManipulator.php', 'Rector\\Symfony\\PhpDocNode\\SymfonyRouteTagValueNodeFactory' => $vendorDir . '/rector/rector-symfony/src/PhpDocNode/SymfonyRouteTagValueNodeFactory.php', 'Rector\\Symfony\\Set\\FOSRestSetList' => $vendorDir . '/rector/rector-symfony/src/Set/FOSRestSetList.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 4846afc438d..c66d56f57b8 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitcf6a7b224b07ea957577e7892385954b +class ComposerAutoloaderInit19495756deacfcbb37b409ae48e3c3f5 { private static $loader; @@ -22,17 +22,17 @@ class ComposerAutoloaderInitcf6a7b224b07ea957577e7892385954b return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitcf6a7b224b07ea957577e7892385954b', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit19495756deacfcbb37b409ae48e3c3f5', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitcf6a7b224b07ea957577e7892385954b', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit19495756deacfcbb37b409ae48e3c3f5', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitcf6a7b224b07ea957577e7892385954b::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit19495756deacfcbb37b409ae48e3c3f5::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitcf6a7b224b07ea957577e7892385954b::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit19495756deacfcbb37b409ae48e3c3f5::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 5de21f28fe8..ebfa924981e 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitcf6a7b224b07ea957577e7892385954b +class ComposerStaticInit19495756deacfcbb37b409ae48e3c3f5 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -1835,7 +1835,6 @@ class ComposerStaticInitcf6a7b224b07ea957577e7892385954b 'Rector\\Core\\NodeAnalyzer\\VariadicAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/VariadicAnalyzer.php', 'Rector\\Core\\NodeDecorator\\CreatedByRuleDecorator' => __DIR__ . '/../..' . '/src/NodeDecorator/CreatedByRuleDecorator.php', 'Rector\\Core\\NodeDecorator\\PropertyTypeDecorator' => __DIR__ . '/../..' . '/src/NodeDecorator/PropertyTypeDecorator.php', - 'Rector\\Core\\NodeManipulator\\ArrayManipulator' => __DIR__ . '/../..' . '/src/NodeManipulator/ArrayManipulator.php', 'Rector\\Core\\NodeManipulator\\AssignManipulator' => __DIR__ . '/../..' . '/src/NodeManipulator/AssignManipulator.php', 'Rector\\Core\\NodeManipulator\\BinaryOpManipulator' => __DIR__ . '/../..' . '/src/NodeManipulator/BinaryOpManipulator.php', 'Rector\\Core\\NodeManipulator\\ClassConstManipulator' => __DIR__ . '/../..' . '/src/NodeManipulator/ClassConstManipulator.php', @@ -2741,6 +2740,7 @@ class ComposerStaticInitcf6a7b224b07ea957577e7892385954b 'Rector\\Symfony\\NodeFactory\\OnSuccessLogoutClassMethodFactory' => __DIR__ . '/..' . '/rector/rector-symfony/src/NodeFactory/OnSuccessLogoutClassMethodFactory.php', 'Rector\\Symfony\\NodeFactory\\ThisRenderFactory' => __DIR__ . '/..' . '/rector/rector-symfony/src/NodeFactory/ThisRenderFactory.php', 'Rector\\Symfony\\NodeFinder\\EmptyReturnNodeFinder' => __DIR__ . '/..' . '/rector/rector-symfony/src/NodeFinder/EmptyReturnNodeFinder.php', + 'Rector\\Symfony\\NodeManipulator\\ArrayManipulator' => __DIR__ . '/..' . '/rector/rector-symfony/src/NodeManipulator/ArrayManipulator.php', 'Rector\\Symfony\\NodeManipulator\\ClassManipulator' => __DIR__ . '/..' . '/rector/rector-symfony/src/NodeManipulator/ClassManipulator.php', 'Rector\\Symfony\\PhpDocNode\\SymfonyRouteTagValueNodeFactory' => __DIR__ . '/..' . '/rector/rector-symfony/src/PhpDocNode/SymfonyRouteTagValueNodeFactory.php', 'Rector\\Symfony\\Set\\FOSRestSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/FOSRestSetList.php', @@ -3016,9 +3016,9 @@ class ComposerStaticInitcf6a7b224b07ea957577e7892385954b public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitcf6a7b224b07ea957577e7892385954b::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitcf6a7b224b07ea957577e7892385954b::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitcf6a7b224b07ea957577e7892385954b::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit19495756deacfcbb37b409ae48e3c3f5::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit19495756deacfcbb37b409ae48e3c3f5::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit19495756deacfcbb37b409ae48e3c3f5::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index bfecdca335f..3d950280d2a 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -2130,24 +2130,24 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "a0af12a8d67d0edefe6cffd22cdced62729a1dd9" + "reference": "73e258ca281de9a9db99d3f33df8afa1efcf31d3" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/a0af12a8d67d0edefe6cffd22cdced62729a1dd9", - "reference": "a0af12a8d67d0edefe6cffd22cdced62729a1dd9", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/73e258ca281de9a9db99d3f33df8afa1efcf31d3", + "reference": "73e258ca281de9a9db99d3f33df8afa1efcf31d3", "shasum": "" }, "require": { "ext-xml": "*", "php": ">=8.1", - "symfony\/string": "^6.1" + "symfony\/string": "^6.3" }, "require-dev": { - "phpstan\/extension-installer": "^1.2", + "phpstan\/extension-installer": "^1.3", "phpstan\/phpstan": "^1.9.2", "phpstan\/phpstan-webmozart-assert": "^1.2", - "phpunit\/phpunit": "^10.0", + "phpunit\/phpunit": "^10.3", "rector\/phpstan-rules": "^0.6", "rector\/rector-generator": "^0.6", "rector\/rector-src": "dev-main", @@ -2156,16 +2156,17 @@ "symfony\/security-http": "^6.1", "symfony\/validator": "^6.2", "symplify\/easy-ci": "^11.2", - "symplify\/easy-coding-standard": "^11.2", + "symplify\/easy-coding-standard": "^12.0", "symplify\/phpstan-extensions": "^11.1", "symplify\/phpstan-rules": "^11.2", "symplify\/rule-doc-generator": "^11.2", "symplify\/vendor-patches": "^11.2", + "tomasvotruba\/class-leak": "0.1.1.72", "tomasvotruba\/cognitive-complexity": "^0.1", "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/unused-public": "^0.1" + "tomasvotruba\/unused-public": "^0.2" }, - "time": "2023-07-14T10:30:55+00:00", + "time": "2023-08-05T11:57:58+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b3c7b387f73..2168ec94869 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202308; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.0', 'version' => '3.1.0.0', 'reference' => '4bff79ddd77851fe3cdd11616ed3f92841ba5bd2', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.3.2', 'version' => '3.3.2.0', 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.1', 'version' => '3.0.1.0', 'reference' => '531bfb9d15f8aa57454f5f0285b18bec903b8fb7', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'eb1a7e72e159136a832f2c0467de5570bdc208ae', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/neon' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '372d945c156ee7f35c953339fb164538339e6283', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/neon', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.16.0', 'version' => '4.16.0.0', 'reference' => '19526a33fb561ef417e822e85f08a00db4059c17', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.23.1', 'version' => '1.23.1.0', 'reference' => '846ae76eef31c6d7790fac9bc399ecee45160b26', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.10.27', 'version' => '1.10.27.0', 'reference' => 'a9f44dcea06f59d1363b100bb29f297b311fa640', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/event-dispatcher' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', 'reference' => '3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '6e7e587714fff7a83dcc7025aee42ab3b265ae05', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.10.0', 'version' => '2.10.0.0', 'reference' => 'f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.13.0', 'version' => '1.13.0.0', 'reference' => 'cff482bbad5848ecbe8b57da57e4e213b03619aa', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => '0.15.x-dev', 1 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dbc34e9e73eac53684db3324dde9b6abfca745bb', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e56076384098855154b3ca4ca17cc1a2de076520', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '04381624cfee50410f0fd06f4cedd21fbd883535', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'a0af12a8d67d0edefe6cffd22cdced62729a1dd9', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/config' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'b47ca238b03e7b0d7880ffd1cf06e8d637ca1467', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'aa5d64ad3f63f2e48964fc81ee45cb318a723898', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/contracts' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '9e4b5e4e44e7620475dbceecf7c72c3883f3ea35', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/dependency-injection' => array('pretty_version' => 'v6.1.12', 'version' => '6.1.12.0', 'reference' => '360c9d0948e1fe675336346d5862e8e55b378d90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/event-dispatcher-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/filesystem' => array('pretty_version' => 'v6.3.1', 'version' => '6.3.1.0', 'reference' => 'edd36776956f2a6fcf577edb5b05eb0e3bdc52ae', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.3.3', 'version' => '6.3.3.0', 'reference' => '9915db259f67d21eefee768c1abcf1cc61b1fc9e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-client-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0|3.0')), 'symfony/string' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => '53d1a83225002635bca3482fcbf963001313fb68', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tracy/tracy' => array('pretty_version' => 'v2.10.3', 'version' => '2.10.3.0', 'reference' => 'ec6637866d6836ef6f8de2bab63ae7708b23bcd7', 'type' => 'library', 'install_path' => __DIR__ . '/../tracy/tracy', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); +return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.0', 'version' => '3.1.0.0', 'reference' => '4bff79ddd77851fe3cdd11616ed3f92841ba5bd2', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.3.2', 'version' => '3.3.2.0', 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.1', 'version' => '3.0.1.0', 'reference' => '531bfb9d15f8aa57454f5f0285b18bec903b8fb7', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'eb1a7e72e159136a832f2c0467de5570bdc208ae', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/neon' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '372d945c156ee7f35c953339fb164538339e6283', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/neon', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.16.0', 'version' => '4.16.0.0', 'reference' => '19526a33fb561ef417e822e85f08a00db4059c17', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.23.1', 'version' => '1.23.1.0', 'reference' => '846ae76eef31c6d7790fac9bc399ecee45160b26', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.10.27', 'version' => '1.10.27.0', 'reference' => 'a9f44dcea06f59d1363b100bb29f297b311fa640', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/event-dispatcher' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', 'reference' => '3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '6e7e587714fff7a83dcc7025aee42ab3b265ae05', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.10.0', 'version' => '2.10.0.0', 'reference' => 'f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.13.0', 'version' => '1.13.0.0', 'reference' => 'cff482bbad5848ecbe8b57da57e4e213b03619aa', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => '0.15.x-dev', 1 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dbc34e9e73eac53684db3324dde9b6abfca745bb', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e56076384098855154b3ca4ca17cc1a2de076520', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '04381624cfee50410f0fd06f4cedd21fbd883535', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '73e258ca281de9a9db99d3f33df8afa1efcf31d3', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/config' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'b47ca238b03e7b0d7880ffd1cf06e8d637ca1467', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'aa5d64ad3f63f2e48964fc81ee45cb318a723898', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/contracts' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '9e4b5e4e44e7620475dbceecf7c72c3883f3ea35', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/dependency-injection' => array('pretty_version' => 'v6.1.12', 'version' => '6.1.12.0', 'reference' => '360c9d0948e1fe675336346d5862e8e55b378d90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/event-dispatcher-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/filesystem' => array('pretty_version' => 'v6.3.1', 'version' => '6.3.1.0', 'reference' => 'edd36776956f2a6fcf577edb5b05eb0e3bdc52ae', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.3.3', 'version' => '6.3.3.0', 'reference' => '9915db259f67d21eefee768c1abcf1cc61b1fc9e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-client-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0|3.0')), 'symfony/string' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => '53d1a83225002635bca3482fcbf963001313fb68', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tracy/tracy' => array('pretty_version' => 'v2.10.3', 'version' => '2.10.3.0', 'reference' => 'ec6637866d6836ef6f8de2bab63ae7708b23bcd7', 'type' => 'library', 'install_path' => __DIR__ . '/../tracy/tracy', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/extension-installer/src/GeneratedConfig.php index 625d493e82d..675d2a10195 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ namespace Rector\RectorInstaller; */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main dbc34e9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main e560763'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 0438162'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main a0af12a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main dbc34e9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main e560763'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 0438162'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 73e258c')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/composer.json b/vendor/rector/rector-symfony/composer.json index 2428c812063..e358e315de2 100644 --- a/vendor/rector/rector-symfony/composer.json +++ b/vendor/rector/rector-symfony/composer.json @@ -6,13 +6,13 @@ "require": { "php": ">=8.1", "ext-xml": "*", - "symfony\/string": "^6.1" + "symfony\/string": "^6.3" }, "require-dev": { - "phpstan\/extension-installer": "^1.2", + "phpstan\/extension-installer": "^1.3", "phpstan\/phpstan": "^1.9.2", "phpstan\/phpstan-webmozart-assert": "^1.2", - "phpunit\/phpunit": "^10.0", + "phpunit\/phpunit": "^10.3", "rector\/phpstan-rules": "^0.6", "rector\/rector-generator": "^0.6", "rector\/rector-src": "dev-main", @@ -21,14 +21,15 @@ "symfony\/security-http": "^6.1", "symfony\/validator": "^6.2", "symplify\/easy-ci": "^11.2", - "symplify\/easy-coding-standard": "^11.2", + "symplify\/easy-coding-standard": "^12.0", "symplify\/phpstan-extensions": "^11.1", "symplify\/phpstan-rules": "^11.2", "symplify\/rule-doc-generator": "^11.2", "symplify\/vendor-patches": "^11.2", + "tomasvotruba\/class-leak": "0.1.1.72", "tomasvotruba\/cognitive-complexity": "^0.1", "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/unused-public": "^0.1" + "tomasvotruba\/unused-public": "^0.2" }, "autoload": { "psr-4": { diff --git a/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/ReadOnlyOptionToAttributeRector.php b/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/ReadOnlyOptionToAttributeRector.php index c23da2bd903..d62fcd58457 100644 --- a/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/ReadOnlyOptionToAttributeRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/ReadOnlyOptionToAttributeRector.php @@ -8,10 +8,10 @@ use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Scalar\String_; -use Rector\Core\NodeManipulator\ArrayManipulator; use Rector\Core\Rector\AbstractRector; use Rector\Symfony\NodeAnalyzer\FormAddMethodCallAnalyzer; use Rector\Symfony\NodeAnalyzer\FormOptionsArrayMatcher; +use Rector\Symfony\NodeManipulator\ArrayManipulator; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -21,7 +21,7 @@ final class ReadOnlyOptionToAttributeRector extends AbstractRector { /** * @readonly - * @var \Rector\Core\NodeManipulator\ArrayManipulator + * @var \Rector\Symfony\NodeManipulator\ArrayManipulator */ private $arrayManipulator; /** diff --git a/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php b/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php index d2bdbe10cf6..b9a8d64df28 100644 --- a/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php +++ b/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php @@ -8,6 +8,9 @@ use Rector\Symfony\Contract\Bridge\Symfony\Routing\SymfonyRoutesProviderInterfac use Rector\Symfony\ValueObject\SymfonyRouteMetadata; use RectorPrefix202308\Symfony\Component\Routing\RouterInterface; use RectorPrefix202308\Webmozart\Assert\Assert; +/** + * @api part of AddRouteAnnotationRector + */ final class SymfonyRoutesProvider implements SymfonyRoutesProviderInterface { /** diff --git a/src/NodeManipulator/ArrayManipulator.php b/vendor/rector/rector-symfony/src/NodeManipulator/ArrayManipulator.php similarity index 56% rename from src/NodeManipulator/ArrayManipulator.php rename to vendor/rector/rector-symfony/src/NodeManipulator/ArrayManipulator.php index 382643c5a17..7b485ab366e 100644 --- a/src/NodeManipulator/ArrayManipulator.php +++ b/vendor/rector/rector-symfony/src/NodeManipulator/ArrayManipulator.php @@ -1,16 +1,12 @@ rectorChangeCollector = $rectorChangeCollector; } - /** - * @required - */ - public function autowire(ExprAnalyzer $exprAnalyzer) : void - { - $this->exprAnalyzer = $exprAnalyzer; - } - public function isDynamicArray(Array_ $array) : bool - { - foreach ($array->items as $item) { - if (!$item instanceof ArrayItem) { - continue; - } - if (!$this->isAllowedArrayKey($item->key)) { - return \true; - } - if (!$this->isAllowedArrayValue($item->value)) { - return \true; - } - } - return \false; - } - /** - * @api symfony - */ public function addItemToArrayUnderKey(Array_ $array, ArrayItem $newArrayItem, string $key) : void { foreach ($array->items as $item) { @@ -67,9 +34,6 @@ final class ArrayManipulator } $array->items[] = new ArrayItem(new Array_([$newArrayItem]), new String_($key)); } - /** - * @api - */ public function findItemInInArrayByKeyAndUnset(Array_ $array, string $keyName) : ?ArrayItem { foreach ($array->items as $i => $item) { @@ -90,28 +54,11 @@ final class ArrayManipulator } return null; } - /** - * @api symfony - */ - public function hasKeyName(ArrayItem $arrayItem, string $name) : bool + private function hasKeyName(ArrayItem $arrayItem, string $name) : bool { if (!$arrayItem->key instanceof String_) { return \false; } return $arrayItem->key->value === $name; } - private function isAllowedArrayKey(?Expr $expr) : bool - { - if (!$expr instanceof Expr) { - return \true; - } - return \in_array(\get_class($expr), [String_::class, LNumber::class], \true); - } - private function isAllowedArrayValue(Expr $expr) : bool - { - if ($expr instanceof Array_) { - return !$this->isDynamicArray($expr); - } - return !$this->exprAnalyzer->isDynamicExpr($expr); - } } diff --git a/vendor/rector/rector-symfony/src/Set/FOSRestSetList.php b/vendor/rector/rector-symfony/src/Set/FOSRestSetList.php index 2d5b8703e78..c17bb227bd7 100644 --- a/vendor/rector/rector-symfony/src/Set/FOSRestSetList.php +++ b/vendor/rector/rector-symfony/src/Set/FOSRestSetList.php @@ -4,6 +4,9 @@ declare (strict_types=1); namespace Rector\Symfony\Set; use Rector\Set\Contract\SetListInterface; +/** + * @api used in public + */ final class FOSRestSetList implements SetListInterface { /**