From 2cfcc91aea1c4bc6e558ea896f721bdb0dfb8f84 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 19 Aug 2026 13:23:21 +0000 Subject: [PATCH 001/169] Updated Rector to commit 6bf2d903c357b123c60cd4e9609d910e6874709d https://github.com/rectorphp/rector-src/commit/6bf2d903c357b123c60cd4e9609d910e6874709d Rebuild --- src/Application/VersionResolver.php | 4 ++-- vendor/composer/installed.json | 8 +++---- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- ...RouteRequirementStringToConstantRector.php | 2 +- ...GetMethodsToAsTwigAttributeTransformer.php | 22 ++++++++++++++++--- 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 7de957c26f7..37b827dfc7d 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 = '2.6.3'; + public const PACKAGE_VERSION = '6bf2d903c357b123c60cd4e9609d910e6874709d'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-18 16:00:00'; + public const RELEASE_DATE = '2026-08-19 13:20:27'; /** * @var int */ diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index ed07387a69c..09c3a0569b5 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "6b757483fa24d37d2559d728ac29795753dea051" + "reference": "e1bc815ddece7edb3644002afcf76098a257fb9c" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/6b757483fa24d37d2559d728ac29795753dea051", - "reference": "6b757483fa24d37d2559d728ac29795753dea051", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/e1bc815ddece7edb3644002afcf76098a257fb9c", + "reference": "e1bc815ddece7edb3644002afcf76098a257fb9c", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-15T07:41:44+00:00", + "time": "2026-08-19T13:19:56+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 1d4d7e012ce..2923c89ddd1 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6b757483fa24d37d2559d728ac29795753dea051', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e1bc815ddece7edb3644002afcf76098a257fb9c', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 d0c1c97982d..128dbc8b8da 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 6b75748')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main e1bc815')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/rules/Symfony61/Rector/Attribute/RouteRequirementStringToConstantRector.php b/vendor/rector/rector-symfony/rules/Symfony61/Rector/Attribute/RouteRequirementStringToConstantRector.php index b5b1c7830a9..ef979b6dfc1 100644 --- a/vendor/rector/rector-symfony/rules/Symfony61/Rector/Attribute/RouteRequirementStringToConstantRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony61/Rector/Attribute/RouteRequirementStringToConstantRector.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony61\Rector\Attribute; -use PhpParser\Node\Identifier; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Identifier; use PhpParser\Node\Scalar\String_; use PHPStan\Reflection\ReflectionProvider; use Rector\Rector\AbstractRector; diff --git a/vendor/rector/rector-symfony/rules/Symfony73/GetMethodsToAsTwigAttributeTransformer.php b/vendor/rector/rector-symfony/rules/Symfony73/GetMethodsToAsTwigAttributeTransformer.php index 093339cc010..6725bda1bf2 100644 --- a/vendor/rector/rector-symfony/rules/Symfony73/GetMethodsToAsTwigAttributeTransformer.php +++ b/vendor/rector/rector-symfony/rules/Symfony73/GetMethodsToAsTwigAttributeTransformer.php @@ -9,8 +9,10 @@ use PhpParser\Node\AttributeGroup; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ArrowFunction; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\New_; +use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Scalar\String_; @@ -232,8 +234,13 @@ private function matchArrayItemConversion(int $key, ArrayItem $arrayItem, Class_ if (!$this->isLocalCallable($secondArg->value)) { return null; } - $localMethodName = $this->localArrayMethodCallableMatcher->match($secondArg->value, $objectType); - if (!is_string($localMethodName)) { + $secondArgValue = $secondArg->value; + if ($secondArgValue instanceof ArrowFunction && $secondArgValue->expr instanceof MethodCall && $secondArgValue->expr->name instanceof Identifier) { + $localMethodName = $secondArgValue->expr->name->toString(); + } else { + $localMethodName = $this->localArrayMethodCallableMatcher->match($secondArgValue, $objectType); + } + if (!\is_string($localMethodName)) { return null; } $localMethod = $class->getMethod($localMethodName); @@ -293,7 +300,16 @@ private function isLocalCallable(Expr $expr): bool if ($expr instanceof MethodCall && $expr->isFirstClassCallable()) { return \true; } - return $expr instanceof Array_ && count($expr->items) === 2; + if ($expr instanceof Array_ && \count($expr->items) === 2) { + return \true; + } + if ($expr instanceof ArrowFunction && $expr->expr instanceof MethodCall) { + $methodCall = $expr->expr; + if ($methodCall->var instanceof Variable && $methodCall->var->name === 'this') { + return \true; + } + } + return \false; } /** * @return Arg[]|null From 2201182aebf3583e9b598bd1d2297e07af4eccbe Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 19 Aug 2026 20:24:50 +0000 Subject: [PATCH 002/169] Updated Rector to commit 6bf2d903c357b123c60cd4e9609d910e6874709d --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../extension-installer/src/GeneratedConfig.php | 2 +- .../Rector/MethodCall/OptionNameRector.php | 16 +++++++++++++--- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 09c3a0569b5..d1dfc8758b6 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "e1bc815ddece7edb3644002afcf76098a257fb9c" + "reference": "faa327054dc88b09f57aaf1e372cfbae99f5bb7d" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/e1bc815ddece7edb3644002afcf76098a257fb9c", - "reference": "e1bc815ddece7edb3644002afcf76098a257fb9c", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/faa327054dc88b09f57aaf1e372cfbae99f5bb7d", + "reference": "faa327054dc88b09f57aaf1e372cfbae99f5bb7d", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-19T13:19:56+00:00", + "time": "2026-08-19T20:21:31+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 2923c89ddd1..da7913e13c1 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e1bc815ddece7edb3644002afcf76098a257fb9c', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'faa327054dc88b09f57aaf1e372cfbae99f5bb7d', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 128dbc8b8da..b39135df703 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main e1bc815')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main faa3270')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/OptionNameRector.php b/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/OptionNameRector.php index a4773ba8998..cce4d0509bd 100644 --- a/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/OptionNameRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony30/Rector/MethodCall/OptionNameRector.php @@ -76,6 +76,7 @@ public function refactor(Node $node): ?Node if (!$optionsArray instanceof Array_) { return null; } + $hasChanged = \false; foreach ($optionsArray->items as $arrayItemNode) { if (!$arrayItemNode instanceof ArrayItem) { continue; @@ -83,13 +84,22 @@ public function refactor(Node $node): ?Node if (!$arrayItemNode->key instanceof String_) { continue; } - $this->processStringKey($arrayItemNode->key); + if ($this->processStringKey($arrayItemNode->key)) { + $hasChanged = \true; + } + } + if (!$hasChanged) { + return null; } return $node; } - private function processStringKey(String_ $string): void + private function processStringKey(String_ $string): bool { $currentOptionName = $string->value; - $string->value = self::OLD_TO_NEW_OPTION[$currentOptionName] ?? $string->value; + if (!isset(self::OLD_TO_NEW_OPTION[$currentOptionName])) { + return \false; + } + $string->value = self::OLD_TO_NEW_OPTION[$currentOptionName]; + return \true; } } From 0bf0ca80f70a14d79a2d0b83d9c16990c4b9ac5f Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 19 Aug 2026 20:33:31 +0000 Subject: [PATCH 003/169] Updated Rector to commit 6bf2d903c357b123c60cd4e9609d910e6874709d --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../rector/extension-installer/src/GeneratedConfig.php | 2 +- .../config/sets/symfony/composer-based.php | 3 +++ .../config/sets/symfony/symfony-code-quality.php | 9 --------- .../MethodCall/ParameterBagTypedGetMethodCallRector.php | 8 +++++++- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index d1dfc8758b6..d9591b6b732 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "faa327054dc88b09f57aaf1e372cfbae99f5bb7d" + "reference": "72bf27d714fb67e436d45b606a4b6657c4e4ff3d" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/faa327054dc88b09f57aaf1e372cfbae99f5bb7d", - "reference": "faa327054dc88b09f57aaf1e372cfbae99f5bb7d", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/72bf27d714fb67e436d45b606a4b6657c4e4ff3d", + "reference": "72bf27d714fb67e436d45b606a4b6657c4e4ff3d", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-19T20:21:31+00:00", + "time": "2026-08-19T20:30:25+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index da7913e13c1..0a238a1e20b 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'faa327054dc88b09f57aaf1e372cfbae99f5bb7d', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '72bf27d714fb67e436d45b606a4b6657c4e4ff3d', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 b39135df703..809ab795957 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main faa3270')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 72bf27d')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php index a50516178ce..07242a9b155 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php @@ -43,6 +43,7 @@ use Rector\Symfony\CodeQuality\Rector\AttributeGroup\SingleConditionSecurityAttributeToIsGrantedRector; use Rector\Symfony\CodeQuality\Rector\Class_\LoadValidatorMetadataToAttributeRector; use Rector\Symfony\CodeQuality\Rector\Class_\SplitAndSecurityAttributeToIsGrantedRector; +use Rector\Symfony\CodeQuality\Rector\MethodCall\ParameterBagTypedGetMethodCallRector; use Rector\Symfony\JMS\Rector\Class_\AccessTypeAnnotationToAttributeRector; use Rector\Symfony\JMS\Rector\Property\AccessorAnnotationToAttributeRector; use Rector\Symfony\Symfony25\Rector\MethodCall\AddViolationToBuildViolationRector; @@ -202,6 +203,8 @@ // symfony/security-http 5.1 LogoutHandlerToLogoutEventSubscriberRector::class, LogoutSuccessHandlerToLogoutEventSubscriberRector::class, + // symfony/http-foundation 5.1 + ParameterBagTypedGetMethodCallRector::class, // symfony/dependency-injection 5.2 DefinitionAliasSetPrivateToSetPublicRector::class, // symfony/form 5.2 diff --git a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php index 00ffc77b080..1b56881f1d5 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php @@ -4,26 +4,21 @@ namespace RectorPrefix202608; use Rector\Config\RectorConfig; -use Rector\Symfony\CodeQuality\Rector\AttributeGroup\SingleConditionSecurityAttributeToIsGrantedRector; use Rector\Symfony\CodeQuality\Rector\BinaryOp\RequestIsMainRector; use Rector\Symfony\CodeQuality\Rector\BinaryOp\ResponseStatusCodeRector; use Rector\Symfony\CodeQuality\Rector\Class_\EventListenerToEventSubscriberRector; use Rector\Symfony\CodeQuality\Rector\Class_\EventSubscriberMethodReturnVoidRector; use Rector\Symfony\CodeQuality\Rector\Class_\InlineClassRoutePrefixRector; use Rector\Symfony\CodeQuality\Rector\Class_\LoadValidatorMetadataToAttributeRector; -use Rector\Symfony\CodeQuality\Rector\Class_\SplitAndSecurityAttributeToIsGrantedRector; use Rector\Symfony\CodeQuality\Rector\ClassMethod\ParamTypeFromRouteRequiredRegexRector; use Rector\Symfony\CodeQuality\Rector\ClassMethod\RemoveUnusedRequestParamRector; use Rector\Symfony\CodeQuality\Rector\ClassMethod\ResponseReturnTypeControllerActionRector; use Rector\Symfony\CodeQuality\Rector\MethodCall\AssertSameResponseCodeWithDebugContentsRector; use Rector\Symfony\CodeQuality\Rector\MethodCall\LiteralGetToRequestClassConstantRector; -use Rector\Symfony\CodeQuality\Rector\MethodCall\ParameterBagTypedGetMethodCallRector; use Rector\Symfony\CodeQuality\Rector\MethodCall\StringCastDebugResponseRector; use Rector\Symfony\CodeQuality\Rector\Trait_\AddTraitGetterReturnTypeBasedOnSetterRequiredRector; -use Rector\Symfony\Symfony26\Rector\MethodCall\RedirectToRouteRector; return static function (RectorConfig $rectorConfig): void { $rectorConfig->rules([ - RedirectToRouteRector::class, EventListenerToEventSubscriberRector::class, ResponseReturnTypeControllerActionRector::class, EventSubscriberMethodReturnVoidRector::class, @@ -36,15 +31,11 @@ LoadValidatorMetadataToAttributeRector::class, // request method RequestIsMainRector::class, - ParameterBagTypedGetMethodCallRector::class, // tests AssertSameResponseCodeWithDebugContentsRector::class, StringCastDebugResponseRector::class, // routing InlineClassRoutePrefixRector::class, - // narrow attributes - SingleConditionSecurityAttributeToIsGrantedRector::class, - SplitAndSecurityAttributeToIsGrantedRector::class, AddTraitGetterReturnTypeBasedOnSetterRequiredRector::class, ]); }; diff --git a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/ParameterBagTypedGetMethodCallRector.php b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/ParameterBagTypedGetMethodCallRector.php index 375631ab941..bf4bdc68490 100644 --- a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/ParameterBagTypedGetMethodCallRector.php +++ b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/ParameterBagTypedGetMethodCallRector.php @@ -12,12 +12,14 @@ use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; use Rector\Symfony\Enum\SymfonyClass; +use Rector\VersionBonding\Contract\ComposerPackageConstraintInterface; +use Rector\VersionBonding\ValueObject\ComposerPackageConstraint; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Symfony\Tests\CodeQuality\Rector\MethodCall\ParameterBagTypedGetMethodCallRector\ParameterBagTypedGetMethodCallRectorTest */ -final class ParameterBagTypedGetMethodCallRector extends AbstractRector +final class ParameterBagTypedGetMethodCallRector extends AbstractRector implements ComposerPackageConstraintInterface { /** * @readonly @@ -27,6 +29,10 @@ public function __construct(ValueResolver $valueResolver) { $this->valueResolver = $valueResolver; } + public function provideComposerPackageConstraint(): ComposerPackageConstraint + { + return new ComposerPackageConstraint('symfony/http-foundation', '>=5.1'); + } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Make use of specific ParameterBag::get*() method with native return type declaration', [new CodeSample(<<<'CODE_SAMPLE' From 4f633f1b70cffb99d0c1d0fe642295bbba9046f5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 19 Aug 2026 20:40:33 +0000 Subject: [PATCH 004/169] Updated Rector to commit 6bf2d903c357b123c60cd4e9609d910e6874709d --- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_static.php | 1 - vendor/composer/installed.json | 8 +- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../sets/symfony/symfony-code-quality.php | 4 - ...LiteralGetToRequestClassConstantRector.php | 57 ++---------- ...rReturnTypeBasedOnSetterRequiredRector.php | 88 ++----------------- .../rector-symfony/src/Enum/SymfonyClass.php | 16 ---- .../ConstantMap/SymfonyRequestConstantMap.php | 14 --- 10 files changed, 16 insertions(+), 177 deletions(-) delete mode 100644 vendor/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyRequestConstantMap.php diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 5667e630cc0..a6d7fb94ff4 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2737,7 +2737,6 @@ 'Rector\\Symfony\\ValueObjectFactory\\ServiceMapFactory' => $vendorDir . '/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php', 'Rector\\Symfony\\ValueObject\\ClassNameAndFilePath' => $vendorDir . '/rector/rector-symfony/src/ValueObject/ClassNameAndFilePath.php', 'Rector\\Symfony\\ValueObject\\ConstantMap\\SymfonyCommandConstantMap' => $vendorDir . '/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyCommandConstantMap.php', - 'Rector\\Symfony\\ValueObject\\ConstantMap\\SymfonyRequestConstantMap' => $vendorDir . '/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyRequestConstantMap.php', 'Rector\\Symfony\\ValueObject\\ConstantMap\\SymfonyResponseConstantMap' => $vendorDir . '/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyResponseConstantMap.php', 'Rector\\Symfony\\ValueObject\\EventNameToClassAndConstant' => $vendorDir . '/rector/rector-symfony/src/ValueObject/EventNameToClassAndConstant.php', 'Rector\\Symfony\\ValueObject\\EventReferenceToMethodName' => $vendorDir . '/rector/rector-symfony/src/ValueObject/EventReferenceToMethodName.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index eb2df9743e4..7d206aa009f 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2989,7 +2989,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'Rector\\Symfony\\ValueObjectFactory\\ServiceMapFactory' => __DIR__ . '/..' . '/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php', 'Rector\\Symfony\\ValueObject\\ClassNameAndFilePath' => __DIR__ . '/..' . '/rector/rector-symfony/src/ValueObject/ClassNameAndFilePath.php', 'Rector\\Symfony\\ValueObject\\ConstantMap\\SymfonyCommandConstantMap' => __DIR__ . '/..' . '/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyCommandConstantMap.php', - 'Rector\\Symfony\\ValueObject\\ConstantMap\\SymfonyRequestConstantMap' => __DIR__ . '/..' . '/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyRequestConstantMap.php', 'Rector\\Symfony\\ValueObject\\ConstantMap\\SymfonyResponseConstantMap' => __DIR__ . '/..' . '/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyResponseConstantMap.php', 'Rector\\Symfony\\ValueObject\\EventNameToClassAndConstant' => __DIR__ . '/..' . '/rector/rector-symfony/src/ValueObject/EventNameToClassAndConstant.php', 'Rector\\Symfony\\ValueObject\\EventReferenceToMethodName' => __DIR__ . '/..' . '/rector/rector-symfony/src/ValueObject/EventReferenceToMethodName.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index d9591b6b732..aa16ab0c4c3 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "72bf27d714fb67e436d45b606a4b6657c4e4ff3d" + "reference": "dd3537d72d30db95acab905aca92f7ec9f62b0d1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/72bf27d714fb67e436d45b606a4b6657c4e4ff3d", - "reference": "72bf27d714fb67e436d45b606a4b6657c4e4ff3d", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/dd3537d72d30db95acab905aca92f7ec9f62b0d1", + "reference": "dd3537d72d30db95acab905aca92f7ec9f62b0d1", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-19T20:30:25+00:00", + "time": "2026-08-19T20:37:39+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 0a238a1e20b..b50673d0441 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '72bf27d714fb67e436d45b606a4b6657c4e4ff3d', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dd3537d72d30db95acab905aca92f7ec9f62b0d1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 809ab795957..4f0a8177c1b 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 72bf27d')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main dd3537d')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php index 1b56881f1d5..24aba4c80f0 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php @@ -14,9 +14,7 @@ use Rector\Symfony\CodeQuality\Rector\ClassMethod\RemoveUnusedRequestParamRector; use Rector\Symfony\CodeQuality\Rector\ClassMethod\ResponseReturnTypeControllerActionRector; use Rector\Symfony\CodeQuality\Rector\MethodCall\AssertSameResponseCodeWithDebugContentsRector; -use Rector\Symfony\CodeQuality\Rector\MethodCall\LiteralGetToRequestClassConstantRector; use Rector\Symfony\CodeQuality\Rector\MethodCall\StringCastDebugResponseRector; -use Rector\Symfony\CodeQuality\Rector\Trait_\AddTraitGetterReturnTypeBasedOnSetterRequiredRector; return static function (RectorConfig $rectorConfig): void { $rectorConfig->rules([ EventListenerToEventSubscriberRector::class, @@ -24,7 +22,6 @@ EventSubscriberMethodReturnVoidRector::class, // int and string literals to const fetches ResponseStatusCodeRector::class, - LiteralGetToRequestClassConstantRector::class, RemoveUnusedRequestParamRector::class, ParamTypeFromRouteRequiredRegexRector::class, // controller @@ -36,6 +33,5 @@ StringCastDebugResponseRector::class, // routing InlineClassRoutePrefixRector::class, - AddTraitGetterReturnTypeBasedOnSetterRequiredRector::class, ]); }; diff --git a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/LiteralGetToRequestClassConstantRector.php b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/LiteralGetToRequestClassConstantRector.php index 7a8fe9cdcef..f1f801886f0 100644 --- a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/LiteralGetToRequestClassConstantRector.php +++ b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/LiteralGetToRequestClassConstantRector.php @@ -6,32 +6,16 @@ use PhpParser\Node; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; -use PHPStan\Reflection\ReflectionProvider; -use PHPStan\Type\ObjectType; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; -use Rector\Symfony\Enum\SymfonyClass; -use Rector\Symfony\NodeAnalyzer\LiteralCallLikeConstFetchReplacer; -use Rector\Symfony\ValueObject\ConstantMap\SymfonyRequestConstantMap; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Symfony\Tests\CodeQuality\Rector\MethodCall\LiteralGetToRequestClassConstantRector\LiteralGetToRequestClassConstantRectorTest + * @deprecated Scans every method and static call across the codebase to swap a bare "GET" string for a class constant - a very wide match for a tiny cosmetic gain, with real risk of false positives on unrelated setMethod()/create()/request() calls. */ -final class LiteralGetToRequestClassConstantRector extends AbstractRector +final class LiteralGetToRequestClassConstantRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private LiteralCallLikeConstFetchReplacer $literalCallLikeConstFetchReplacer; - /** - * @readonly - */ - private ReflectionProvider $reflectionProvider; - public function __construct(LiteralCallLikeConstFetchReplacer $literalCallLikeConstFetchReplacer, ReflectionProvider $reflectionProvider) - { - $this->literalCallLikeConstFetchReplacer = $literalCallLikeConstFetchReplacer; - $this->reflectionProvider = $reflectionProvider; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Replace "GET" string by Symfony Request object class constants', [new CodeSample(<<<'CODE_SAMPLE' @@ -70,37 +54,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node instanceof StaticCall) { - return $this->refactorStaticCall($node); - } - // for client, the transitional dependency to browser-kit might be missing and cause fatal error on PHPStan reflection - // in most cases that should be skipped, @changelog https://github.com/rectorphp/rector/issues/7135 - if ($this->reflectionProvider->hasClass(SymfonyClass::ABSTRACT_BROWSER) && $this->isObjectType($node->var, new ObjectType(SymfonyClass::HTTP_CLIENT)) | $this->isObjectType($node->var, new ObjectType(SymfonyClass::KERNEL_BROWSER))) { - return $this->refactorClientMethodCall($node); - } - if (!$this->isName($node->name, 'setMethod')) { - return null; - } - if (!$this->isObjectType($node->var, new ObjectType(SymfonyClass::FORM_BUILDER))) { - return null; - } - return $this->literalCallLikeConstFetchReplacer->replaceArgOnPosition($node, 0, SymfonyClass::REQUEST, SymfonyRequestConstantMap::METHOD_TO_CONST); - } - private function refactorStaticCall(StaticCall $staticCall): ?\PhpParser\Node\Expr\StaticCall - { - if (!$this->isName($staticCall->name, 'create')) { - return null; - } - if (!$this->isObjectType($staticCall->class, new ObjectType(SymfonyClass::REQUEST))) { - return null; - } - return $this->literalCallLikeConstFetchReplacer->replaceArgOnPosition($staticCall, 1, SymfonyClass::REQUEST, SymfonyRequestConstantMap::METHOD_TO_CONST); - } - private function refactorClientMethodCall(MethodCall $methodCall): ?\PhpParser\Node\Expr\MethodCall - { - if (!$this->isName($methodCall->name, 'request')) { - return null; - } - return $this->literalCallLikeConstFetchReplacer->replaceArgOnPosition($methodCall, 0, SymfonyClass::REQUEST, SymfonyRequestConstantMap::METHOD_TO_CONST); + throw new ShouldNotHappenException(sprintf('"%s" is deprecated, as it matches a bare "GET" string across every method and static call for a tiny cosmetic gain.', self::class)); } } diff --git a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Trait_/AddTraitGetterReturnTypeBasedOnSetterRequiredRector.php b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Trait_/AddTraitGetterReturnTypeBasedOnSetterRequiredRector.php index af64e1f1b1a..85b6f08b05b 100644 --- a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Trait_/AddTraitGetterReturnTypeBasedOnSetterRequiredRector.php +++ b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Trait_/AddTraitGetterReturnTypeBasedOnSetterRequiredRector.php @@ -4,37 +4,17 @@ namespace Rector\Symfony\CodeQuality\Rector\Trait_; use PhpParser\Node; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\PropertyFetch; -use PhpParser\Node\Stmt\ClassMethod; -use PhpParser\Node\Stmt\Expression; -use PhpParser\Node\Stmt\Return_; use PhpParser\Node\Stmt\Trait_; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; -use Rector\Symfony\Enum\SymfonyAttribute; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Symfony\Tests\CodeQuality\Rector\Trait_\AddTraitGetterReturnTypeBasedOnSetterRequiredRector\AddTraitGetterReturnTypeBasedOnSetterRequiredRectorTest + * @deprecated Matches a very narrow trait shape - exactly one property and one required setter/getter pair - to infer a return type. The match is too fragile and risky for the tiny gain, and PHPStan already reports the missing return type. */ -final class AddTraitGetterReturnTypeBasedOnSetterRequiredRector extends AbstractRector +final class AddTraitGetterReturnTypeBasedOnSetterRequiredRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private PhpDocInfoFactory $phpDocInfoFactory; - /** - * @readonly - */ - private PhpAttributeAnalyzer $phpAttributeAnalyzer; - public function __construct(PhpDocInfoFactory $phpDocInfoFactory, PhpAttributeAnalyzer $phpAttributeAnalyzer) - { - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->phpAttributeAnalyzer = $phpAttributeAnalyzer; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Add trait getter return type based on setter with @required annotation or #[\Symfony\Contracts\Service\Attribute\Required] attribute', [new CodeSample(<<<'CODE_SAMPLE' @@ -93,64 +73,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - $methods = $node->getMethods(); - if (count($methods) !== 2) { - return null; - } - $props = $node->getProperties(); - if (count($props) !== 1) { - return null; - } - $getMethod = null; - foreach ($methods as $method) { - $methodName = (string) $this->getName($method); - if (strncmp($methodName, 'set', strlen('set')) !== 0) { - continue; - } - $getterMethod = 'get' . ltrim($methodName, 'set'); - $getMethod = $node->getMethod($getterMethod); - // getter for setter is not exists - if (!$getMethod instanceof ClassMethod) { - return null; - } - // already returned - if ($getMethod->returnType instanceof Node) { - return null; - } - if (count((array) $method->getStmts()) !== 1) { - return null; - } - if (!$this->shouldProcess($method)) { - return null; - } - if (count($method->params) !== 1) { - return null; - } - if (!$method->params[0]->type instanceof Node) { - return null; - } - $stmts = (array) $method->getStmts(); - if (!$stmts[0] instanceof Expression || !$stmts[0]->expr instanceof Assign || !$stmts[0]->expr->var instanceof PropertyFetch || !$this->nodeComparator->areNodesEqual($stmts[0]->expr->expr, $method->params[0]->var)) { - return null; - } - $getterStmts = (array) $getMethod->getStmts(); - if (count($getterStmts) !== 1) { - return null; - } - if (!$getterStmts[0] instanceof Return_ || !$getterStmts[0]->expr instanceof PropertyFetch) { - return null; - } - $getMethod->returnType = $method->params[0]->type; - return $node; - } - return null; - } - private function shouldProcess(ClassMethod $classMethod): bool - { - $phpDocInfo = $this->phpDocInfoFactory->createFromNode($classMethod); - if ($phpDocInfo instanceof PhpDocInfo && $phpDocInfo->hasByName('required')) { - return \true; - } - return $this->phpAttributeAnalyzer->hasPhpAttribute($classMethod, SymfonyAttribute::REQUIRED); + throw new ShouldNotHappenException(sprintf('"%s" is deprecated, as it matches a very narrow and fragile trait shape for a tiny gain.', self::class)); } } diff --git a/vendor/rector/rector-symfony/src/Enum/SymfonyClass.php b/vendor/rector/rector-symfony/src/Enum/SymfonyClass.php index cf167a9e9de..40c258f9790 100644 --- a/vendor/rector/rector-symfony/src/Enum/SymfonyClass.php +++ b/vendor/rector/rector-symfony/src/Enum/SymfonyClass.php @@ -101,22 +101,6 @@ final class SymfonyClass * @var string */ public const REQUEST_STACK = 'Symfony\Component\HttpFoundation\RequestStack'; - /** - * @var string - */ - public const ABSTRACT_BROWSER = 'Symfony\Component\BrowserKit\AbstractBrowser'; - /** - * @var string - */ - public const HTTP_CLIENT = 'Symfony\Component\HttpKernel\Client'; - /** - * @var string - */ - public const KERNEL_BROWSER = 'Symfony\Bundle\FrameworkBundle\KernelBrowser'; - /** - * @var string - */ - public const FORM_BUILDER = 'Symfony\Component\Form\FormBuilderInterface'; /** * @var string */ diff --git a/vendor/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyRequestConstantMap.php b/vendor/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyRequestConstantMap.php deleted file mode 100644 index 98137b8a4bf..00000000000 --- a/vendor/rector/rector-symfony/src/ValueObject/ConstantMap/SymfonyRequestConstantMap.php +++ /dev/null @@ -1,14 +0,0 @@ - - */ - public const METHOD_TO_CONST = ['GET' => 'METHOD_GET', 'POST' => 'METHOD_POST', 'HEAD' => 'METHOD_HEAD', 'PUT' => 'METHOD_PUT', 'PATCH' => 'METHOD_PATCH', 'DELETE' => 'METHOD_DELETE', 'PURGE' => 'METHOD_PURGE', 'OPTIONS' => 'METHOD_OPTIONS', 'TRACE' => 'METHOD_TRACE', 'CONNECT' => 'METHOD_CONNECT']; -} From c9e44261da4eaeeff5d9b55e2857cbc2245dd9b7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 19 Aug 2026 20:56:38 +0000 Subject: [PATCH 005/169] Updated Rector to commit 6bf2d903c357b123c60cd4e9609d910e6874709d --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../rector/extension-installer/src/GeneratedConfig.php | 2 +- .../config/sets/symfony/composer-based.php | 3 +++ .../config/sets/symfony/symfony-code-quality.php | 3 --- .../CodeQuality/Rector/BinaryOp/RequestIsMainRector.php | 9 ++++++++- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index aa16ab0c4c3..e04424af3cf 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "dd3537d72d30db95acab905aca92f7ec9f62b0d1" + "reference": "087e5af14081bb71231e071031d1d7d164bfe785" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/dd3537d72d30db95acab905aca92f7ec9f62b0d1", - "reference": "dd3537d72d30db95acab905aca92f7ec9f62b0d1", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/087e5af14081bb71231e071031d1d7d164bfe785", + "reference": "087e5af14081bb71231e071031d1d7d164bfe785", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-19T20:37:39+00:00", + "time": "2026-08-19T20:53:11+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b50673d0441..1e76b4d6534 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dd3537d72d30db95acab905aca92f7ec9f62b0d1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '087e5af14081bb71231e071031d1d7d164bfe785', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 4f0a8177c1b..85cc7ac92d6 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main dd3537d')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 087e5af')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php index 07242a9b155..41c5a0aa994 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php @@ -41,6 +41,7 @@ use Rector\Renaming\ValueObject\RenameProperty; use Rector\StaticTypeMapper\ValueObject\Type\SimpleStaticType; use Rector\Symfony\CodeQuality\Rector\AttributeGroup\SingleConditionSecurityAttributeToIsGrantedRector; +use Rector\Symfony\CodeQuality\Rector\BinaryOp\RequestIsMainRector; use Rector\Symfony\CodeQuality\Rector\Class_\LoadValidatorMetadataToAttributeRector; use Rector\Symfony\CodeQuality\Rector\Class_\SplitAndSecurityAttributeToIsGrantedRector; use Rector\Symfony\CodeQuality\Rector\MethodCall\ParameterBagTypedGetMethodCallRector; @@ -221,6 +222,8 @@ ValidatorBuilderEnableAnnotationMappingRector::class, // symfony/framework-bundle 5.3 KernelTestCaseContainerPropertyDeprecationRector::class, + // symfony/http-kernel 5.3 + RequestIsMainRector::class, // symfony/dependency-injection 6.0 ContainerInterfaceServiceToServiceContainerRector::class, // symfony/framework-bundle 6.0 diff --git a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php index 24aba4c80f0..405833ea365 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php @@ -4,7 +4,6 @@ namespace RectorPrefix202608; use Rector\Config\RectorConfig; -use Rector\Symfony\CodeQuality\Rector\BinaryOp\RequestIsMainRector; use Rector\Symfony\CodeQuality\Rector\BinaryOp\ResponseStatusCodeRector; use Rector\Symfony\CodeQuality\Rector\Class_\EventListenerToEventSubscriberRector; use Rector\Symfony\CodeQuality\Rector\Class_\EventSubscriberMethodReturnVoidRector; @@ -26,8 +25,6 @@ ParamTypeFromRouteRequiredRegexRector::class, // controller LoadValidatorMetadataToAttributeRector::class, - // request method - RequestIsMainRector::class, // tests AssertSameResponseCodeWithDebugContentsRector::class, StringCastDebugResponseRector::class, diff --git a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/BinaryOp/RequestIsMainRector.php b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/BinaryOp/RequestIsMainRector.php index b8fbd6fb2fa..1d283966964 100644 --- a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/BinaryOp/RequestIsMainRector.php +++ b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/BinaryOp/RequestIsMainRector.php @@ -12,12 +12,14 @@ use PHPStan\Type\ObjectType; use Rector\Rector\AbstractRector; use Rector\Symfony\Enum\SymfonyClass; +use Rector\VersionBonding\Contract\ComposerPackageConstraintInterface; +use Rector\VersionBonding\ValueObject\ComposerPackageConstraint; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Symfony\Tests\CodeQuality\Rector\BinaryOp\RequestIsMainRector\RequestIsMainRectorTest */ -final class RequestIsMainRector extends AbstractRector +final class RequestIsMainRector extends AbstractRector implements ComposerPackageConstraintInterface { /** * @readonly @@ -27,6 +29,11 @@ public function __construct(ReflectionProvider $reflectionProvider) { $this->reflectionProvider = $reflectionProvider; } + public function provideComposerPackageConstraint(): ComposerPackageConstraint + { + // isMainRequest()/MAIN_REQUEST added in Symfony 5.3 + return new ComposerPackageConstraint('symfony/http-kernel', '>=5.3'); + } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Turns status code numbers to constants', [new CodeSample(<<<'CODE_SAMPLE' From 035885c257f870ef24100b8cccb2db283825f309 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 19 Aug 2026 20:57:18 +0000 Subject: [PATCH 006/169] Updated Rector to commit 6bf2d903c357b123c60cd4e9609d910e6874709d --- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_static.php | 1 - vendor/composer/installed.json | 8 +- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../sets/symfony/symfony-code-quality.php | 3 - .../Class_/InlineClassRoutePrefixRector.php | 245 +----------------- .../rector-symfony/src/Enum/FosAnnotation.php | 20 -- 8 files changed, 11 insertions(+), 271 deletions(-) delete mode 100644 vendor/rector/rector-symfony/src/Enum/FosAnnotation.php diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index a6d7fb94ff4..1ef544b6ee7 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2592,7 +2592,6 @@ 'Rector\\Symfony\\DependencyInjection\\ThisGetTypeMatcher' => $vendorDir . '/rector/rector-symfony/rules/DependencyInjection/ThisGetTypeMatcher.php', 'Rector\\Symfony\\DowngradeSymfony70\\Rector\\Class_\\DowngradeSymfonyCommandAttributeRector' => $vendorDir . '/rector/rector-symfony/rules/DowngradeSymfony70/Rector/Class_/DowngradeSymfonyCommandAttributeRector.php', 'Rector\\Symfony\\Enum\\CommandMethodName' => $vendorDir . '/rector/rector-symfony/src/Enum/CommandMethodName.php', - 'Rector\\Symfony\\Enum\\FosAnnotation' => $vendorDir . '/rector/rector-symfony/src/Enum/FosAnnotation.php', 'Rector\\Symfony\\Enum\\JMSAnnotation' => $vendorDir . '/rector/rector-symfony/src/Enum/JMSAnnotation.php', 'Rector\\Symfony\\Enum\\SensioAnnotation' => $vendorDir . '/rector/rector-symfony/src/Enum/SensioAnnotation.php', 'Rector\\Symfony\\Enum\\SensioAttribute' => $vendorDir . '/rector/rector-symfony/src/Enum/SensioAttribute.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 7d206aa009f..c5d323ad195 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2844,7 +2844,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'Rector\\Symfony\\DependencyInjection\\ThisGetTypeMatcher' => __DIR__ . '/..' . '/rector/rector-symfony/rules/DependencyInjection/ThisGetTypeMatcher.php', 'Rector\\Symfony\\DowngradeSymfony70\\Rector\\Class_\\DowngradeSymfonyCommandAttributeRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/DowngradeSymfony70/Rector/Class_/DowngradeSymfonyCommandAttributeRector.php', 'Rector\\Symfony\\Enum\\CommandMethodName' => __DIR__ . '/..' . '/rector/rector-symfony/src/Enum/CommandMethodName.php', - 'Rector\\Symfony\\Enum\\FosAnnotation' => __DIR__ . '/..' . '/rector/rector-symfony/src/Enum/FosAnnotation.php', 'Rector\\Symfony\\Enum\\JMSAnnotation' => __DIR__ . '/..' . '/rector/rector-symfony/src/Enum/JMSAnnotation.php', 'Rector\\Symfony\\Enum\\SensioAnnotation' => __DIR__ . '/..' . '/rector/rector-symfony/src/Enum/SensioAnnotation.php', 'Rector\\Symfony\\Enum\\SensioAttribute' => __DIR__ . '/..' . '/rector/rector-symfony/src/Enum/SensioAttribute.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e04424af3cf..9bc0fb74bf0 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "087e5af14081bb71231e071031d1d7d164bfe785" + "reference": "301b2e09650aacb1ac3488e040f55daa5e637e94" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/087e5af14081bb71231e071031d1d7d164bfe785", - "reference": "087e5af14081bb71231e071031d1d7d164bfe785", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/301b2e09650aacb1ac3488e040f55daa5e637e94", + "reference": "301b2e09650aacb1ac3488e040f55daa5e637e94", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-19T20:53:11+00:00", + "time": "2026-08-19T20:54:37+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 1e76b4d6534..1d9fde0013f 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '087e5af14081bb71231e071031d1d7d164bfe785', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '301b2e09650aacb1ac3488e040f55daa5e637e94', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 85cc7ac92d6..851618810eb 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 087e5af')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 301b2e0')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php index 405833ea365..2ca21b02a20 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php @@ -7,7 +7,6 @@ use Rector\Symfony\CodeQuality\Rector\BinaryOp\ResponseStatusCodeRector; use Rector\Symfony\CodeQuality\Rector\Class_\EventListenerToEventSubscriberRector; use Rector\Symfony\CodeQuality\Rector\Class_\EventSubscriberMethodReturnVoidRector; -use Rector\Symfony\CodeQuality\Rector\Class_\InlineClassRoutePrefixRector; use Rector\Symfony\CodeQuality\Rector\Class_\LoadValidatorMetadataToAttributeRector; use Rector\Symfony\CodeQuality\Rector\ClassMethod\ParamTypeFromRouteRequiredRegexRector; use Rector\Symfony\CodeQuality\Rector\ClassMethod\RemoveUnusedRequestParamRector; @@ -28,7 +27,5 @@ // tests AssertSameResponseCodeWithDebugContentsRector::class, StringCastDebugResponseRector::class, - // routing - InlineClassRoutePrefixRector::class, ]); }; diff --git a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/InlineClassRoutePrefixRector.php b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/InlineClassRoutePrefixRector.php index 0b5b56009fc..575dc420716 100644 --- a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/InlineClassRoutePrefixRector.php +++ b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/InlineClassRoutePrefixRector.php @@ -4,71 +4,17 @@ namespace Rector\Symfony\CodeQuality\Rector\Class_; use PhpParser\Node; -use PhpParser\Node\Attribute; -use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\ClassMethod; -use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; -use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; -use Rector\BetterPhpDocParser\PhpDoc\StringNode; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover; -use Rector\Comments\NodeDocBlock\DocBlockUpdater; -use Rector\Doctrine\NodeAnalyzer\AttrinationFinder; -use Rector\NodeAnalyzer\MagicClassMethodAnalyzer; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; -use Rector\Symfony\Enum\FosAnnotation; -use Rector\Symfony\Enum\SymfonyAnnotation; -use Rector\Symfony\Enum\SymfonyAttribute; -use Rector\Symfony\TypeAnalyzer\ControllerAnalyzer; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Symfony\Tests\CodeQuality\Rector\Class_\InlineClassRoutePrefixRector\InlineClassRoutePrefixRectorTest + * @deprecated This rule is opinionated - inlining the class route prefix into every method route removes a single shared source of truth and, on controllers with many routes, can worsen readability rather than improve it. */ -final class InlineClassRoutePrefixRector extends AbstractRector +final class InlineClassRoutePrefixRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private PhpDocInfoFactory $phpDocInfoFactory; - /** - * @readonly - */ - private PhpDocTagRemover $phpDocTagRemover; - /** - * @readonly - */ - private DocBlockUpdater $docBlockUpdater; - /** - * @readonly - */ - private ControllerAnalyzer $controllerAnalyzer; - /** - * @readonly - */ - private AttrinationFinder $attrinationFinder; - /** - * @readonly - */ - private MagicClassMethodAnalyzer $magicClassMethodAnalyzer; - /** - * @var string[] - */ - private const FOS_REST_ANNOTATIONS = [FosAnnotation::REST_POST, FosAnnotation::REST_GET, FosAnnotation::REST_ROUTE]; - /** - * @var string - */ - private const PATH = 'path'; - public function __construct(PhpDocInfoFactory $phpDocInfoFactory, PhpDocTagRemover $phpDocTagRemover, DocBlockUpdater $docBlockUpdater, ControllerAnalyzer $controllerAnalyzer, AttrinationFinder $attrinationFinder, MagicClassMethodAnalyzer $magicClassMethodAnalyzer) - { - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->phpDocTagRemover = $phpDocTagRemover; - $this->docBlockUpdater = $docBlockUpdater; - $this->controllerAnalyzer = $controllerAnalyzer; - $this->attrinationFinder = $attrinationFinder; - $this->magicClassMethodAnalyzer = $magicClassMethodAnalyzer; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Inline class route prefix to all method routes, to make single explicit source for route paths', [new CodeSample(<<<'CODE_SAMPLE' @@ -114,187 +60,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Class_ { - if ($this->shouldSkipClass($node)) { - return null; - } - $classRoutePath = null; - $classRouteName = null; - // 1. detect attribute - $routeAttributeOrAnnotation = $this->attrinationFinder->getByMany($node, [SymfonyAttribute::ROUTE, SymfonyAnnotation::ROUTE]); - if ($routeAttributeOrAnnotation instanceof DoctrineAnnotationTagValueNode) { - $classRoutePath = $this->resolveRoutePath($routeAttributeOrAnnotation); - $classRouteName = $this->resolveRouteName($routeAttributeOrAnnotation); - } elseif ($routeAttributeOrAnnotation instanceof Attribute) { - $classRoutePath = $this->resolveRoutePathFromAttribute($routeAttributeOrAnnotation); - $classRouteName = $this->resolveRouteNameFromAttribute($routeAttributeOrAnnotation); - } - if ($classRoutePath === null) { - return null; - } - // 2. inline prefix to all method routes - $hasChanged = \false; - $classRouteNameInlined = \false; - foreach ($node->getMethods() as $classMethod) { - if ($this->shouldSkipMethod($classMethod)) { - continue; - } - // can be route method - $methodRouteAnnotationOrAttributes = $this->attrinationFinder->findManyByMany($classMethod, [SymfonyAttribute::ROUTE, SymfonyAnnotation::ROUTE]); - foreach ($methodRouteAnnotationOrAttributes as $methodRouteAnnotationOrAttribute) { - if ($methodRouteAnnotationOrAttribute instanceof DoctrineAnnotationTagValueNode) { - $routePathArrayItemNode = $methodRouteAnnotationOrAttribute->getSilentValue() ?? $methodRouteAnnotationOrAttribute->getValue(self::PATH); - if (!$routePathArrayItemNode instanceof ArrayItemNode) { - continue; - } - if (!$routePathArrayItemNode->value instanceof StringNode) { - continue; - } - $methodPrefix = $routePathArrayItemNode->value; - $newMethodPath = $classRoutePath . $methodPrefix->value; - $routePathArrayItemNode->value = new StringNode($newMethodPath); - foreach ($methodRouteAnnotationOrAttribute->values as $value) { - if ($value->key === 'name' && $value->value instanceof StringNode && is_string($classRouteName)) { - $value->value->value = $classRouteName . $value->value->value; - } - } - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($classMethod); - $hasChanged = \true; - } elseif ($methodRouteAnnotationOrAttribute instanceof Attribute) { - foreach ($methodRouteAnnotationOrAttribute->args as $methodRouteArg) { - if ($methodRouteArg->name === null || $methodRouteArg->name->toString() === self::PATH) { - if (!$methodRouteArg->value instanceof String_) { - continue; - } - $methodRouteString = $methodRouteArg->value; - $methodRouteArg->value = new String_(sprintf('%s%s', $classRoutePath, $methodRouteString->value)); - $hasChanged = \true; - continue; - } - if ($this->isName($methodRouteArg->name, 'name')) { - if (!$methodRouteArg->value instanceof String_) { - continue; - } - if (!is_string($classRouteName)) { - continue; - } - $methodRouteString = $methodRouteArg->value; - $methodRouteArg->value = new String_(sprintf('%s%s', $classRouteName, $methodRouteString->value)); - $classRouteNameInlined = \true; - $hasChanged = \true; - } - } - } - } - } - if (!$hasChanged) { - return null; - } - if ($routeAttributeOrAnnotation instanceof DoctrineAnnotationTagValueNode) { - $classPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); - $this->phpDocTagRemover->removeTagValueFromNode($classPhpDocInfo, $routeAttributeOrAnnotation); - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); - } else { - foreach ($node->attrGroups as $attrGroupKey => $attrGroup) { - foreach ($attrGroup->attrs as $attribute) { - if ($attribute !== $routeAttributeOrAnnotation) { - continue; - } - // keep attribute if there are other parameters set - $attrGroup = $node->attrGroups[$attrGroupKey]; - foreach ($attrGroup->attrs as $attributeKey => $attribute) { - foreach ($attribute->args as $attributeArgKey => $attributeArg) { - // silent or "path" - if ($attributeArg->name === null || $attributeArg->name->toString() === self::PATH) { - unset($attribute->args[$attributeArgKey]); - continue; - } - // "name" was already inlined into method routes, drop it to avoid a doubled prefix - if ($classRouteNameInlined && $attributeArg->name->toString() === 'name') { - unset($attribute->args[$attributeArgKey]); - } - } - $attribute->args = array_values($attribute->args); - // nothing to keep, remove whole attribute - if ($attribute->args === []) { - unset($attrGroup->attrs[$attributeKey]); - } - } - if ($attrGroup->attrs === []) { - unset($node->attrGroups[$attrGroupKey]); - } - } - } - } - return $node; - } - private function shouldSkipMethod(ClassMethod $classMethod): bool - { - return !$classMethod->isPublic() || $this->magicClassMethodAnalyzer->isUnsafeOverridden($classMethod); - } - private function shouldSkipClass(Class_ $class): bool - { - if (!$this->controllerAnalyzer->isController($class)) { - return \true; - } - foreach ($class->getMethods() as $classMethod) { - if ($this->shouldSkipMethod($classMethod)) { - continue; - } - // special cases for FOS rest that should be skipped - if ($this->attrinationFinder->hasByMany($class, self::FOS_REST_ANNOTATIONS)) { - return \true; - } - } - return \false; - } - private function resolveRoutePath(DoctrineAnnotationTagValueNode $doctrineAnnotationTagValueNode): ?string - { - $classRoutePathNode = $doctrineAnnotationTagValueNode->getSilentValue() ?: $doctrineAnnotationTagValueNode->getValue(self::PATH); - if (!$classRoutePathNode instanceof ArrayItemNode) { - return null; - } - if (!$classRoutePathNode->value instanceof StringNode) { - return null; - } - return $classRoutePathNode->value->value; - } - private function resolveRouteName(DoctrineAnnotationTagValueNode $doctrineAnnotationTagValueNode): ?string - { - $classRouteNameNode = $doctrineAnnotationTagValueNode->getValue('name'); - if (!$classRouteNameNode instanceof ArrayItemNode) { - return null; - } - if (!$classRouteNameNode->value instanceof StringNode) { - return null; - } - return $classRouteNameNode->value->value; - } - private function resolveRoutePathFromAttribute(Attribute $attribute): ?string - { - foreach ($attribute->args as $arg) { - // silent or "path" - if ($arg->name === null || $arg->name->toString() === self::PATH) { - $routeExpr = $arg->value; - if ($routeExpr instanceof String_) { - return $routeExpr->value; - } - } - } - return null; - } - private function resolveRouteNameFromAttribute(Attribute $attribute): ?string - { - foreach ($attribute->args as $arg) { - if ($arg->name === null) { - continue; - } - if ($arg->name->toString() === 'name') { - $routeExpr = $arg->value; - if ($routeExpr instanceof String_) { - return $routeExpr->value; - } - } - } - return null; + throw new ShouldNotHappenException(sprintf('"%s" is deprecated, as inlining the class route prefix is opinionated and can worsen readability.', self::class)); } } diff --git a/vendor/rector/rector-symfony/src/Enum/FosAnnotation.php b/vendor/rector/rector-symfony/src/Enum/FosAnnotation.php deleted file mode 100644 index 7792f325da1..00000000000 --- a/vendor/rector/rector-symfony/src/Enum/FosAnnotation.php +++ /dev/null @@ -1,20 +0,0 @@ - Date: Wed, 19 Aug 2026 21:49:04 +0000 Subject: [PATCH 007/169] Updated Rector to commit 6bf2d903c357b123c60cd4e9609d910e6874709d --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- .../rector-doctrine/config/sets/doctrine-code-quality.php | 3 --- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 9bc0fb74bf0..87c3a7b702d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1728,12 +1728,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "e553a982a321f89ea8f79302d44c58cbb1fb87c1" + "reference": "cb28899b35276189a1f9271648f3b6e9fb0bf0bf" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/e553a982a321f89ea8f79302d44c58cbb1fb87c1", - "reference": "e553a982a321f89ea8f79302d44c58cbb1fb87c1", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/cb28899b35276189a1f9271648f3b6e9fb0bf0bf", + "reference": "cb28899b35276189a1f9271648f3b6e9fb0bf0bf", "shasum": "" }, "require": { @@ -1758,7 +1758,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-15T12:33:04+00:00", + "time": "2026-08-19T21:45:59+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 1d9fde0013f..78fa6f16a28 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e553a982a321f89ea8f79302d44c58cbb1fb87c1', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '301b2e09650aacb1ac3488e040f55daa5e637e94', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '301b2e09650aacb1ac3488e040f55daa5e637e94', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 851618810eb..c47295869e6 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main e553a98'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 301b2e0')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 301b2e0')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/config/sets/doctrine-code-quality.php b/vendor/rector/rector-doctrine/config/sets/doctrine-code-quality.php index e3a5ad535c2..d2246320c88 100644 --- a/vendor/rector/rector-doctrine/config/sets/doctrine-code-quality.php +++ b/vendor/rector/rector-doctrine/config/sets/doctrine-code-quality.php @@ -4,7 +4,6 @@ namespace RectorPrefix202608; use Rector\Config\RectorConfig; -use Rector\Doctrine\Bundle230\Rector\Class_\AddAnnotationToRepositoryRector; use Rector\Doctrine\CodeQuality\Rector\Property\CorrectDefaultTypesOnEntityPropertyRector; use Rector\Doctrine\CodeQuality\Rector\Property\TypedPropertyFromColumnTypeRector; use Rector\Doctrine\CodeQuality\Rector\Property\TypedPropertyFromToOneRelationTypeRector; @@ -18,8 +17,6 @@ TypedPropertyFromColumnTypeRector::class, TypedPropertyFromToOneRelationTypeRector::class, CompleteReturnDocblockFromToManyRector::class, - // @extends annotations service repository generics - AddAnnotationToRepositoryRector::class, ]); $rectorConfig->ruleWithConfiguration(AttributeKeyToClassConstFetchRector::class, [new AttributeKeyToClassConstFetch('Doctrine\ORM\Mapping\Column', 'type', 'Doctrine\DBAL\Types\Types', ['array' => 'ARRAY', 'ascii_string' => 'ASCII_STRING', 'bigint' => 'BIGINT', 'binary' => 'BINARY', 'blob' => 'BLOB', 'boolean' => 'BOOLEAN', 'date' => 'DATE_MUTABLE', 'date_immutable' => 'DATE_IMMUTABLE', 'dateinterval' => 'DATEINTERVAL', 'datetime' => 'DATETIME_MUTABLE', 'datetime_immutable' => 'DATETIME_IMMUTABLE', 'datetimetz' => 'DATETIMETZ_MUTABLE', 'datetimetz_immutable' => 'DATETIMETZ_IMMUTABLE', 'decimal' => 'DECIMAL', 'float' => 'FLOAT', 'guid' => 'GUID', 'integer' => 'INTEGER', 'json' => 'JSON', 'object' => 'OBJECT', 'simple_array' => 'SIMPLE_ARRAY', 'smallint' => 'SMALLINT', 'string' => 'STRING', 'text' => 'TEXT', 'time' => 'TIME_MUTABLE', 'time_immutable' => 'TIME_IMMUTABLE'])]); }; From 541da7ecaecc01830386026fa9a01dcdb62c555e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 20 Aug 2026 15:44:45 +0000 Subject: [PATCH 008/169] Updated Rector to commit 6d4a015891d8ab74f36e4c9b6f251cc193d0f806 https://github.com/rectorphp/rector-src/commit/6d4a015891d8ab74f36e4c9b6f251cc193d0f806 [VersionBonding] Allow a rule to require multiple composer package constraints at once (#8355) --- src/Application/VersionResolver.php | 4 ++-- src/Console/Command/ComposerBasedCommand.php | 13 ++++++++----- .../ComposerPackageConstraintFilter.php | 15 +++++++++++---- .../ComposerPackageConstraintInterface.php | 8 +++++++- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 37b827dfc7d..a92b2e10dd1 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 = '6bf2d903c357b123c60cd4e9609d910e6874709d'; + public const PACKAGE_VERSION = '6d4a015891d8ab74f36e4c9b6f251cc193d0f806'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-19 13:20:27'; + public const RELEASE_DATE = '2026-08-20 17:41:49'; /** * @var int */ diff --git a/src/Console/Command/ComposerBasedCommand.php b/src/Console/Command/ComposerBasedCommand.php index 3ae5c4470e1..13e3fa03f76 100644 --- a/src/Console/Command/ComposerBasedCommand.php +++ b/src/Console/Command/ComposerBasedCommand.php @@ -92,11 +92,14 @@ private function createTableRows(): array continue; } $composerPackageConstraint = $rector->provideComposerPackageConstraint(); - $packageName = $composerPackageConstraint->getPackageName(); - $constraint = $composerPackageConstraint->getConstraint(); - $installedVersion = $this->installedPackageResolver->resolvePackageVersion($packageName); - $isActive = $installedVersion !== null && Semver::satisfies($installedVersion, $constraint); - $tableRows[] = [$this->printShortClassName(get_class($rector)), $packageName, $constraint, $installedVersion ?? '-', $isActive ? 'yes' : 'no']; + $composerPackageConstraints = is_array($composerPackageConstraint) ? $composerPackageConstraint : [$composerPackageConstraint]; + foreach ($composerPackageConstraints as $composerPackageConstraint) { + $packageName = $composerPackageConstraint->getPackageName(); + $constraint = $composerPackageConstraint->getConstraint(); + $installedVersion = $this->installedPackageResolver->resolvePackageVersion($packageName); + $isActive = $installedVersion !== null && Semver::satisfies($installedVersion, $constraint); + $tableRows[] = [$this->printShortClassName(get_class($rector)), $packageName, $constraint, $installedVersion ?? '-', $isActive ? 'yes' : 'no']; + } } // sort by package name first, then by rule class usort($tableRows, static fn(array $firstTableRow, array $secondTableRow): int => [$firstTableRow[1], $firstTableRow[0]] <=> [$secondTableRow[1], $secondTableRow[0]]); diff --git a/src/VersionBonding/ComposerPackageConstraintFilter.php b/src/VersionBonding/ComposerPackageConstraintFilter.php index 6c996b9a225..fe74ce66fb7 100644 --- a/src/VersionBonding/ComposerPackageConstraintFilter.php +++ b/src/VersionBonding/ComposerPackageConstraintFilter.php @@ -41,10 +41,17 @@ public function filter(array $rectors): array private function satisfiesComposerPackageConstraint(ComposerPackageConstraintInterface $rector): bool { $composerPackageConstraint = $rector->provideComposerPackageConstraint(); - $packageVersion = $this->installedPackageResolver->resolvePackageVersion($composerPackageConstraint->getPackageName()); - if ($packageVersion === null) { - return \false; + $composerPackageConstraints = is_array($composerPackageConstraint) ? $composerPackageConstraint : [$composerPackageConstraint]; + // every constraint must be satisfied, so the rule fits every required package at once + foreach ($composerPackageConstraints as $composerPackageConstraint) { + $packageVersion = $this->installedPackageResolver->resolvePackageVersion($composerPackageConstraint->getPackageName()); + if ($packageVersion === null) { + return \false; + } + if (!Semver::satisfies($packageVersion, $composerPackageConstraint->getConstraint())) { + return \false; + } } - return Semver::satisfies($packageVersion, $composerPackageConstraint->getConstraint()); + return \true; } } diff --git a/src/VersionBonding/Contract/ComposerPackageConstraintInterface.php b/src/VersionBonding/Contract/ComposerPackageConstraintInterface.php index db63001354e..75c79d691a0 100644 --- a/src/VersionBonding/Contract/ComposerPackageConstraintInterface.php +++ b/src/VersionBonding/Contract/ComposerPackageConstraintInterface.php @@ -13,5 +13,11 @@ */ interface ComposerPackageConstraintInterface { - public function provideComposerPackageConstraint(): ComposerPackageConstraint; + /** + * Return a single constraint, or a list of constraints that must all be satisfied at once, + * e.g. an attribute that only works when both a library and its framework integration are new enough. + * + * @return ComposerPackageConstraint|list + */ + public function provideComposerPackageConstraint(); } From 1fe708dfe99b9e781702dfe01fe58dae37e422ce Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 20 Aug 2026 15:51:56 +0000 Subject: [PATCH 009/169] Updated Rector to commit 6d4a015891d8ab74f36e4c9b6f251cc193d0f806 --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../rector/extension-installer/src/GeneratedConfig.php | 2 +- .../config/sets/symfony/composer-based.php | 2 +- .../GetFiltersAndFunctionsToAsTwigAttributeRector.php | 9 +++++++-- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 87c3a7b702d..04c9e4f8d27 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "301b2e09650aacb1ac3488e040f55daa5e637e94" + "reference": "79c9c0a0f2a5e465220e588045530109e5119456" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/301b2e09650aacb1ac3488e040f55daa5e637e94", - "reference": "301b2e09650aacb1ac3488e040f55daa5e637e94", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/79c9c0a0f2a5e465220e588045530109e5119456", + "reference": "79c9c0a0f2a5e465220e588045530109e5119456", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-19T20:54:37+00:00", + "time": "2026-08-20T15:47:18+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 78fa6f16a28..1c94087ca4a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '301b2e09650aacb1ac3488e040f55daa5e637e94', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '79c9c0a0f2a5e465220e588045530109e5119456', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 c47295869e6..e4bed59d4ca 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 301b2e0')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 79c9c0a')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php index 41c5a0aa994..eff9bf5d8c4 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php @@ -272,7 +272,7 @@ AddFormatArgumentToIsValidRector::class, // symfony/validator 8.1 ConstraintValidatorValidateToValidateInContextRector::class, - // twig/twig 3.21 + // twig/twig 3.21 + symfony/twig-bridge 7.3 GetFiltersAndFunctionsToAsTwigAttributeRector::class, // jms/serializer 3.14 AccessTypeAnnotationToAttributeRector::class, diff --git a/vendor/rector/rector-symfony/rules/Symfony73/Rector/Class_/GetFiltersAndFunctionsToAsTwigAttributeRector.php b/vendor/rector/rector-symfony/rules/Symfony73/Rector/Class_/GetFiltersAndFunctionsToAsTwigAttributeRector.php index cf98d337bb3..a66b69f0603 100644 --- a/vendor/rector/rector-symfony/rules/Symfony73/Rector/Class_/GetFiltersAndFunctionsToAsTwigAttributeRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony73/Rector/Class_/GetFiltersAndFunctionsToAsTwigAttributeRector.php @@ -28,9 +28,14 @@ public function __construct(GetMethodsToAsTwigAttributeTransformer $getMethodsTo { $this->getMethodsToAsTwigAttributeTransformer = $getMethodsToAsTwigAttributeTransformer; } - public function provideComposerPackageConstraint(): ComposerPackageConstraint + /** + * @return ComposerPackageConstraint[] + */ + public function provideComposerPackageConstraint(): array { - return new ComposerPackageConstraint('twig/twig', '>=3.21'); + // the #[AsTwig*] attributes exist in twig/twig 3.21, but Symfony only autoregisters extension-less + // classes from them in symfony/twig-bridge 7.3; without both, the stripped TwigExtension is silently lost + return [new ComposerPackageConstraint('twig/twig', '>=3.21'), new ComposerPackageConstraint('symfony/twig-bridge', '>=7.3')]; } public function getRuleDefinition(): RuleDefinition { From 6e987f71305d2ed5cae4fab494c1a4021d8a46c6 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 20 Aug 2026 16:04:29 +0000 Subject: [PATCH 010/169] Updated Rector to commit 6d4a015891d8ab74f36e4c9b6f251cc193d0f806 --- vendor/composer/installed.json | 8 +++---- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../MatchAssertSameExpectedTypeRector.php | 19 +++++++++++++-- ...MethodParametersAndReturnTypesResolver.php | 23 +++++++++++++++++++ 5 files changed, 46 insertions(+), 8 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 04c9e4f8d27..9f7a5727f35 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1852,12 +1852,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "753e68c462edd1b2c9909c63e503bcc938541638" + "reference": "e9265f2df3567b8db4f1fe7d0f0997a566eac0d0" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/753e68c462edd1b2c9909c63e503bcc938541638", - "reference": "753e68c462edd1b2c9909c63e503bcc938541638", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/e9265f2df3567b8db4f1fe7d0f0997a566eac0d0", + "reference": "e9265f2df3567b8db4f1fe7d0f0997a566eac0d0", "shasum": "" }, "require": { @@ -1884,7 +1884,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-12T22:55:40+00:00", + "time": "2026-08-20T16:01:15+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 1c94087ca4a..227d8043199 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => '753e68c462edd1b2c9909c63e503bcc938541638', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '79c9c0a0f2a5e465220e588045530109e5119456', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '79c9c0a0f2a5e465220e588045530109e5119456', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 e4bed59d4ca..050f9fbcc1c 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 753e68c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 79c9c0a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 79c9c0a')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/MatchAssertSameExpectedTypeRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/MatchAssertSameExpectedTypeRector.php index 37ccfb64a9d..e2593dbe174 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/MatchAssertSameExpectedTypeRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/MatchAssertSameExpectedTypeRector.php @@ -8,7 +8,9 @@ use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Scalar\Int_; use PhpParser\Node\Scalar\String_; +use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; +use Rector\PHPUnit\CodeQuality\Reflection\MethodParametersAndReturnTypesResolver; use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -22,9 +24,14 @@ final class MatchAssertSameExpectedTypeRector extends AbstractRector * @readonly */ private TestsNodeAnalyzer $testsNodeAnalyzer; - public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer) + /** + * @readonly + */ + private MethodParametersAndReturnTypesResolver $methodParametersAndReturnTypesResolver; + public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, MethodParametersAndReturnTypesResolver $methodParametersAndReturnTypesResolver) { $this->testsNodeAnalyzer = $testsNodeAnalyzer; + $this->methodParametersAndReturnTypesResolver = $methodParametersAndReturnTypesResolver; } public function getRuleDefinition(): RuleDefinition { @@ -89,7 +96,15 @@ public function refactor(Node $node): ?Node } $expectedType = $this->getType($expectedArg->value); $variableExpr = $node->getArgs()[1]->value; - $variableType = $this->nodeTypeResolver->getNativeType($variableExpr); + if ($variableExpr instanceof MethodCall || $variableExpr instanceof StaticCall) { + // an earlier assert can leave the scope type narrowed, even after the caller is mutated + $variableType = $this->methodParametersAndReturnTypesResolver->resolveCallReturnType($variableExpr); + if (!$variableType instanceof Type) { + return null; + } + } else { + $variableType = $this->nodeTypeResolver->getNativeType($variableExpr); + } $directVariableType = TypeCombinator::removeNull($variableType); if ($expectedType->isLiteralString()->yes() && $directVariableType->isInteger()->yes()) { // update expected type to provided type diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Reflection/MethodParametersAndReturnTypesResolver.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Reflection/MethodParametersAndReturnTypesResolver.php index 4e548f15d46..51a550f2e00 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Reflection/MethodParametersAndReturnTypesResolver.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Reflection/MethodParametersAndReturnTypesResolver.php @@ -100,6 +100,29 @@ public function resolveCallParameterTypes($callLike): ?array $extendedMethodReflection = $classReflection->getNativeMethod($methodName); return $this->resolveParameterTypes($extendedMethodReflection, $classReflection); } + /** + * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $callLike + */ + public function resolveCallReturnType($callLike): ?Type + { + if (!$callLike->name instanceof Identifier) { + return null; + } + $methodName = $callLike->name->toString(); + $callerType = $this->resolveObjectType($this->nodeTypeResolver->getType($callLike instanceof MethodCall ? $callLike->var : $callLike->class)); + if (!$callerType instanceof ObjectType) { + return null; + } + $classReflection = $callerType->getClassReflection(); + if (!$classReflection instanceof ClassReflection) { + return null; + } + if (!$classReflection->hasNativeMethod($methodName)) { + return null; + } + $extendedParametersAcceptor = ParametersAcceptorSelector::combineAcceptors($classReflection->getNativeMethod($methodName)->getVariants()); + return $extendedParametersAcceptor->getNativeReturnType(); + } /** * @return string[] * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\New_ $callLike From 35a667f4a79798a39511bc667a5cca9cb1430c42 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 20 Aug 2026 16:28:25 +0000 Subject: [PATCH 011/169] Updated Rector to commit cb1fbe17927606a90e4e8cf0168d570c51573302 https://github.com/rectorphp/rector-src/commit/cb1fbe17927606a90e4e8cf0168d570c51573302 [Php74] Add IfToNullCoalescingAssignRector to convert if null-guard to ??= (#8356) --- config/set/php74.php | 3 +- .../RemovePhpVersionIdCheckRector.php | 7 +- .../MatchPropertyTypeConflictingNameGuard.php | 5 +- .../If_/IfToNullCoalescingAssignRector.php | 131 ++++++++++++++++++ src/Application/VersionResolver.php | 4 +- .../PhpDocParser/ClassAnnotationMatcher.php | 4 +- .../Printer/PhpDocInfoPrinter.php | 4 +- src/Console/Style/SymfonyStyleFactory.php | 5 +- .../Printer/BetterStandardPrinter.php | 4 +- src/ValueObject/ProcessResult.php | 4 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + 12 files changed, 144 insertions(+), 29 deletions(-) create mode 100644 rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php diff --git a/config/set/php74.php b/config/set/php74.php index 6a3fcdfa37e..f76d4766394 100644 --- a/config/set/php74.php +++ b/config/set/php74.php @@ -14,6 +14,7 @@ use Rector\Php74\Rector\FuncCall\MbStrrposEncodingArgumentPositionRector; use Rector\Php74\Rector\FuncCall\MoneyFormatToNumberFormatRector; use Rector\Php74\Rector\FuncCall\RestoreIncludePathToIniRestoreRector; +use Rector\Php74\Rector\If_\IfToNullCoalescingAssignRector; use Rector\Php74\Rector\Property\RestoreDefaultNullToNullableTypePropertyRector; use Rector\Php74\Rector\StaticCall\ExportToReflectionFunctionRector; use Rector\Php74\Rector\Ternary\ParenthesizeNestedTernaryRector; @@ -26,6 +27,6 @@ # https://wiki.php.net/rfc/deprecations_php_7_4 'is_real' => 'is_float', ]); - $rectorConfig->rules([ArrayKeyExistsOnPropertyRector::class, FilterVarToAddSlashesRector::class, ExportToReflectionFunctionRector::class, MbStrrposEncodingArgumentPositionRector::class, NullCoalescingOperatorRector::class, ClosureToArrowFunctionRector::class, RestoreDefaultNullToNullableTypePropertyRector::class, CurlyToSquareBracketArrayStringRector::class, MoneyFormatToNumberFormatRector::class, ParenthesizeNestedTernaryRector::class, RestoreIncludePathToIniRestoreRector::class, HebrevcToNl2brHebrevRector::class]); + $rectorConfig->rules([ArrayKeyExistsOnPropertyRector::class, FilterVarToAddSlashesRector::class, ExportToReflectionFunctionRector::class, MbStrrposEncodingArgumentPositionRector::class, NullCoalescingOperatorRector::class, IfToNullCoalescingAssignRector::class, ClosureToArrowFunctionRector::class, RestoreDefaultNullToNullableTypePropertyRector::class, CurlyToSquareBracketArrayStringRector::class, MoneyFormatToNumberFormatRector::class, ParenthesizeNestedTernaryRector::class, RestoreIncludePathToIniRestoreRector::class, HebrevcToNl2brHebrevRector::class]); $rectorConfig->ruleWithConfiguration(RenameCastRector::class, [new RenameCast(Double::class, Double::KIND_REAL, Double::KIND_FLOAT)]); }; diff --git a/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php b/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php index 57cc484f12c..ba9ce83eee2 100644 --- a/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php +++ b/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php @@ -75,12 +75,7 @@ public function getNodeTypes(): array */ public function refactor(Node $node) { - /** - * $this->phpVersionProvider->provide() fallback is here as $currentFileProvider must be accessed after initialization - */ - if ($this->phpVersion === null) { - $this->phpVersion = $this->phpVersionProvider->provide(); - } + $this->phpVersion ??= $this->phpVersionProvider->provide(); if (!$node->cond instanceof BinaryOp) { return null; } diff --git a/rules/Naming/Guard/PropertyConflictingNameGuard/MatchPropertyTypeConflictingNameGuard.php b/rules/Naming/Guard/PropertyConflictingNameGuard/MatchPropertyTypeConflictingNameGuard.php index 6dae8f29bbe..cbca2b263e1 100644 --- a/rules/Naming/Guard/PropertyConflictingNameGuard/MatchPropertyTypeConflictingNameGuard.php +++ b/rules/Naming/Guard/PropertyConflictingNameGuard/MatchPropertyTypeConflictingNameGuard.php @@ -41,10 +41,7 @@ private function resolve(ClassLike $classLike): array $expectedNames = []; foreach ($classLike->getProperties() as $property) { $expectedName = $this->matchPropertyTypeExpectedNameResolver->resolve($property, $classLike); - if ($expectedName === null) { - // fallback to existing name - $expectedName = $this->nodeNameResolver->getName($property); - } + $expectedName ??= $this->nodeNameResolver->getName($property); $expectedNames[] = $expectedName; } return $this->arrayFilter->filterWithAtLeastTwoOccurrences($expectedNames); diff --git a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php new file mode 100644 index 00000000000..9ace353b2f7 --- /dev/null +++ b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php @@ -0,0 +1,131 @@ +betterNodeFinder = $betterNodeFinder; + $this->valueResolver = $valueResolver; + } + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Change `if` null guard with single assign to null coalescing assign `??=`', [new CodeSample(<<<'CODE_SAMPLE' +if (! isset($array['user_id'])) { + $array['user_id'] = 'value'; +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +$array['user_id'] ??= 'value'; +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes(): array + { + return [If_::class]; + } + /** + * @param If_ $node + */ + public function refactor(Node $node): ?Expression + { + if ($node->else instanceof Else_) { + return null; + } + if ($node->elseifs !== []) { + return null; + } + if (count($node->stmts) !== 1) { + return null; + } + $onlyStmt = $node->stmts[0]; + if (!$onlyStmt instanceof Expression) { + return null; + } + $assign = $onlyStmt->expr; + if (!$assign instanceof Assign) { + return null; + } + $testedExpr = $this->matchNullGuardedExpr($node->cond); + if (!$testedExpr instanceof Expr) { + return null; + } + if (!$this->nodeComparator->areNodesEqual($assign->var, $testedExpr)) { + return null; + } + // the assigned value must not reference the target, e.g. $x = $x + 1 + $selfReference = $this->betterNodeFinder->findFirst($assign->expr, fn(Node $subNode): bool => $this->nodeComparator->areNodesEqual($subNode, $assign->var)); + if ($selfReference instanceof Node) { + return null; + } + return new Expression(new AssignCoalesce($assign->var, $assign->expr)); + } + public function provideMinPhpVersion(): int + { + return PhpVersionFeature::NULL_COALESCE_ASSIGN; + } + private function matchNullGuardedExpr(Expr $expr): ?Expr + { + // ! isset($value) + if ($expr instanceof BooleanNot && $expr->expr instanceof Isset_) { + if (count($expr->expr->vars) !== 1) { + return null; + } + return $expr->expr->vars[0]; + } + // is_null($value) + if ($expr instanceof FuncCall && $this->isName($expr, 'is_null')) { + if ($expr->isFirstClassCallable()) { + return null; + } + if (count($expr->getArgs()) !== 1) { + return null; + } + return $expr->getArgs()[0]->value; + } + // null === $value or $value === null + if ($expr instanceof Identical) { + if ($this->valueResolver->isNull($expr->left)) { + return $expr->right; + } + if ($this->valueResolver->isNull($expr->right)) { + return $expr->left; + } + } + return null; + } +} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index a92b2e10dd1..5fa0b34b95e 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 = '6d4a015891d8ab74f36e4c9b6f251cc193d0f806'; + public const PACKAGE_VERSION = 'cb1fbe17927606a90e4e8cf0168d570c51573302'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-20 17:41:49'; + public const RELEASE_DATE = '2026-08-20 18:26:10'; /** * @var int */ diff --git a/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php b/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php index 38c6a494e05..59f605a14ee 100644 --- a/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php +++ b/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php @@ -51,9 +51,7 @@ public function resolveTagFullyQualifiedName(string $tag, Node $node): string $tag = ltrim($tag, '@'); $uses = $this->useImportsResolver->resolve(); $fullyQualifiedClass = $this->resolveFullyQualifiedClass($uses, $node, $tag); - if ($fullyQualifiedClass === null) { - $fullyQualifiedClass = $tag; - } + $fullyQualifiedClass ??= $tag; $this->fullyQualifiedNameByHash[$uniqueId] = $fullyQualifiedClass; return $fullyQualifiedClass; } diff --git a/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php b/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php index f3dc1416221..14ed6df4a27 100644 --- a/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php +++ b/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php @@ -210,9 +210,7 @@ private function printDocChildNode(PhpDocChildNode $phpDocChildNode, int $key = private function printEnd(string $output): string { $lastTokenPosition = $this->getCurrentPhpDocInfo()->getPhpDocNode()->getAttribute(PhpDocAttributeKey::LAST_PHP_DOC_TOKEN_POSITION); - if ($lastTokenPosition === null) { - $lastTokenPosition = $this->currentTokenPosition; - } + $lastTokenPosition ??= $this->currentTokenPosition; if ($lastTokenPosition === 0) { return $output . "\n */"; } diff --git a/src/Console/Style/SymfonyStyleFactory.php b/src/Console/Style/SymfonyStyleFactory.php index 6f70ee4f9da..23053526aa7 100644 --- a/src/Console/Style/SymfonyStyleFactory.php +++ b/src/Console/Style/SymfonyStyleFactory.php @@ -23,10 +23,7 @@ public function __construct(PrivatesAccessor $privatesAccessor) */ public function create(): \Rector\Console\Style\RectorStyle { - // to prevent missing argv indexes - if (!isset($_SERVER['argv'])) { - $_SERVER['argv'] = []; - } + $_SERVER['argv'] ??= []; $argvInput = new ArgvInput(); $consoleOutput = new ConsoleOutput(); // to configure all -v, -vv, -vvv options without memory-lock to Application run() arguments diff --git a/src/PhpParser/Printer/BetterStandardPrinter.php b/src/PhpParser/Printer/BetterStandardPrinter.php index ea26c91e8f4..57fe7ec59e7 100644 --- a/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/src/PhpParser/Printer/BetterStandardPrinter.php @@ -90,9 +90,7 @@ public function printFormatPreserving(array $stmts, array $origStmts, array $ori */ public function print($node): string { - if ($node === null) { - $node = []; - } + $node ??= []; if (!is_array($node)) { $node = [$node]; } diff --git a/src/ValueObject/ProcessResult.php b/src/ValueObject/ProcessResult.php index a0038ed2379..113fb50783e 100644 --- a/src/ValueObject/ProcessResult.php +++ b/src/ValueObject/ProcessResult.php @@ -103,9 +103,7 @@ public function getRuleApplicationCounts(): array $ruleCounts = []; foreach ($this->fileDiffs as $fileDiff) { foreach ($fileDiff->getRectorClasses() as $rectorClass) { - if (!isset($ruleCounts[$rectorClass])) { - $ruleCounts[$rectorClass] = 0; - } + $ruleCounts[$rectorClass] ??= 0; ++$ruleCounts[$rectorClass]; } } diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 1ef544b6ee7..a4cfdf8d53e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2235,6 +2235,7 @@ 'Rector\\Php74\\Rector\\FuncCall\\MbStrrposEncodingArgumentPositionRector' => $baseDir . '/rules/Php74/Rector/FuncCall/MbStrrposEncodingArgumentPositionRector.php', 'Rector\\Php74\\Rector\\FuncCall\\MoneyFormatToNumberFormatRector' => $baseDir . '/rules/Php74/Rector/FuncCall/MoneyFormatToNumberFormatRector.php', 'Rector\\Php74\\Rector\\FuncCall\\RestoreIncludePathToIniRestoreRector' => $baseDir . '/rules/Php74/Rector/FuncCall/RestoreIncludePathToIniRestoreRector.php', + 'Rector\\Php74\\Rector\\If_\\IfToNullCoalescingAssignRector' => $baseDir . '/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php', 'Rector\\Php74\\Rector\\Property\\RestoreDefaultNullToNullableTypePropertyRector' => $baseDir . '/rules/Php74/Rector/Property/RestoreDefaultNullToNullableTypePropertyRector.php', 'Rector\\Php74\\Rector\\StaticCall\\ExportToReflectionFunctionRector' => $baseDir . '/rules/Php74/Rector/StaticCall/ExportToReflectionFunctionRector.php', 'Rector\\Php74\\Rector\\Ternary\\ParenthesizeNestedTernaryRector' => $baseDir . '/rules/Php74/Rector/Ternary/ParenthesizeNestedTernaryRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index c5d323ad195..aecb5c64607 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2487,6 +2487,7 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'Rector\\Php74\\Rector\\FuncCall\\MbStrrposEncodingArgumentPositionRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/FuncCall/MbStrrposEncodingArgumentPositionRector.php', 'Rector\\Php74\\Rector\\FuncCall\\MoneyFormatToNumberFormatRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/FuncCall/MoneyFormatToNumberFormatRector.php', 'Rector\\Php74\\Rector\\FuncCall\\RestoreIncludePathToIniRestoreRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/FuncCall/RestoreIncludePathToIniRestoreRector.php', + 'Rector\\Php74\\Rector\\If_\\IfToNullCoalescingAssignRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php', 'Rector\\Php74\\Rector\\Property\\RestoreDefaultNullToNullableTypePropertyRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/Property/RestoreDefaultNullToNullableTypePropertyRector.php', 'Rector\\Php74\\Rector\\StaticCall\\ExportToReflectionFunctionRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/StaticCall/ExportToReflectionFunctionRector.php', 'Rector\\Php74\\Rector\\Ternary\\ParenthesizeNestedTernaryRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/Ternary/ParenthesizeNestedTernaryRector.php', From 52924723583ac8f8bd125eed8e5e22a186baadc4 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 20 Aug 2026 16:53:17 +0000 Subject: [PATCH 012/169] Updated Rector to commit 83496b5d65035792e7b8eea3bb083e8f3b16bec0 https://github.com/rectorphp/rector-src/commit/83496b5d65035792e7b8eea3bb083e8f3b16bec0 [TypeDeclarationDocblocks] Skip ClassMethodArrayDocblockParamFromLocalCallsRector on methods overriding parent/interface (#8357) --- ...sMethodArrayDocblockParamFromLocalCallsRector.php | 12 +++++++++++- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php index fbf6e42d28c..6eafb32aa37 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php @@ -10,6 +10,7 @@ use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\NodeManipulator\ClassMethodManipulator; use Rector\PhpParser\NodeFinder\LocalMethodCallFinder; use Rector\Rector\AbstractRector; use Rector\TypeDeclaration\NodeAnalyzer\CallTypesResolver; @@ -42,13 +43,18 @@ final class ClassMethodArrayDocblockParamFromLocalCallsRector extends AbstractRe * @readonly */ private NodeDocblockTypeDecorator $nodeDocblockTypeDecorator; - public function __construct(PhpDocInfoFactory $phpDocInfoFactory, CallTypesResolver $callTypesResolver, LocalMethodCallFinder $localMethodCallFinder, UsefulArrayTagNodeAnalyzer $usefulArrayTagNodeAnalyzer, NodeDocblockTypeDecorator $nodeDocblockTypeDecorator) + /** + * @readonly + */ + private ClassMethodManipulator $classMethodManipulator; + public function __construct(PhpDocInfoFactory $phpDocInfoFactory, CallTypesResolver $callTypesResolver, LocalMethodCallFinder $localMethodCallFinder, UsefulArrayTagNodeAnalyzer $usefulArrayTagNodeAnalyzer, NodeDocblockTypeDecorator $nodeDocblockTypeDecorator, ClassMethodManipulator $classMethodManipulator) { $this->phpDocInfoFactory = $phpDocInfoFactory; $this->callTypesResolver = $callTypesResolver; $this->localMethodCallFinder = $localMethodCallFinder; $this->usefulArrayTagNodeAnalyzer = $usefulArrayTagNodeAnalyzer; $this->nodeDocblockTypeDecorator = $nodeDocblockTypeDecorator; + $this->classMethodManipulator = $classMethodManipulator; } public function getNodeTypes(): array { @@ -97,6 +103,10 @@ public function refactor(Node $node): ?Node if ($classMethod->getParams() === []) { continue; } + // parent/interface method may declare a wider @param contract; local calls are narrower, so skip to keep LSP + if ($this->classMethodManipulator->hasParentMethodOrInterfaceMethod($node, $this->getName($classMethod))) { + continue; + } $classMethodPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod); $methodCalls = $this->localMethodCallFinder->match($node, $classMethod); $classMethodParameterTypes = $this->callTypesResolver->resolveTypesFromCalls($methodCalls); diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 5fa0b34b95e..f43c4020e4a 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 = 'cb1fbe17927606a90e4e8cf0168d570c51573302'; + public const PACKAGE_VERSION = '83496b5d65035792e7b8eea3bb083e8f3b16bec0'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-20 18:26:10'; + public const RELEASE_DATE = '2026-08-20 18:50:33'; /** * @var int */ From 408fcb0ff1833e3d26cbc9b04c23a77565814a16 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 20 Aug 2026 17:08:45 +0000 Subject: [PATCH 013/169] Updated Rector to commit 83496b5d65035792e7b8eea3bb083e8f3b16bec0 --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../extension-installer/src/GeneratedConfig.php | 2 +- .../ContainerGetNameToTypeInTestsRector.php | 16 ++++++++++++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 9f7a5727f35..0f8fed173fc 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "79c9c0a0f2a5e465220e588045530109e5119456" + "reference": "9e1e11a62fd3840c5011dc062af8356e2d225c68" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/79c9c0a0f2a5e465220e588045530109e5119456", - "reference": "79c9c0a0f2a5e465220e588045530109e5119456", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/9e1e11a62fd3840c5011dc062af8356e2d225c68", + "reference": "9e1e11a62fd3840c5011dc062af8356e2d225c68", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-20T15:47:18+00:00", + "time": "2026-08-20T17:05:15+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 227d8043199..63434cb030a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '79c9c0a0f2a5e465220e588045530109e5119456', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 050f9fbcc1c..fe7aa47ba4b 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 79c9c0a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/rules/Symfony34/Rector/Closure/ContainerGetNameToTypeInTestsRector.php b/vendor/rector/rector-symfony/rules/Symfony34/Rector/Closure/ContainerGetNameToTypeInTestsRector.php index c46d9e671c4..9167deb0627 100644 --- a/vendor/rector/rector-symfony/rules/Symfony34/Rector/Closure/ContainerGetNameToTypeInTestsRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony34/Rector/Closure/ContainerGetNameToTypeInTestsRector.php @@ -12,6 +12,7 @@ use PHPStan\Type\ObjectType; use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; use Rector\Rector\AbstractRector; +use Rector\Symfony\DataProvider\ServiceMapProvider; use Rector\Symfony\NodeAnalyzer\ServiceTypeMethodCallResolver; use Rector\VersionBonding\Contract\ComposerPackageConstraintInterface; use Rector\VersionBonding\ValueObject\ComposerPackageConstraint; @@ -30,10 +31,15 @@ final class ContainerGetNameToTypeInTestsRector extends AbstractRector implement * @readonly */ private ServiceTypeMethodCallResolver $serviceTypeMethodCallResolver; - public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, ServiceTypeMethodCallResolver $serviceTypeMethodCallResolver) + /** + * @readonly + */ + private ServiceMapProvider $serviceMapProvider; + public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, ServiceTypeMethodCallResolver $serviceTypeMethodCallResolver, ServiceMapProvider $serviceMapProvider) { $this->testsNodeAnalyzer = $testsNodeAnalyzer; $this->serviceTypeMethodCallResolver = $serviceTypeMethodCallResolver; + $this->serviceMapProvider = $serviceMapProvider; } public function provideComposerPackageConstraint(): ComposerPackageConstraint { @@ -97,7 +103,13 @@ public function refactor(Node $node): ?Node if (!$serviceType instanceof ObjectType) { return null; } - $classConstFetch = new ClassConstFetch(new FullyQualified($serviceType->getClassName()), 'class'); + // only replace when the resolved class is itself a registered service id (real service or alias), + // otherwise the named service maps to a class that has no matching FQCN service and the call breaks + $className = $serviceType->getClassName(); + if (!$this->serviceMapProvider->provide()->hasService($className)) { + return null; + } + $classConstFetch = new ClassConstFetch(new FullyQualified($className), 'class'); $node->args[0] = new Arg($classConstFetch); return $node; } From d28e903cbaa9474676e37c594562e5690e8357f7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 21 Aug 2026 07:07:16 +0000 Subject: [PATCH 014/169] Updated Rector to commit 83496b5d65035792e7b8eea3bb083e8f3b16bec0 --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 0f8fed173fc..d725e7dd988 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1728,12 +1728,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "cb28899b35276189a1f9271648f3b6e9fb0bf0bf" + "reference": "ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/cb28899b35276189a1f9271648f3b6e9fb0bf0bf", - "reference": "cb28899b35276189a1f9271648f3b6e9fb0bf0bf", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472", + "reference": "ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472", "shasum": "" }, "require": { @@ -1758,7 +1758,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-19T21:45:59+00:00", + "time": "2026-08-21T07:04:14+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 63434cb030a..672c89259e1 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cb28899b35276189a1f9271648f3b6e9fb0bf0bf', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 fe7aa47ba4b..d03193f1472 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main cb28899'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main ba3bc9c'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); private function __construct() { } From 29ac8eb5d206c9d62486c9e8ff018b27f94f34ce Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 21 Aug 2026 07:15:38 +0000 Subject: [PATCH 015/169] Updated Rector to commit 83496b5d65035792e7b8eea3bb083e8f3b16bec0 --- vendor/composer/installed.json | 21 +++++++++---------- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- vendor/rector/rector-doctrine/composer.json | 13 ++++++------ 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index d725e7dd988..d008cdb3c36 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1728,37 +1728,36 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472" + "reference": "1d83468bac420bd04da021df1e96d3486b89e72d" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472", - "reference": "ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/1d83468bac420bd04da021df1e96d3486b89e72d", + "reference": "1d83468bac420bd04da021df1e96d3486b89e72d", "shasum": "" }, "require": { "php": ">=8.4" }, "require-dev": { - "doctrine\/doctrine-bundle": "^2.18|^3.0", - "doctrine\/orm": "^2.20|^3.0", - "phpecs\/phpecs": "^2.3", + "doctrine\/doctrine-bundle": "^3.0", + "doctrine\/orm": "^3.0", "phpstan\/extension-installer": "^1.4", "phpstan\/phpstan": "^2.2", "phpstan\/phpstan-deprecation-rules": "^2.0", "phpstan\/phpstan-webmozart-assert": "^2.0", - "phpunit\/phpunit": "^13.2", - "rector\/jack": "^1.0", + "phpunit\/phpunit": "^13.3", + "rector\/jack": "^1.1", "rector\/rector-src": "dev-main", "rector\/swiss-knife": "^2.4", - "symplify\/phpstan-extensions": "^12.0", + "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-rules": "^14.12", "symplify\/vendor-patches": "^11.5", - "tomasvotruba\/class-leak": "^2.1", + "tomasvotruba\/class-leak": "^2.1.8", "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-21T07:04:14+00:00", + "time": "2026-08-21T07:12:20+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 672c89259e1..8676731df89 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'ba3bc9cd85fa790bd890cfed44b6b5ecd6f9c472', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1d83468bac420bd04da021df1e96d3486b89e72d', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 d03193f1472..0857bc31425 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main ba3bc9c'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1d83468'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/composer.json b/vendor/rector/rector-doctrine/composer.json index 24732f6bac3..a668d473b61 100644 --- a/vendor/rector/rector-doctrine/composer.json +++ b/vendor/rector/rector-doctrine/composer.json @@ -7,21 +7,20 @@ "php": ">=8.4" }, "require-dev": { - "doctrine\/doctrine-bundle": "^2.18|^3.0", - "doctrine\/orm": "^2.20|^3.0", - "phpecs\/phpecs": "^2.3", + "doctrine\/doctrine-bundle": "^3.0", + "doctrine\/orm": "^3.0", + "symplify\/easy-coding-standard": "^13.2", "phpstan\/extension-installer": "^1.4", "phpstan\/phpstan": "^2.2", "phpstan\/phpstan-deprecation-rules": "^2.0", "phpstan\/phpstan-webmozart-assert": "^2.0", - "phpunit\/phpunit": "^13.2", - "rector\/jack": "^1.0", + "phpunit\/phpunit": "^13.3", + "rector\/jack": "^1.1", "rector\/rector-src": "dev-main", "rector\/swiss-knife": "^2.4", - "symplify\/phpstan-extensions": "^12.0", "symplify\/phpstan-rules": "^14.12", "symplify\/vendor-patches": "^11.5", - "tomasvotruba\/class-leak": "^2.1", + "tomasvotruba\/class-leak": "^2.1.8", "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, From 0f7f4bbc078e26d3e3caabb2e5bcc28e8a081837 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 22 Aug 2026 10:40:54 +0000 Subject: [PATCH 016/169] Updated Rector to commit 60ee400d4369988efd9abffe7fe4fac08b02e889 https://github.com/rectorphp/rector-src/commit/60ee400d4369988efd9abffe7fe4fac08b02e889 [Composer] Target lowest declared version for libraries in composer-based sets (#8359) --- src/Application/VersionResolver.php | 4 ++-- src/Composer/InstalledPackageResolver.php | 22 +++++++++++++++++++--- vendor/composer/installed.php | 2 +- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f43c4020e4a..6dd9ff9d131 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 = '83496b5d65035792e7b8eea3bb083e8f3b16bec0'; + public const PACKAGE_VERSION = '60ee400d4369988efd9abffe7fe4fac08b02e889'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-20 18:50:33'; + public const RELEASE_DATE = '2026-08-22 12:38:41'; /** * @var int */ diff --git a/src/Composer/InstalledPackageResolver.php b/src/Composer/InstalledPackageResolver.php index 24c53484c31..8a3c8b6c7c3 100644 --- a/src/Composer/InstalledPackageResolver.php +++ b/src/Composer/InstalledPackageResolver.php @@ -95,20 +95,36 @@ public function resolvePackageVersion(string $packageName): ?string private function createInstalledPackages(array $packages): array { $packageConstraints = $this->resolvePackageConstraints(); + $isLibrary = $this->isLibrary(); $installedPackages = []; foreach ($packages as $package) { $name = $package['name']; $version = $package['version_normalized']; $constraint = $packageConstraints[$name] ?? null; if (is_string($constraint)) { - // the "installed.json" can be outdated, e.g. after a branch switch; - // in such case the "composer.json" constraint has a priority - $version = $this->matchConstraintVersion($version, $constraint) ?? $version; + if ($isLibrary) { + // a library must stay compatible with the lowest version it declares, + // regardless of which one happens to be installed locally + $version = $this->resolveConstraintLowestVersion($constraint) ?? $version; + } else { + // the "installed.json" can be outdated, e.g. after a branch switch; + // in such case the "composer.json" constraint has a priority + $version = $this->matchConstraintVersion($version, $constraint) ?? $version; + } } $installedPackages[$name] = new InstalledPackage($name, $version); } return $installedPackages; } + /** + * A library declares a compatibility range in its "composer.json"; the version-specific rules must target the + * lowest declared version, not the one that happens to be installed locally. + */ + private function isLibrary(): bool + { + $projectComposerJson = $this->loadProjectComposerJson(); + return ($projectComposerJson['type'] ?? null) === 'library'; + } /** * There is no vendor to read the installed versions from, so the constraints themselves are the only source * diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 8676731df89..c4d15019540 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.8.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1d83468bac420bd04da021df1e96d3486b89e72d', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1d83468bac420bd04da021df1e96d3486b89e72d', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); From e50447b7ccc214168ee99bf501e1b0d1c57b1c31 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 22 Aug 2026 11:05:16 +0000 Subject: [PATCH 017/169] Updated Rector to commit a9c7644f2c284f50e38d3cb7ee4e0e0a82a58713 https://github.com/rectorphp/rector-src/commit/a9c7644f2c284f50e38d3cb7ee4e0e0a82a58713 [Configuration] Skip deprecated rules from active set, warn only instead of crashing (#8358) --- src/Application/VersionResolver.php | 4 ++-- src/Configuration/ConfigurationRuleFilter.php | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 6dd9ff9d131..2dc49a0642d 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 = '60ee400d4369988efd9abffe7fe4fac08b02e889'; + public const PACKAGE_VERSION = 'a9c7644f2c284f50e38d3cb7ee4e0e0a82a58713'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-22 12:38:41'; + public const RELEASE_DATE = '2026-08-22 11:02:48'; /** * @var int */ diff --git a/src/Configuration/ConfigurationRuleFilter.php b/src/Configuration/ConfigurationRuleFilter.php index f3d0c8cda67..8d471a4039a 100644 --- a/src/Configuration/ConfigurationRuleFilter.php +++ b/src/Configuration/ConfigurationRuleFilter.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Configuration; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Contract\Rector\RectorInterface; use Rector\ValueObject\Configuration; @@ -26,6 +27,9 @@ public function setConfiguration(Configuration $configuration): void */ public function filter(array $rectors): array { + // deprecated rules only warn via DeprecatedRulesReporter; they must never run, as their + // refactor() throws to signal the deprecation - keep them out of the active set + $rectors = array_values(array_filter($rectors, static fn(RectorInterface $rector): bool => !$rector instanceof DeprecatedInterface)); if (!$this->configuration instanceof Configuration) { return $rectors; } From 60888c412cebcd9d30776fccf023dbb172b1aa1d Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 22 Aug 2026 11:13:10 +0000 Subject: [PATCH 018/169] Updated Rector to commit 9a5dde6631d66514ece7df5efb83448cf79c158f https://github.com/rectorphp/rector-src/commit/9a5dde6631d66514ece7df5efb83448cf79c158f [Testing] Isolate ApplicationFileProcessorTest cache dir to fix parallel flake (#8360) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 2dc49a0642d..4e77d88dc48 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 = 'a9c7644f2c284f50e38d3cb7ee4e0e0a82a58713'; + public const PACKAGE_VERSION = '9a5dde6631d66514ece7df5efb83448cf79c158f'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-22 11:02:48'; + public const RELEASE_DATE = '2026-08-22 13:10:27'; /** * @var int */ From f92750937f4744876ad0cfd5a1ef9d7010b50020 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 22 Aug 2026 18:27:30 +0000 Subject: [PATCH 019/169] Updated Rector to commit 9a5dde6631d66514ece7df5efb83448cf79c158f --- vendor/composer/installed.json | 64 +++++++++--------- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- vendor/symfony/console/Application.php | 4 +- vendor/symfony/console/Color.php | 4 +- vendor/symfony/console/Command/Command.php | 10 +-- .../console/Descriptor/MarkdownDescriptor.php | 2 +- .../console/Formatter/OutputFormatter.php | 2 +- .../symfony/console/Helper/ProcessHelper.php | 6 +- .../symfony/console/Helper/QuestionHelper.php | 10 +++ vendor/symfony/console/Helper/Table.php | 10 ++- vendor/symfony/console/Input/ArgvInput.php | 6 +- vendor/symfony/console/Input/Input.php | 2 +- .../symfony/console/Input/InputDefinition.php | 2 +- .../Messenger/RunCommandMessageHandler.php | 3 + .../symfony/console/Output/ConsoleOutput.php | 4 +- .../console/Output/ConsoleSectionOutput.php | 5 +- vendor/symfony/filesystem/Filesystem.php | 6 +- vendor/symfony/filesystem/Path.php | 2 +- .../Iterator/FileTypeFilterIterator.php | 2 +- .../Iterator/VcsIgnoredFilterIterator.php | 65 ++++++++++++------- .../symfony/process/Pipes/AbstractPipes.php | 13 +++- vendor/symfony/process/Process.php | 3 - 23 files changed, 138 insertions(+), 91 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index d008cdb3c36..085af94a6ac 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1728,12 +1728,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "1d83468bac420bd04da021df1e96d3486b89e72d" + "reference": "6b8e03db69a15474566bd4aad90cf58c6ef0f4f5" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/1d83468bac420bd04da021df1e96d3486b89e72d", - "reference": "1d83468bac420bd04da021df1e96d3486b89e72d", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/6b8e03db69a15474566bd4aad90cf58c6ef0f4f5", + "reference": "6b8e03db69a15474566bd4aad90cf58c6ef0f4f5", "shasum": "" }, "require": { @@ -1757,7 +1757,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-21T07:12:20+00:00", + "time": "2026-08-22T18:24:38+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -2062,17 +2062,17 @@ }, { "name": "symfony\/console", - "version": "v6.4.43", - "version_normalized": "6.4.43.0", + "version": "v6.4.44", + "version_normalized": "6.4.44.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/console.git", - "reference": "3b643aa587acbc42f967a429af088a56ed8f046d" + "reference": "60e3944c4859c487aa6ea2f0f7754917f70f7524" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/3b643aa587acbc42f967a429af088a56ed8f046d", - "reference": "3b643aa587acbc42f967a429af088a56ed8f046d", + "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/60e3944c4859c487aa6ea2f0f7754917f70f7524", + "reference": "60e3944c4859c487aa6ea2f0f7754917f70f7524", "shasum": "" }, "require": { @@ -2105,7 +2105,7 @@ "symfony\/stopwatch": "^5.4|^6.0|^7.0", "symfony\/var-dumper": "^5.4|^6.0|^7.0" }, - "time": "2026-07-26T14:44:19+00:00", + "time": "2026-08-21T07:42:12+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2139,7 +2139,7 @@ "terminal" ], "support": { - "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.43" + "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.44" }, "funding": [ { @@ -2237,17 +2237,17 @@ }, { "name": "symfony\/filesystem", - "version": "v8.1.2", - "version_normalized": "8.1.2.0", + "version": "v8.1.5", + "version_normalized": "8.1.5.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/filesystem.git", - "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217" + "reference": "6b2f4a0eeb28b5d74f90862592923a654bc629b3" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/17856b7a222664a26a5ea1cb06ee0721c2438217", - "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217", + "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/6b2f4a0eeb28b5d74f90862592923a654bc629b3", + "reference": "6b2f4a0eeb28b5d74f90862592923a654bc629b3", "shasum": "" }, "require": { @@ -2259,7 +2259,7 @@ "require-dev": { "symfony\/process": "^7.4|^8.0" }, - "time": "2026-07-22T15:42:13+00:00", + "time": "2026-08-21T12:16:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2287,7 +2287,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v8.1.2" + "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v8.1.5" }, "funding": [ { @@ -2311,17 +2311,17 @@ }, { "name": "symfony\/finder", - "version": "v8.1.1", - "version_normalized": "8.1.1.0", + "version": "v8.1.5", + "version_normalized": "8.1.5.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/finder.git", - "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531" + "reference": "8d7acede2b2ae07605783d1c43e49b5767036474" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/finder\/zipball\/e2989e762c70f9490fa3a00a0ac0fae5aa97a531", - "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531", + "url": "https:\/\/api.github.com\/repos\/symfony\/finder\/zipball\/8d7acede2b2ae07605783d1c43e49b5767036474", + "reference": "8d7acede2b2ae07605783d1c43e49b5767036474", "shasum": "" }, "require": { @@ -2330,7 +2330,7 @@ "require-dev": { "symfony\/filesystem": "^7.4|^8.0" }, - "time": "2026-06-27T09:05:56+00:00", + "time": "2026-08-21T12:16:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2358,7 +2358,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/finder\/tree\/v8.1.1" + "source": "https:\/\/github.com\/symfony\/finder\/tree\/v8.1.5" }, "funding": [ { @@ -2633,23 +2633,23 @@ }, { "name": "symfony\/process", - "version": "v8.1.0", - "version_normalized": "8.1.0.0", + "version": "v8.1.5", + "version_normalized": "8.1.5.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/process.git", - "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5" + "reference": "d863f5e70d7c87abb906ac11b61f83036093000b" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", - "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", + "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/d863f5e70d7c87abb906ac11b61f83036093000b", + "reference": "d863f5e70d7c87abb906ac11b61f83036093000b", "shasum": "" }, "require": { "php": ">=8.4.1" }, - "time": "2026-05-29T05:06:50+00:00", + "time": "2026-08-21T17:47:34+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2677,7 +2677,7 @@ "description": "Executes commands in sub-processes", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/process\/tree\/v8.1.0" + "source": "https:\/\/github.com\/symfony\/process\/tree\/v8.1.5" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index c4d15019540..036613f8119 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1d83468bac420bd04da021df1e96d3486b89e72d', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.43', 'version' => '6.4.43.0', 'reference' => '3b643aa587acbc42f967a429af088a56ed8f046d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.2', 'version' => '8.1.2.0', 'reference' => '17856b7a222664a26a5ea1cb06ee0721c2438217', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.1', 'version' => '8.1.1.0', 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.0', 'version' => '8.1.0.0', 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6b8e03db69a15474566bd4aad90cf58c6ef0f4f5', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 0857bc31425..5683df069da 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1d83468'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 6b8e03d'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); private function __construct() { } diff --git a/vendor/symfony/console/Application.php b/vendor/symfony/console/Application.php index cd8f6210dfc..5ce2f6fd150 100644 --- a/vendor/symfony/console/Application.php +++ b/vendor/symfony/console/Application.php @@ -218,7 +218,7 @@ public function doRun(InputInterface $input, OutputInterface $output) // Errors must be ignored, full binding/validation happens later when the command is known. } $name = $this->getCommandName($input); - if (\true === $input->hasParameterOption(['--help', '-h'], \true)) { + if ($input->hasParameterOption(['--help', '-h'], \true)) { if (!$name) { $name = 'help'; $input = new ArrayInput(['command_name' => $this->defaultCommand]); @@ -1099,7 +1099,7 @@ private function extractAllNamespaces(string $name): array $parts = explode(':', $name, -1); $namespaces = []; foreach ($parts as $part) { - if (\count($namespaces)) { + if ($namespaces) { $namespaces[] = end($namespaces) . ':' . $part; } else { $namespaces[] = $part; diff --git a/vendor/symfony/console/Color.php b/vendor/symfony/console/Color.php index 3997483e6b0..9dbfeae784b 100644 --- a/vendor/symfony/console/Color.php +++ b/vendor/symfony/console/Color.php @@ -49,7 +49,7 @@ public function set(): string foreach ($this->options as $option) { $setCodes[] = $option['set']; } - if (0 === \count($setCodes)) { + if (!$setCodes) { return ''; } return \sprintf("\x1b[%sm", implode(';', $setCodes)); @@ -66,7 +66,7 @@ public function unset(): string foreach ($this->options as $option) { $unsetCodes[] = $option['unset']; } - if (0 === \count($unsetCodes)) { + if (!$unsetCodes) { return ''; } return \sprintf("\x1b[%sm", implode(';', $unsetCodes)); diff --git a/vendor/symfony/console/Command/Command.php b/vendor/symfony/console/Command/Command.php index f4784f8fc40..d2c9a70bd6f 100644 --- a/vendor/symfony/console/Command/Command.php +++ b/vendor/symfony/console/Command/Command.php @@ -405,8 +405,8 @@ public function getNativeDefinition(): InputDefinition /** * Adds an argument. * - * @param $mode The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL - * @param $default The default value (for InputArgument::OPTIONAL mode only) + * @param $mode The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL + * @param $default The default value (for InputArgument::OPTIONAL mode only) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @return $this @@ -427,9 +427,9 @@ public function addArgument(string $name, ?int $mode = null, string $description /** * Adds an option. * - * @param $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts - * @param $mode The option mode: One of the InputOption::VALUE_* constants - * @param $default The default value (must be null for InputOption::VALUE_NONE) + * @param $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts + * @param $mode The option mode: One of the InputOption::VALUE_* constants + * @param $default The default value (must be null for InputOption::VALUE_NONE) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @return $this diff --git a/vendor/symfony/console/Descriptor/MarkdownDescriptor.php b/vendor/symfony/console/Descriptor/MarkdownDescriptor.php index 204a538bf62..5aaae99da62 100644 --- a/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +++ b/vendor/symfony/console/Descriptor/MarkdownDescriptor.php @@ -54,7 +54,7 @@ protected function describeInputOption(InputOption $option, array $options = []) } protected function describeInputDefinition(InputDefinition $definition, array $options = []): void { - if ($showArguments = \count($definition->getArguments()) > 0) { + if ($showArguments = $definition->getArguments()) { $this->write('### Arguments'); foreach ($definition->getArguments() as $argument) { $this->write("\n\n"); diff --git a/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/symfony/console/Formatter/OutputFormatter.php index 366f6f9904d..baed6eb20fd 100644 --- a/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/symfony/console/Formatter/OutputFormatter.php @@ -36,7 +36,7 @@ public function __clone() */ public static function escape(string $text): string { - $text = preg_replace('/([^\\\\]|^)([<>])/', '$1\\\\$2', $text); + $text = str_replace(['<', '>'], ['\<', '\>'], $text); return self::escapeTrailingBackslash($text); } /** diff --git a/vendor/symfony/console/Helper/ProcessHelper.php b/vendor/symfony/console/Helper/ProcessHelper.php index e651d6dbf2b..555d76caaa2 100644 --- a/vendor/symfony/console/Helper/ProcessHelper.php +++ b/vendor/symfony/console/Helper/ProcessHelper.php @@ -52,7 +52,7 @@ public function run(OutputInterface $output, $cmd, ?string $error = null, ?calla throw new \InvalidArgumentException(\sprintf('Invalid command provided to "%s()": the command should be an array whose first element is either the path to the binary to run or a "Process" object.', __METHOD__)); } if ($verbosity <= $output->getVerbosity()) { - $output->write($formatter->start(spl_object_hash($process), $this->escapeString($process->getCommandLine()))); + $output->write($formatter->start(spl_object_id($process), $this->escapeString($process->getCommandLine()))); } if ($output->isDebug()) { $callback = $this->wrapCallback($output, $process, $callback); @@ -60,7 +60,7 @@ public function run(OutputInterface $output, $cmd, ?string $error = null, ?calla $process->run($callback, $cmd); if ($verbosity <= $output->getVerbosity()) { $message = $process->isSuccessful() ? 'Command ran successfully' : \sprintf('%s Command did not run successfully', $process->getExitCode()); - $output->write($formatter->stop(spl_object_hash($process), $message, $process->isSuccessful())); + $output->write($formatter->stop(spl_object_id($process), $message, $process->isSuccessful())); } if (!$process->isSuccessful() && null !== $error) { $output->writeln(\sprintf('%s', $this->escapeString($error))); @@ -99,7 +99,7 @@ public function wrapCallback(OutputInterface $output, Process $process, ?callabl } $formatter = $this->getHelperSet()->get('debug_formatter'); return function ($type, $buffer) use ($output, $process, $callback, $formatter) { - $output->write($formatter->progress(spl_object_hash($process), $this->escapeString($buffer), Process::ERR === $type)); + $output->write($formatter->progress(spl_object_id($process), $this->escapeString($buffer), Process::ERR === $type)); if (null !== $callback) { $callback($type, $buffer); } diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index 85f23e59a63..6339908232b 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -248,6 +248,16 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu } elseif ("\x1b" === $c) { // Did we read an escape sequence? $c .= fread($inputStream, 2); + // A CSI sequence ends with a byte in the 0x40-0x7E range, preceded by any number of + // parameter and intermediate bytes; consume them all so that none leaks into the answer + if ('[' === ($c[1] ?? '')) { + while (($o = \ord($c[\strlen($c) - 1])) >= 0x20 && $o <= 0x3f) { + if (!$next = fread($inputStream, 1)) { + break; + } + $c .= $next; + } + } // A = Up Arrow. B = Down Arrow if (isset($c[2]) && ('A' === $c[2] || 'B' === $c[2])) { if ('A' === $c[2] && -1 === $ofs) { diff --git a/vendor/symfony/console/Helper/Table.php b/vendor/symfony/console/Helper/Table.php index 447f2505a6e..04767ef5ad0 100644 --- a/vendor/symfony/console/Helper/Table.php +++ b/vendor/symfony/console/Helper/Table.php @@ -46,6 +46,7 @@ class Table private TableStyle $style; private array $columnStyles = []; private array $columnWidths = []; + private array $configuredColumnWidths = []; private array $columnMaxWidths = []; private bool $rendered = \false; private string $displayOrientation = self::DISPLAY_ORIENTATION_DEFAULT; @@ -124,6 +125,7 @@ public function getColumnStyle(int $columnIndex): TableStyle public function setColumnWidth(int $columnIndex, int $width) { $this->columnWidths[$columnIndex] = $width; + $this->configuredColumnWidths[$columnIndex] = $width; return $this; } /** @@ -134,6 +136,7 @@ public function setColumnWidth(int $columnIndex, int $width) public function setColumnWidths(array $widths) { $this->columnWidths = []; + $this->configuredColumnWidths = []; foreach ($widths as $index => $width) { $this->setColumnWidth($index, $width); } @@ -585,13 +588,18 @@ private function buildTableRows(array $rows): TableRows $this->columnWidths[$item['column']] = $minWidthColumn; $columnsMinWidthProcessed[$item['column']] = \true; $cellWidth -= $minWidthColumn + $lengthColumnBorder; + } elseif ('min' === $item['type'] && ($this->configuredColumnWidths[$item['column']] ?? 0) > 0) { + // this column already covers part of the cell, so share only the rest + $columnsMinWidthProcessed[$item['column']] = \true; + $cellWidth -= $this->configuredColumnWidths[$item['column']] + $lengthColumnBorder; } } for ($i = $column; $i < $column + $colspan; ++$i) { if (isset($columnsMinWidthProcessed[$i])) { continue; } - $this->columnWidths[$i] = $cellWidth + $lengthColumnBorder; + // a width set through setColumnWidth() is a minimum, unlike one computed for an earlier row + $this->columnWidths[$i] = max($this->configuredColumnWidths[$i] ?? 0, $cellWidth + $lengthColumnBorder); } } if (strpos($cell ?? '', "\n") === \false) { diff --git a/vendor/symfony/console/Input/ArgvInput.php b/vendor/symfony/console/Input/ArgvInput.php index d9ade87b3c6..fe70e4fe5c5 100644 --- a/vendor/symfony/console/Input/ArgvInput.php +++ b/vendor/symfony/console/Input/ArgvInput.php @@ -158,7 +158,7 @@ private function parseArgument(string $token): void $symfonyCommandName = $this->arguments['command'] ?? null; unset($all[$key]); } - if (\count($all)) { + if ($all) { if ($symfonyCommandName) { $message = \sprintf('Too many arguments to "%s" command, expected arguments "%s".', $symfonyCommandName, implode('" "', array_keys($all))); } else { @@ -208,7 +208,7 @@ private function addLongOption(string $name, $value): void if (null !== $value && !$option->acceptValue()) { throw new RuntimeException(\sprintf('The "--%s" option does not accept a value.', $name)); } - if (\in_array($value, ['', null], \true) && $option->acceptValue() && \count($this->parsed)) { + if (\in_array($value, ['', null], \true) && $option->acceptValue() && $this->parsed) { // if option accepts an optional or mandatory argument // let's see if there is one provided $next = array_shift($this->parsed); @@ -289,7 +289,7 @@ public function getParameterOption($values, $default = \false, bool $onlyParams { $values = (array) $values; $tokens = $this->tokens; - while (0 < \count($tokens)) { + while ($tokens) { $token = array_shift($tokens); if ($onlyParams && '--' === $token) { return $default; diff --git a/vendor/symfony/console/Input/Input.php b/vendor/symfony/console/Input/Input.php index 73a3d4cfd04..33250c11c50 100644 --- a/vendor/symfony/console/Input/Input.php +++ b/vendor/symfony/console/Input/Input.php @@ -64,7 +64,7 @@ public function validate() $definition = $this->definition; $givenArguments = $this->arguments; $missingArguments = array_filter(array_keys($definition->getArguments()), static fn($argument) => !\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired()); - if (\count($missingArguments) > 0) { + if ($missingArguments) { throw new RuntimeException(\sprintf('Not enough arguments (missing: "%s").', implode(', ', $missingArguments))); } } diff --git a/vendor/symfony/console/Input/InputDefinition.php b/vendor/symfony/console/Input/InputDefinition.php index 74275902bd9..acb253eab98 100644 --- a/vendor/symfony/console/Input/InputDefinition.php +++ b/vendor/symfony/console/Input/InputDefinition.php @@ -343,7 +343,7 @@ public function getSynopsis(bool $short = \false): string $elements[] = \sprintf('[%s--%s%s%s]', $shortcut, $option->getName(), $value, $negation); } } - if (\count($elements) && $this->getArguments()) { + if ($elements && $this->getArguments()) { $elements[] = '[--]'; } $tail = ''; diff --git a/vendor/symfony/console/Messenger/RunCommandMessageHandler.php b/vendor/symfony/console/Messenger/RunCommandMessageHandler.php index b0b61a899df..0749bb06b01 100644 --- a/vendor/symfony/console/Messenger/RunCommandMessageHandler.php +++ b/vendor/symfony/console/Messenger/RunCommandMessageHandler.php @@ -34,6 +34,7 @@ public function __invoke(RunCommandMessage $message): RunCommandContext { $input = new StringInput($message->input); $output = new BufferedOutput(); + $originalCatchExceptions = $this->application->areExceptionsCaught(); $this->application->setCatchExceptions($message->catchExceptions); try { $exitCode = $this->application->run($input, $output); @@ -41,6 +42,8 @@ public function __invoke(RunCommandMessage $message): RunCommandContext throw $e; } catch (\Throwable $e) { throw new RunCommandFailedException($e, new RunCommandContext($message, Command::FAILURE, $output->fetch())); + } finally { + $this->application->setCatchExceptions($originalCatchExceptions); } if ($message->throwOnFailure && Command::SUCCESS !== $exitCode) { throw new RunCommandFailedException(\sprintf('Command "%s" exited with code "%s".', $message->input, $exitCode), new RunCommandContext($message, $exitCode, $output->fetch())); diff --git a/vendor/symfony/console/Output/ConsoleOutput.php b/vendor/symfony/console/Output/ConsoleOutput.php index 6eae6139099..6a52438709e 100644 --- a/vendor/symfony/console/Output/ConsoleOutput.php +++ b/vendor/symfony/console/Output/ConsoleOutput.php @@ -89,7 +89,7 @@ public function setErrorOutput(OutputInterface $error) */ protected function hasStdoutSupport(): bool { - return \false === $this->isRunningOS400(); + return !$this->isRunningOS400(); } /** * Returns true if current environment supports writing console output to @@ -97,7 +97,7 @@ protected function hasStdoutSupport(): bool */ protected function hasStderrSupport(): bool { - return \false === $this->isRunningOS400(); + return !$this->isRunningOS400(); } /** * Checks if current executing environment is IBM iSeries (OS400), which diff --git a/vendor/symfony/console/Output/ConsoleSectionOutput.php b/vendor/symfony/console/Output/ConsoleSectionOutput.php index 704508a25ac..363f38fe27d 100644 --- a/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -68,7 +68,10 @@ public function clear(?int $lines = null) $lines = $this->lines; $this->content = []; } - $this->lines -= $lines; + // callers may ask to clear more lines than this section tracks (e.g. ProgressBar + // counts "\n"-separated lines while addContent() splits on PHP_EOL), so keep the + // counter from going negative, which would break the max-height bookkeeping + $this->lines = max(0, $this->lines - $lines); parent::doWrite($this->popStreamContentUntilCurrentSection($this->maxHeight ? min($this->maxHeight, $lines) : $lines), \false); } /** diff --git a/vendor/symfony/filesystem/Filesystem.php b/vendor/symfony/filesystem/Filesystem.php index 1229fe19f0a..3cdd9e372ab 100644 --- a/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/symfony/filesystem/Filesystem.php @@ -469,11 +469,7 @@ public function mirror(string $originDir, string $targetDir, ?\Traversable $iter } // Iterate in destination folder to remove obsolete entries if ($this->exists($targetDir) && isset($options['delete']) && $options['delete']) { - $deleteIterator = $iterator; - if (null === $deleteIterator) { - $flags = \FilesystemIterator::SKIP_DOTS; - $deleteIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($targetDir, $flags), \RecursiveIteratorIterator::CHILD_FIRST); - } + $deleteIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($targetDir, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST); $targetDirLen = \strlen($targetDir); foreach ($deleteIterator as $file) { $origin = $originDir . substr($file->getPathname(), $targetDirLen); diff --git a/vendor/symfony/filesystem/Path.php b/vendor/symfony/filesystem/Path.php index feb64ed469f..52f25159fa3 100644 --- a/vendor/symfony/filesystem/Path.php +++ b/vendor/symfony/filesystem/Path.php @@ -643,7 +643,7 @@ private static function findCanonicalParts(string $root, string $pathWithoutRoot } // Collapse ".." with the previous part, if one exists // Don't collapse ".." if the previous part is also ".." - if ('..' === $part && \count($canonicalParts) > 0 && '..' !== $canonicalParts[\count($canonicalParts) - 1]) { + if ('..' === $part && $canonicalParts && '..' !== $canonicalParts[\count($canonicalParts) - 1]) { array_pop($canonicalParts); continue; } diff --git a/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php index 967f3a836c4..b8c273a104b 100644 --- a/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +++ b/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php @@ -45,6 +45,6 @@ public function accept(): bool } elseif (self::ONLY_FILES === (self::ONLY_FILES & $this->mode) && $fileinfo->isDir()) { return \false; } - return \true; + return !$fileinfo->isLink() || $fileinfo->isFile() || $fileinfo->isDir(); } } diff --git a/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php b/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php index 01f5019d9f0..b58a11dfa29 100644 --- a/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php +++ b/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php @@ -18,7 +18,7 @@ final class VcsIgnoredFilterIterator extends \FilterIterator { private string $baseDir; /** - * @var array + * @var array|null> */ private array $gitignoreFilesCache = []; /** @@ -47,29 +47,32 @@ public function accept(): bool } private function isIgnored(string $fileRealPath): bool { - if (is_dir($fileRealPath) && substr_compare($fileRealPath, '/', -strlen('/')) !== 0) { - $fileRealPath .= '/'; - } if (isset($this->ignoredPathsCache[$fileRealPath])) { return $this->ignoredPathsCache[$fileRealPath]; } $ignored = \false; - foreach ($this->parentDirectoriesDownwards($fileRealPath) as $parentDirectory) { - if ($this->isIgnored($parentDirectory)) { - // rules in ignored directories are ignored, no need to check further. - break; - } - $fileRelativePath = (string) substr($fileRealPath, \strlen($parentDirectory) + 1); - if (null === $regexps = $this->readGitignoreFile("{$parentDirectory}/.gitignore")) { - continue; - } - [$exclusionRegex, $inclusionRegex] = $regexps; - if (preg_match($exclusionRegex, $fileRelativePath)) { - $ignored = \true; - continue; - } - if (preg_match($inclusionRegex, $fileRelativePath)) { - $ignored = \false; + $parentDirectories = $this->parentDirectoriesDownwards($fileRealPath); + if ($parentDirectories && $this->baseDir !== $parentDirectory = $parentDirectories[\count($parentDirectories) - 1]) { + // paths inside an ignored directory are ignored and cannot be re-included + $ignored = $this->isIgnored($parentDirectory); + } + if (!$ignored) { + $isDir = is_dir($fileRealPath); + // the last matching rule of the deepest .gitignore file decides + foreach (array_reverse($parentDirectories) as $parentDirectory) { + if (null === $rules = $this->readGitignoreFile("{$parentDirectory}/.gitignore")) { + continue; + } + $fileRelativePath = (string) substr($fileRealPath, \strlen($parentDirectory) + 1); + foreach ($rules as [$regex, $isNegated, $isDirOnly]) { + if ($isDirOnly && !$isDir) { + continue; + } + if (preg_match($regex, $fileRelativePath, $matches) && $matches[0] === $fileRelativePath) { + $ignored = !$isNegated; + break 2; + } + } } } return $this->ignoredPathsCache[$fileRealPath] = $ignored; @@ -103,7 +106,9 @@ private function parentDirectoriesDownwards(string $fileRealPath): array return array_reverse($this->parentDirectoriesUpTo($fileRealPath, $this->baseDir)); } /** - * @return array{0: string, 1: string}|null + * Returns the rules of a .gitignore file, last one first, as [regex, isNegated, isDirOnly] tuples. + * + * @return list|null */ private function readGitignoreFile(string $path): ?array { @@ -116,8 +121,22 @@ private function readGitignoreFile(string $path): ?array if (!is_file($path) || !is_readable($path)) { throw new \RuntimeException("The \"ignoreVCSIgnored\" option cannot be used by the Finder as the \"{$path}\" file is not readable."); } - $gitignoreFileContent = file_get_contents($path); - return $this->gitignoreFilesCache[$path] = [Gitignore::toRegex($gitignoreFileContent), Gitignore::toRegexMatchingNegatedPatterns($gitignoreFileContent)]; + $rules = []; + foreach (preg_split('~\r\n?|\n~', file_get_contents($path)) as $line) { + $line = preg_replace('~(?gitignoreFilesCache[$path] = array_reverse($rules); } private function normalizePath(string $path): string { diff --git a/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/symfony/process/Pipes/AbstractPipes.php index b2fd17335ce..0467c707490 100644 --- a/vendor/symfony/process/Pipes/AbstractPipes.php +++ b/vendor/symfony/process/Pipes/AbstractPipes.php @@ -155,11 +155,22 @@ protected function write(): ?array $this->input = null; fclose($this->pipes[0]); unset($this->pipes[0]); - } elseif (!$w) { + } elseif (!$w || $this->hasReadyInput()) { return [$this->pipes[0]]; } return null; } + /** + * Tells whether the next chunk of input can be written without waiting. + */ + private function hasReadyInput(): bool + { + if (!$this->input instanceof \Iterator || !$this->input->valid()) { + return \false; + } + $input = $this->input->current(); + return \is_scalar($input) && '' !== (string) $input; + } private function closeBrokenInputPipe(): void { $this->lastError = error_get_last()['message'] ?? null; diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php index 07b7d2ce4a0..3aa6a171592 100644 --- a/vendor/symfony/process/Process.php +++ b/vendor/symfony/process/Process.php @@ -240,7 +240,6 @@ public function __clone() * @throws RuntimeException When process is already running * @throws ProcessTimedOutException When process timed out * @throws ProcessSignaledException When process stopped after receiving signal - * @throws LogicException In case a callback is provided and output has been disabled * * @final */ @@ -266,7 +265,6 @@ public function run(?callable $callback = null, array $env = []): int * @throws RuntimeException When process is already running * @throws ProcessTimedOutException When process timed out * @throws ProcessSignaledException When process stopped after receiving signal - * @throws LogicException In case a callback is provided and output has been disabled * * @final */ @@ -295,7 +293,6 @@ public function mustRun(?callable $callback = null, array $env = []) * * @throws ProcessStartFailedException When process can't be launched * @throws RuntimeException When process is already running - * @throws LogicException In case a callback is provided and output has been disabled */ public function start(?callable $callback = null, array $env = []): void { From 2ac92445a4bbef7c21bce2d48dae756a64516c02 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 22 Aug 2026 19:47:12 +0000 Subject: [PATCH 020/169] Updated Rector to commit bc7a6597a4ad92d753688758f4c191203a7aa619 https://github.com/rectorphp/rector-src/commit/bc7a6597a4ad92d753688758f4c191203a7aa619 [Composer] Target lowest version for any distributed package type, only 'project' is an application (#8363) --- src/Application/VersionResolver.php | 4 ++-- src/Composer/InstalledPackageResolver.php | 6 +++++- src/Config/RectorConfig.php | 10 +++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 4e77d88dc48..fff4cd6dc7c 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 = '9a5dde6631d66514ece7df5efb83448cf79c158f'; + public const PACKAGE_VERSION = 'bc7a6597a4ad92d753688758f4c191203a7aa619'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-22 13:10:27'; + public const RELEASE_DATE = '2026-08-22 19:44:25'; /** * @var int */ diff --git a/src/Composer/InstalledPackageResolver.php b/src/Composer/InstalledPackageResolver.php index 8a3c8b6c7c3..e39b5ad1f70 100644 --- a/src/Composer/InstalledPackageResolver.php +++ b/src/Composer/InstalledPackageResolver.php @@ -119,11 +119,15 @@ private function createInstalledPackages(array $packages): array /** * A library declares a compatibility range in its "composer.json"; the version-specific rules must target the * lowest declared version, not the one that happens to be installed locally. + * + * Anything but an application counts as a library: a missing "type" or an explicit "project" is an application, + * every other declared type ("library", "symfony-bundle", ...) is a distributed package. */ private function isLibrary(): bool { $projectComposerJson = $this->loadProjectComposerJson(); - return ($projectComposerJson['type'] ?? null) === 'library'; + $type = $projectComposerJson['type'] ?? null; + return is_string($type) && $type !== 'project'; } /** * There is no vendor to read the installed versions from, so the constraints themselves are the only source diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index 8062ac29fde..d68984ff541 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -49,6 +49,9 @@ final class RectorConfig extends Container * @var string[] */ private array $autotagInterfaces = [Command::class, ResettableInterface::class]; + /** + * Optional override, e.g. injected by a test to read the versions from a standalone "composer.json" + */ private ?InstalledPackageResolver $installedPackageResolver = null; private static ?bool $recreated = null; /** @@ -444,7 +447,12 @@ public function setOverflowLevels(array $levelOverflows): void } private function resolveInstalledPackageVersion(string $packageName): ?string { - $this->installedPackageResolver ??= new InstalledPackageResolver(); + // an explicitly injected resolver wins, e.g. a test pointing at a standalone "composer.json" + if (!$this->installedPackageResolver instanceof InstalledPackageResolver) { + // otherwise reuse the container-bound resolver, so a test-provided "composer.json" (via + // AbstractRectorTestCase::provideComposerJsonFilePath()) drives the version, not the project root + $this->installedPackageResolver = $this->bound(InstalledPackageResolver::class) ? $this->make(InstalledPackageResolver::class) : new InstalledPackageResolver(); + } return $this->installedPackageResolver->resolvePackageVersion($packageName); } } From 09b3f856327d65540a319e82959c26df669bfd54 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 23 Aug 2026 09:53:44 +0000 Subject: [PATCH 021/169] Updated Rector to commit cd3ec48e1209436d03d9c67d47c51ac4972a20cc https://github.com/rectorphp/rector-src/commit/cd3ec48e1209436d03d9c67d47c51ac4972a20cc Switch DI container from illuminate/container to entropy/entropy (#8362) --- .../ClassNameImportSkipper.php | 10 +- src/Application/VersionResolver.php | 4 +- src/Config/RectorConfig.php | 92 +- src/Config/RegisteredService.php | 38 - src/Configuration/RectorConfigBuilder.php | 21 +- .../Output/OutputFormatterCollector.php | 2 +- .../Laravel/ContainerMemento.php | 48 - .../LazyContainerFactory.php | 118 +- src/NodeNameResolver/NodeNameResolver.php | 4 +- src/NodeTypeResolver/NodeTypeResolver.php | 2 +- .../Scope/PHPStanNodeScopeResolver.php | 2 +- .../Mapper/PhpParserNodeMapper.php | 4 +- .../PHPUnit/AbstractRectorTestCase.php | 31 +- src/Util/Reflection/PrivatesAccessor.php | 10 - src/functions/node_helper.php | 5 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 191 -- vendor/composer/autoload_files.php | 2 - vendor/composer/autoload_psr4.php | 5 - vendor/composer/autoload_real.php | 10 +- vendor/composer/autoload_static.php | 226 +-- vendor/composer/installed.json | 352 +--- vendor/composer/installed.php | 2 +- .../entropy/src/Console/Input/InputParser.php | 9 +- .../entropy/src/Container/Container.php | 133 +- .../illuminate/container/Attributes/Auth.php | 30 - .../container/Attributes/Authenticated.php | 30 - .../illuminate/container/Attributes/Bind.php | 50 - .../illuminate/container/Attributes/Cache.php | 30 - .../container/Attributes/Config.php | 36 - .../container/Attributes/Context.php | 45 - .../container/Attributes/CurrentUser.php | 10 - vendor/illuminate/container/Attributes/DB.php | 10 - .../container/Attributes/Database.php | 35 - .../illuminate/container/Attributes/Give.php | 41 - .../illuminate/container/Attributes/Log.php | 30 - .../container/Attributes/RouteParameter.php | 30 - .../container/Attributes/Scoped.php | 9 - .../container/Attributes/Singleton.php | 9 - .../container/Attributes/Storage.php | 30 - .../illuminate/container/Attributes/Tag.php | 28 - vendor/illuminate/container/BoundMethod.php | 177 -- vendor/illuminate/container/Container.php | 1601 ----------------- .../container/ContextualBindingBuilder.php | 86 - .../container/EntryNotFoundException.php | 10 - vendor/illuminate/container/LICENSE.md | 21 - vendor/illuminate/container/PATCHES.txt | 7 - .../container/RewindableGenerator.php | 54 - vendor/illuminate/container/Util.php | 77 - vendor/illuminate/container/composer.json | 48 - .../contracts/Auth/Access/Authorizable.php | 15 - .../illuminate/contracts/Auth/Access/Gate.php | 135 -- .../contracts/Auth/Authenticatable.php | 50 - .../contracts/Auth/CanResetPassword.php | 20 - vendor/illuminate/contracts/Auth/Factory.php | 21 - vendor/illuminate/contracts/Auth/Guard.php | 51 - .../Auth/Middleware/AuthenticatesRequests.php | 8 - .../contracts/Auth/MustVerifyEmail.php | 31 - .../contracts/Auth/PasswordBroker.php | 54 - .../contracts/Auth/PasswordBrokerFactory.php | 14 - .../contracts/Auth/StatefulGuard.php | 57 - .../contracts/Auth/SupportsBasicAuth.php | 23 - .../contracts/Auth/UserProvider.php | 54 - .../contracts/Broadcasting/Broadcaster.php | 33 - .../contracts/Broadcasting/Factory.php | 14 - .../Broadcasting/HasBroadcastChannel.php | 19 - .../contracts/Broadcasting/ShouldBeUnique.php | 8 - .../Broadcasting/ShouldBroadcast.php | 13 - .../Broadcasting/ShouldBroadcastNow.php | 8 - .../contracts/Broadcasting/ShouldRescue.php | 8 - .../illuminate/contracts/Bus/Dispatcher.php | 60 - .../contracts/Bus/QueueingDispatcher.php | 28 - vendor/illuminate/contracts/Cache/Factory.php | 14 - vendor/illuminate/contracts/Cache/Lock.php | 42 - .../contracts/Cache/LockProvider.php | 24 - .../contracts/Cache/LockTimeoutException.php | 9 - .../illuminate/contracts/Cache/Repository.php | 105 -- vendor/illuminate/contracts/Cache/Store.php | 83 - .../contracts/Concurrency/Driver.php | 19 - .../contracts/Config/Repository.php | 52 - .../contracts/Console/Application.php | 22 - .../contracts/Console/Isolatable.php | 8 - .../illuminate/contracts/Console/Kernel.php | 58 - .../Console/PromptsForMissingInput.php | 8 - .../Container/BindingResolutionException.php | 10 - .../Container/CircularDependencyException.php | 10 - .../contracts/Container/Container.php | 211 --- .../Container/ContextualAttribute.php | 8 - .../Container/ContextualBindingBuilder.php | 36 - .../contracts/Container/SelfBuilding.php | 10 - .../illuminate/contracts/Cookie/Factory.php | 45 - .../contracts/Cookie/QueueingFactory.php | 28 - .../Database/ConcurrencyErrorDetector.php | 15 - .../contracts/Database/Eloquent/Builder.php | 13 - .../contracts/Database/Eloquent/Castable.php | 14 - .../Database/Eloquent/CastsAttributes.php | 32 - .../Eloquent/CastsInboundAttributes.php | 18 - .../Eloquent/ComparesCastableAttributes.php | 18 - .../Eloquent/DeviatesCastableAttributes.php | 27 - .../Eloquent/SerializesCastableAttributes.php | 18 - .../Eloquent/SupportsPartialRelations.php | 28 - .../Database/Events/MigrationEvent.php | 8 - .../Database/LostConnectionDetector.php | 15 - .../contracts/Database/ModelIdentifier.php | 92 - .../contracts/Database/Query/Builder.php | 12 - .../Database/Query/ConditionExpression.php | 7 - .../contracts/Database/Query/Expression.php | 15 - .../contracts/Debug/ExceptionHandler.php | 44 - .../contracts/Debug/ShouldntReport.php | 8 - .../contracts/Encryption/DecryptException.php | 9 - .../contracts/Encryption/EncryptException.php | 9 - .../contracts/Encryption/Encrypter.php | 45 - .../contracts/Encryption/StringEncrypter.php | 25 - .../contracts/Events/Dispatcher.php | 74 - .../Events/ShouldDispatchAfterCommit.php | 8 - .../Events/ShouldHandleEventsAfterCommit.php | 8 - .../illuminate/contracts/Filesystem/Cloud.php | 14 - .../contracts/Filesystem/Factory.php | 14 - .../Filesystem/FileNotFoundException.php | 9 - .../contracts/Filesystem/Filesystem.php | 196 -- .../Filesystem/LockTimeoutException.php | 9 - .../contracts/Foundation/Application.php | 222 --- .../Foundation/CachesConfiguration.php | 25 - .../contracts/Foundation/CachesRoutes.php | 19 - .../Foundation/ExceptionRenderer.php | 14 - .../contracts/Foundation/MaintenanceMode.php | 32 - .../illuminate/contracts/Hashing/Hasher.php | 39 - vendor/illuminate/contracts/Http/Kernel.php | 34 - .../contracts/JsonSchema/JsonSchema.php | 52 - vendor/illuminate/contracts/LICENSE.md | 21 - .../contracts/Log/ContextLogProcessor.php | 8 - .../illuminate/contracts/Mail/Attachable.php | 13 - vendor/illuminate/contracts/Mail/Factory.php | 14 - .../illuminate/contracts/Mail/MailQueue.php | 24 - vendor/illuminate/contracts/Mail/Mailable.php | 68 - vendor/illuminate/contracts/Mail/Mailer.php | 47 - .../contracts/Notifications/Dispatcher.php | 24 - .../contracts/Notifications/Factory.php | 30 - .../contracts/Pagination/CursorPaginator.php | 122 -- .../Pagination/LengthAwarePaginator.php | 34 - .../contracts/Pagination/Paginator.php | 122 -- vendor/illuminate/contracts/Pipeline/Hub.php | 15 - .../contracts/Pipeline/Pipeline.php | 36 - .../contracts/Process/InvokedProcess.php | 64 - .../contracts/Process/ProcessResult.php | 72 - .../contracts/Queue/ClearableQueue.php | 14 - .../Queue/EntityNotFoundException.php | 19 - .../contracts/Queue/EntityResolver.php | 15 - vendor/illuminate/contracts/Queue/Factory.php | 14 - vendor/illuminate/contracts/Queue/Job.php | 151 -- vendor/illuminate/contracts/Queue/Monitor.php | 28 - vendor/illuminate/contracts/Queue/Queue.php | 95 - .../contracts/Queue/QueueableCollection.php | 31 - .../contracts/Queue/QueueableEntity.php | 25 - .../contracts/Queue/ShouldBeEncrypted.php | 8 - .../contracts/Queue/ShouldBeUnique.php | 8 - .../Queue/ShouldBeUniqueUntilProcessing.php | 8 - .../contracts/Queue/ShouldQueue.php | 8 - .../Queue/ShouldQueueAfterCommit.php | 8 - .../illuminate/contracts/Redis/Connection.php | 32 - .../illuminate/contracts/Redis/Connector.php | 24 - vendor/illuminate/contracts/Redis/Factory.php | 14 - .../Redis/LimiterTimeoutException.php | 9 - .../contracts/Routing/BindingRegistrar.php | 22 - .../contracts/Routing/Registrar.php | 95 - .../contracts/Routing/ResponseFactory.php | 152 -- .../contracts/Routing/UrlGenerator.php | 110 -- .../contracts/Routing/UrlRoutable.php | 36 - .../Middleware/AuthenticatesSessions.php | 8 - .../illuminate/contracts/Session/Session.php | 187 -- .../contracts/Support/Arrayable.php | 17 - .../Support/CanBeEscapedWhenCastToString.php | 14 - .../contracts/Support/DeferrableProvider.php | 13 - .../Support/DeferringDisplayableValue.php | 13 - .../contracts/Support/HasOnceHash.php | 13 - .../illuminate/contracts/Support/Htmlable.php | 13 - .../illuminate/contracts/Support/Jsonable.php | 14 - .../contracts/Support/MessageBag.php | 97 - .../contracts/Support/MessageProvider.php | 13 - .../contracts/Support/Renderable.php | 13 - .../contracts/Support/Responsable.php | 14 - .../contracts/Support/ValidatedData.php | 10 - .../Translation/HasLocalePreference.php | 13 - .../contracts/Translation/Loader.php | 37 - .../contracts/Translation/Translator.php | 39 - .../contracts/Validation/CompilableRules.php | 17 - .../contracts/Validation/DataAwareRule.php | 14 - .../contracts/Validation/Factory.php | 43 - .../contracts/Validation/ImplicitRule.php | 11 - .../contracts/Validation/InvokableRule.php | 20 - .../illuminate/contracts/Validation/Rule.php | 24 - .../Validation/UncompromisedVerifier.php | 14 - .../Validation/ValidatesWhenResolved.php | 13 - .../contracts/Validation/ValidationRule.php | 17 - .../contracts/Validation/Validator.php | 58 - .../Validation/ValidatorAwareRule.php | 15 - vendor/illuminate/contracts/View/Engine.php | 15 - vendor/illuminate/contracts/View/Factory.php | 72 - vendor/illuminate/contracts/View/View.php | 28 - .../View/ViewCompilationException.php | 9 - vendor/illuminate/contracts/composer.json | 35 - vendor/psr/simple-cache/LICENSE.md | 21 - vendor/psr/simple-cache/README.md | 8 - vendor/psr/simple-cache/composer.json | 31 - .../psr/simple-cache/src/CacheException.php | 10 - .../psr/simple-cache/src/CacheInterface.php | 107 -- .../src/InvalidArgumentException.php | 13 - vendor/scoper-autoload.php | 28 +- vendor/symfony/polyfill-php84/LICENSE | 19 - vendor/symfony/polyfill-php84/Php84.php | 351 ---- vendor/symfony/polyfill-php84/README.md | 23 - .../polyfill-php84/Resources/Deprecated.php | 32 - .../polyfill-php84/Resources/RoundingMode.php | 26 - .../Resources/stubs/Deprecated.php | 34 - .../Resources/stubs/Pdo/Dblib.php | 39 - .../Resources/stubs/Pdo/Firebird.php | 35 - .../Resources/stubs/Pdo/Mysql.php | 129 -- .../Resources/stubs/Pdo/Odbc.php | 37 - .../Resources/stubs/Pdo/Pgsql.php | 81 - .../Resources/stubs/Pdo/Sqlite.php | 51 - .../Resources/stubs/ReflectionConstant.php | 142 -- .../Resources/stubs/RoundingMode.php | 35 - vendor/symfony/polyfill-php84/bootstrap.php | 99 - vendor/symfony/polyfill-php84/bootstrap72.php | 39 - vendor/symfony/polyfill-php84/bootstrap82.php | 23 - vendor/symfony/polyfill-php84/composer.json | 44 - vendor/symfony/polyfill-php85/LICENSE | 19 - vendor/symfony/polyfill-php85/Php85.php | 96 - vendor/symfony/polyfill-php85/README.md | 20 - .../stubs/DelayedTargetValidation.php | 21 - .../stubs/Filter/FilterException.php | 17 - .../stubs/Filter/FilterFailedException.php | 17 - .../Resources/stubs/NoDiscard.php | 24 - vendor/symfony/polyfill-php85/bootstrap.php | 52 - vendor/symfony/polyfill-php85/bootstrap80.php | 23 - vendor/symfony/polyfill-php85/composer.json | 44 - 236 files changed, 292 insertions(+), 10695 deletions(-) delete mode 100644 src/Config/RegisteredService.php delete mode 100644 src/DependencyInjection/Laravel/ContainerMemento.php delete mode 100644 vendor/illuminate/container/Attributes/Auth.php delete mode 100644 vendor/illuminate/container/Attributes/Authenticated.php delete mode 100644 vendor/illuminate/container/Attributes/Bind.php delete mode 100644 vendor/illuminate/container/Attributes/Cache.php delete mode 100644 vendor/illuminate/container/Attributes/Config.php delete mode 100644 vendor/illuminate/container/Attributes/Context.php delete mode 100644 vendor/illuminate/container/Attributes/CurrentUser.php delete mode 100644 vendor/illuminate/container/Attributes/DB.php delete mode 100644 vendor/illuminate/container/Attributes/Database.php delete mode 100644 vendor/illuminate/container/Attributes/Give.php delete mode 100644 vendor/illuminate/container/Attributes/Log.php delete mode 100644 vendor/illuminate/container/Attributes/RouteParameter.php delete mode 100644 vendor/illuminate/container/Attributes/Scoped.php delete mode 100644 vendor/illuminate/container/Attributes/Singleton.php delete mode 100644 vendor/illuminate/container/Attributes/Storage.php delete mode 100644 vendor/illuminate/container/Attributes/Tag.php delete mode 100644 vendor/illuminate/container/BoundMethod.php delete mode 100755 vendor/illuminate/container/Container.php delete mode 100644 vendor/illuminate/container/ContextualBindingBuilder.php delete mode 100644 vendor/illuminate/container/EntryNotFoundException.php delete mode 100644 vendor/illuminate/container/LICENSE.md delete mode 100644 vendor/illuminate/container/PATCHES.txt delete mode 100644 vendor/illuminate/container/RewindableGenerator.php delete mode 100644 vendor/illuminate/container/Util.php delete mode 100755 vendor/illuminate/container/composer.json delete mode 100644 vendor/illuminate/contracts/Auth/Access/Authorizable.php delete mode 100644 vendor/illuminate/contracts/Auth/Access/Gate.php delete mode 100644 vendor/illuminate/contracts/Auth/Authenticatable.php delete mode 100644 vendor/illuminate/contracts/Auth/CanResetPassword.php delete mode 100644 vendor/illuminate/contracts/Auth/Factory.php delete mode 100644 vendor/illuminate/contracts/Auth/Guard.php delete mode 100644 vendor/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php delete mode 100644 vendor/illuminate/contracts/Auth/MustVerifyEmail.php delete mode 100644 vendor/illuminate/contracts/Auth/PasswordBroker.php delete mode 100644 vendor/illuminate/contracts/Auth/PasswordBrokerFactory.php delete mode 100644 vendor/illuminate/contracts/Auth/StatefulGuard.php delete mode 100644 vendor/illuminate/contracts/Auth/SupportsBasicAuth.php delete mode 100644 vendor/illuminate/contracts/Auth/UserProvider.php delete mode 100644 vendor/illuminate/contracts/Broadcasting/Broadcaster.php delete mode 100644 vendor/illuminate/contracts/Broadcasting/Factory.php delete mode 100644 vendor/illuminate/contracts/Broadcasting/HasBroadcastChannel.php delete mode 100644 vendor/illuminate/contracts/Broadcasting/ShouldBeUnique.php delete mode 100644 vendor/illuminate/contracts/Broadcasting/ShouldBroadcast.php delete mode 100644 vendor/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php delete mode 100644 vendor/illuminate/contracts/Broadcasting/ShouldRescue.php delete mode 100644 vendor/illuminate/contracts/Bus/Dispatcher.php delete mode 100644 vendor/illuminate/contracts/Bus/QueueingDispatcher.php delete mode 100644 vendor/illuminate/contracts/Cache/Factory.php delete mode 100644 vendor/illuminate/contracts/Cache/Lock.php delete mode 100644 vendor/illuminate/contracts/Cache/LockProvider.php delete mode 100644 vendor/illuminate/contracts/Cache/LockTimeoutException.php delete mode 100644 vendor/illuminate/contracts/Cache/Repository.php delete mode 100644 vendor/illuminate/contracts/Cache/Store.php delete mode 100644 vendor/illuminate/contracts/Concurrency/Driver.php delete mode 100644 vendor/illuminate/contracts/Config/Repository.php delete mode 100644 vendor/illuminate/contracts/Console/Application.php delete mode 100644 vendor/illuminate/contracts/Console/Isolatable.php delete mode 100644 vendor/illuminate/contracts/Console/Kernel.php delete mode 100644 vendor/illuminate/contracts/Console/PromptsForMissingInput.php delete mode 100644 vendor/illuminate/contracts/Container/BindingResolutionException.php delete mode 100644 vendor/illuminate/contracts/Container/CircularDependencyException.php delete mode 100644 vendor/illuminate/contracts/Container/Container.php delete mode 100644 vendor/illuminate/contracts/Container/ContextualAttribute.php delete mode 100644 vendor/illuminate/contracts/Container/ContextualBindingBuilder.php delete mode 100644 vendor/illuminate/contracts/Container/SelfBuilding.php delete mode 100644 vendor/illuminate/contracts/Cookie/Factory.php delete mode 100644 vendor/illuminate/contracts/Cookie/QueueingFactory.php delete mode 100644 vendor/illuminate/contracts/Database/ConcurrencyErrorDetector.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/Builder.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/Castable.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/CastsAttributes.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/ComparesCastableAttributes.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php delete mode 100644 vendor/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php delete mode 100644 vendor/illuminate/contracts/Database/Events/MigrationEvent.php delete mode 100644 vendor/illuminate/contracts/Database/LostConnectionDetector.php delete mode 100644 vendor/illuminate/contracts/Database/ModelIdentifier.php delete mode 100644 vendor/illuminate/contracts/Database/Query/Builder.php delete mode 100644 vendor/illuminate/contracts/Database/Query/ConditionExpression.php delete mode 100644 vendor/illuminate/contracts/Database/Query/Expression.php delete mode 100644 vendor/illuminate/contracts/Debug/ExceptionHandler.php delete mode 100644 vendor/illuminate/contracts/Debug/ShouldntReport.php delete mode 100644 vendor/illuminate/contracts/Encryption/DecryptException.php delete mode 100644 vendor/illuminate/contracts/Encryption/EncryptException.php delete mode 100644 vendor/illuminate/contracts/Encryption/Encrypter.php delete mode 100644 vendor/illuminate/contracts/Encryption/StringEncrypter.php delete mode 100644 vendor/illuminate/contracts/Events/Dispatcher.php delete mode 100644 vendor/illuminate/contracts/Events/ShouldDispatchAfterCommit.php delete mode 100644 vendor/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php delete mode 100644 vendor/illuminate/contracts/Filesystem/Cloud.php delete mode 100644 vendor/illuminate/contracts/Filesystem/Factory.php delete mode 100644 vendor/illuminate/contracts/Filesystem/FileNotFoundException.php delete mode 100644 vendor/illuminate/contracts/Filesystem/Filesystem.php delete mode 100644 vendor/illuminate/contracts/Filesystem/LockTimeoutException.php delete mode 100644 vendor/illuminate/contracts/Foundation/Application.php delete mode 100644 vendor/illuminate/contracts/Foundation/CachesConfiguration.php delete mode 100644 vendor/illuminate/contracts/Foundation/CachesRoutes.php delete mode 100644 vendor/illuminate/contracts/Foundation/ExceptionRenderer.php delete mode 100644 vendor/illuminate/contracts/Foundation/MaintenanceMode.php delete mode 100644 vendor/illuminate/contracts/Hashing/Hasher.php delete mode 100644 vendor/illuminate/contracts/Http/Kernel.php delete mode 100644 vendor/illuminate/contracts/JsonSchema/JsonSchema.php delete mode 100644 vendor/illuminate/contracts/LICENSE.md delete mode 100644 vendor/illuminate/contracts/Log/ContextLogProcessor.php delete mode 100644 vendor/illuminate/contracts/Mail/Attachable.php delete mode 100644 vendor/illuminate/contracts/Mail/Factory.php delete mode 100644 vendor/illuminate/contracts/Mail/MailQueue.php delete mode 100644 vendor/illuminate/contracts/Mail/Mailable.php delete mode 100644 vendor/illuminate/contracts/Mail/Mailer.php delete mode 100644 vendor/illuminate/contracts/Notifications/Dispatcher.php delete mode 100644 vendor/illuminate/contracts/Notifications/Factory.php delete mode 100644 vendor/illuminate/contracts/Pagination/CursorPaginator.php delete mode 100644 vendor/illuminate/contracts/Pagination/LengthAwarePaginator.php delete mode 100644 vendor/illuminate/contracts/Pagination/Paginator.php delete mode 100644 vendor/illuminate/contracts/Pipeline/Hub.php delete mode 100644 vendor/illuminate/contracts/Pipeline/Pipeline.php delete mode 100644 vendor/illuminate/contracts/Process/InvokedProcess.php delete mode 100644 vendor/illuminate/contracts/Process/ProcessResult.php delete mode 100644 vendor/illuminate/contracts/Queue/ClearableQueue.php delete mode 100644 vendor/illuminate/contracts/Queue/EntityNotFoundException.php delete mode 100644 vendor/illuminate/contracts/Queue/EntityResolver.php delete mode 100644 vendor/illuminate/contracts/Queue/Factory.php delete mode 100644 vendor/illuminate/contracts/Queue/Job.php delete mode 100644 vendor/illuminate/contracts/Queue/Monitor.php delete mode 100644 vendor/illuminate/contracts/Queue/Queue.php delete mode 100644 vendor/illuminate/contracts/Queue/QueueableCollection.php delete mode 100644 vendor/illuminate/contracts/Queue/QueueableEntity.php delete mode 100644 vendor/illuminate/contracts/Queue/ShouldBeEncrypted.php delete mode 100644 vendor/illuminate/contracts/Queue/ShouldBeUnique.php delete mode 100644 vendor/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php delete mode 100644 vendor/illuminate/contracts/Queue/ShouldQueue.php delete mode 100644 vendor/illuminate/contracts/Queue/ShouldQueueAfterCommit.php delete mode 100644 vendor/illuminate/contracts/Redis/Connection.php delete mode 100644 vendor/illuminate/contracts/Redis/Connector.php delete mode 100644 vendor/illuminate/contracts/Redis/Factory.php delete mode 100644 vendor/illuminate/contracts/Redis/LimiterTimeoutException.php delete mode 100644 vendor/illuminate/contracts/Routing/BindingRegistrar.php delete mode 100644 vendor/illuminate/contracts/Routing/Registrar.php delete mode 100644 vendor/illuminate/contracts/Routing/ResponseFactory.php delete mode 100644 vendor/illuminate/contracts/Routing/UrlGenerator.php delete mode 100644 vendor/illuminate/contracts/Routing/UrlRoutable.php delete mode 100644 vendor/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php delete mode 100644 vendor/illuminate/contracts/Session/Session.php delete mode 100755 vendor/illuminate/contracts/Support/Arrayable.php delete mode 100644 vendor/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php delete mode 100644 vendor/illuminate/contracts/Support/DeferrableProvider.php delete mode 100644 vendor/illuminate/contracts/Support/DeferringDisplayableValue.php delete mode 100644 vendor/illuminate/contracts/Support/HasOnceHash.php delete mode 100644 vendor/illuminate/contracts/Support/Htmlable.php delete mode 100755 vendor/illuminate/contracts/Support/Jsonable.php delete mode 100644 vendor/illuminate/contracts/Support/MessageBag.php delete mode 100755 vendor/illuminate/contracts/Support/MessageProvider.php delete mode 100755 vendor/illuminate/contracts/Support/Renderable.php delete mode 100644 vendor/illuminate/contracts/Support/Responsable.php delete mode 100644 vendor/illuminate/contracts/Support/ValidatedData.php delete mode 100644 vendor/illuminate/contracts/Translation/HasLocalePreference.php delete mode 100755 vendor/illuminate/contracts/Translation/Loader.php delete mode 100644 vendor/illuminate/contracts/Translation/Translator.php delete mode 100644 vendor/illuminate/contracts/Validation/CompilableRules.php delete mode 100644 vendor/illuminate/contracts/Validation/DataAwareRule.php delete mode 100644 vendor/illuminate/contracts/Validation/Factory.php delete mode 100644 vendor/illuminate/contracts/Validation/ImplicitRule.php delete mode 100644 vendor/illuminate/contracts/Validation/InvokableRule.php delete mode 100644 vendor/illuminate/contracts/Validation/Rule.php delete mode 100644 vendor/illuminate/contracts/Validation/UncompromisedVerifier.php delete mode 100644 vendor/illuminate/contracts/Validation/ValidatesWhenResolved.php delete mode 100644 vendor/illuminate/contracts/Validation/ValidationRule.php delete mode 100644 vendor/illuminate/contracts/Validation/Validator.php delete mode 100644 vendor/illuminate/contracts/Validation/ValidatorAwareRule.php delete mode 100755 vendor/illuminate/contracts/View/Engine.php delete mode 100644 vendor/illuminate/contracts/View/Factory.php delete mode 100644 vendor/illuminate/contracts/View/View.php delete mode 100644 vendor/illuminate/contracts/View/ViewCompilationException.php delete mode 100644 vendor/illuminate/contracts/composer.json delete mode 100644 vendor/psr/simple-cache/LICENSE.md delete mode 100644 vendor/psr/simple-cache/README.md delete mode 100644 vendor/psr/simple-cache/composer.json delete mode 100644 vendor/psr/simple-cache/src/CacheException.php delete mode 100644 vendor/psr/simple-cache/src/CacheInterface.php delete mode 100644 vendor/psr/simple-cache/src/InvalidArgumentException.php delete mode 100644 vendor/symfony/polyfill-php84/LICENSE delete mode 100644 vendor/symfony/polyfill-php84/Php84.php delete mode 100644 vendor/symfony/polyfill-php84/README.md delete mode 100644 vendor/symfony/polyfill-php84/Resources/Deprecated.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/RoundingMode.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/Deprecated.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Dblib.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Firebird.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Mysql.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Odbc.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Pgsql.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Sqlite.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php delete mode 100644 vendor/symfony/polyfill-php84/Resources/stubs/RoundingMode.php delete mode 100644 vendor/symfony/polyfill-php84/bootstrap.php delete mode 100644 vendor/symfony/polyfill-php84/bootstrap72.php delete mode 100644 vendor/symfony/polyfill-php84/bootstrap82.php delete mode 100644 vendor/symfony/polyfill-php84/composer.json delete mode 100644 vendor/symfony/polyfill-php85/LICENSE delete mode 100644 vendor/symfony/polyfill-php85/Php85.php delete mode 100644 vendor/symfony/polyfill-php85/README.md delete mode 100644 vendor/symfony/polyfill-php85/Resources/stubs/DelayedTargetValidation.php delete mode 100644 vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterException.php delete mode 100644 vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterFailedException.php delete mode 100644 vendor/symfony/polyfill-php85/Resources/stubs/NoDiscard.php delete mode 100644 vendor/symfony/polyfill-php85/bootstrap.php delete mode 100644 vendor/symfony/polyfill-php85/bootstrap80.php delete mode 100644 vendor/symfony/polyfill-php85/composer.json diff --git a/rules/CodingStyle/ClassNameImport/ClassNameImportSkipper.php b/rules/CodingStyle/ClassNameImport/ClassNameImportSkipper.php index 2c0fd41ee3b..ab17db34153 100644 --- a/rules/CodingStyle/ClassNameImport/ClassNameImportSkipper.php +++ b/rules/CodingStyle/ClassNameImport/ClassNameImportSkipper.php @@ -20,7 +20,7 @@ final class ClassNameImportSkipper * @var ClassNameImportSkipVoterInterface[] * @readonly */ - private iterable $classNameImportSkipVoters; + private array $classNameImportSkipVoters; /** * @readonly */ @@ -28,19 +28,21 @@ final class ClassNameImportSkipper /** * @param ClassNameImportSkipVoterInterface[] $classNameImportSkipVoters */ - public function __construct(iterable $classNameImportSkipVoters, UseImportsResolver $useImportsResolver) + public function __construct(array $classNameImportSkipVoters, UseImportsResolver $useImportsResolver) { $this->classNameImportSkipVoters = $classNameImportSkipVoters; $this->useImportsResolver = $useImportsResolver; } public function shouldSkipNameForFullyQualifiedObjectType(File $file, Node $node, FullyQualifiedObjectType $fullyQualifiedObjectType): bool { + $found = \false; foreach ($this->classNameImportSkipVoters as $classNameImportSkipVoter) { if ($classNameImportSkipVoter->shouldSkip($file, $fullyQualifiedObjectType, $node)) { - return \true; + $found = \true; + break; } } - return \false; + return $found; } /** * @param array $uses diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index fff4cd6dc7c..45a71abd3ff 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 = 'bc7a6597a4ad92d753688758f4c191203a7aa619'; + public const PACKAGE_VERSION = 'cd3ec48e1209436d03d9c67d47c51ac4972a20cc'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-22 19:44:25'; + public const RELEASE_DATE = '2026-08-23 11:51:19'; /** * @var int */ diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index d68984ff541..bc84854994a 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -5,7 +5,7 @@ use RectorPrefix202608\Composer\Semver\Semver; use Deprecated; -use RectorPrefix202608\Illuminate\Container\Container; +use RectorPrefix202608\Entropy\Container\Container; use Override; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Composer\InstalledPackageResolver; @@ -13,10 +13,8 @@ use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Configuration\RectorConfigBuilder; use Rector\Contract\DependencyInjection\RelatedConfigInterface; -use Rector\Contract\DependencyInjection\ResettableInterface; use Rector\Contract\Rector\ConfigurableRectorInterface; use Rector\Contract\Rector\RectorInterface; -use Rector\DependencyInjection\Laravel\ContainerMemento; use Rector\Enum\Config\Defaults; use Rector\Exception\ShouldNotHappenException; use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; @@ -45,14 +43,22 @@ final class RectorConfig extends Container * @var array */ private array $registeredComposerBoundRuleConfigurations = []; - /** - * @var string[] - */ - private array $autotagInterfaces = [Command::class, ResettableInterface::class]; /** * Optional override, e.g. injected by a test to read the versions from a standalone "composer.json" */ private ?InstalledPackageResolver $installedPackageResolver = null; + /** + * Explicitly registered service ids, used for bound() and to drive forgetting on skip()/reset. + * + * @var array + */ + private array $boundAbstracts = []; + /** + * Service ids that got a factory closure registered on the entropy container. + * + * @var array + */ + private array $factoryBound = []; private static ?bool $recreated = null; /** * @internal Resets the root-config detection, so tests that assert on root @@ -174,8 +180,12 @@ public function ruleWithConfiguration(string $rectorClass, array $configuration) $this->ruleConfigurations[$rectorClass] = array_merge($this->ruleConfigurations[$rectorClass] ?? [], $configuration); $this->rule($rectorClass); $this->afterResolving($rectorClass, function (ConfigurableRectorInterface $configurableRector) use ($rectorClass): void { - $ruleConfiguration = $this->ruleConfigurations[$rectorClass]; - $configurableRector->configure($ruleConfiguration); + // the rule may have been re-registered without configuration since this callback was + // queued (e.g. a later test reusing the rule via a set), so skip when it has no config + if (!isset($this->ruleConfigurations[$rectorClass])) { + return; + } + $configurableRector->configure($this->ruleConfigurations[$rectorClass]); }); } /** @@ -210,11 +220,10 @@ public function rule(string $rectorClass): void Assert::classExists($rectorClass); Assert::isAOf($rectorClass, RectorInterface::class); $this->singleton($rectorClass); - // the same rule can be registered by multiple sets, tag it only once, + // the same rule can be registered by multiple sets, record it only once, // otherwise it is run twice on every node and listed twice in the reports if (!isset($this->registeredRectorClasses[$rectorClass])) { $this->registeredRectorClasses[$rectorClass] = \true; - $this->tag($rectorClass, RectorInterface::class); // for cache invalidation in case of change SimpleParameterProvider::addParameter(Option::REGISTERED_RECTOR_RULES, $rectorClass); } @@ -230,7 +239,6 @@ public function rule(string $rectorClass): void public function command(string $commandClass): void { $this->singleton($commandClass); - $this->tag($commandClass, Command::class); } public function import(string $filePath): void { @@ -384,29 +392,65 @@ public function boot(): void continue; } // completely forget the Rector rule only when no path specified - ContainerMemento::forgetService($this, $skippedClass); + $this->forgetByContract($skippedClass); } } /** - * @internal Use to add tag on service registrations + * Register a shared service. Without a $concrete factory the entropy container autowires the + * class on demand via reflection; register() makes it discoverable by the interfaces it + * implements, so findByContract() can find it without any explicit tagging. + * + * @param class-string $abstract + * @param (callable(self): object)|null $concrete */ - public function autotagInterface(string $interface): void + public function singleton(string $abstract, ?callable $concrete = null): void { - $this->autotagInterfaces[] = $interface; + $this->boundAbstracts[$abstract] = \true; + if ($concrete === null) { + // no factory: let the entropy container discover it by contract + $this->register($abstract); + return; + } + if (!isset($this->factoryBound[$abstract])) { + $this->factoryBound[$abstract] = \true; + // entropy calls the factory with the container instance, which is always this RectorConfig + parent::service($abstract, fn(): object => $concrete($this)); + } + } + /** + * PSR-11 style accessor, kept for call sites that read services eagerly. + * + * @template TObject of object + * @param class-string $id + * @return TObject + */ + public function get(string $id): object + { + return $this->make($id); } /** - * @param string $abstract - * @param mixed $concrete + * @param class-string $abstract + */ + public function bound(string $abstract): bool + { + return isset($this->boundAbstracts[$abstract]); + } + /** + * Forget every service of the contract, both from the entropy container and from the local + * bookkeeping, so a skipped or reset service is not seen as bound and cannot be resurrected + * through discovery. + * + * @param class-string $contract */ #[Override] - public function singleton($abstract, $concrete = null): void + public function forgetByContract(string $contract): void { - parent::singleton($abstract, $concrete); - foreach ($this->autotagInterfaces as $autotagInterface) { - if (!is_a($abstract, $autotagInterface, \true)) { + parent::forgetByContract($contract); + foreach (array_keys($this->boundAbstracts) as $abstract) { + if (!is_a($abstract, $contract, \true)) { continue; } - $this->tag($abstract, $autotagInterface); + unset($this->boundAbstracts[$abstract], $this->factoryBound[$abstract], $this->registeredRectorClasses[$abstract]); } } public function reportingRealPath(bool $absolute = \true): void @@ -435,7 +479,7 @@ public function getRuleConfigurations(): array */ public function getMainRectorClasses(): array { - return $this->tags[RectorInterface::class] ?? []; + return array_keys($this->registeredRectorClasses); } /** * @internal used to report level overflows in configuration diff --git a/src/Config/RegisteredService.php b/src/Config/RegisteredService.php deleted file mode 100644 index ac5103a56be..00000000000 --- a/src/Config/RegisteredService.php +++ /dev/null @@ -1,38 +0,0 @@ -className = $className; - $this->alias = $alias; - $this->tag = $tag; - } - public function getClassName(): string - { - return $this->className; - } - public function getAlias(): ?string - { - return $this->alias; - } - public function getTag(): ?string - { - return $this->tag; - } -} diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index f4389ba3e46..a3eca6e36ab 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -15,11 +15,9 @@ use Rector\Config\Level\TypeDeclarationDocblocksLevel; use Rector\Config\Level\TypeDeclarationLevel; use Rector\Config\RectorConfig; -use Rector\Config\RegisteredService; use Rector\Configuration\Levels\LevelRulesResolver; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Console\Notifier; -use Rector\Contract\PhpParser\DecoratingNodeVisitorInterface; use Rector\Contract\Rector\ConfigurableRectorInterface; use Rector\Contract\Rector\RectorInterface; use Rector\Doctrine\Set\DoctrineSetList; @@ -132,7 +130,7 @@ final class RectorConfigBuilder */ private array $typeGuardedClasses = []; /** - * @var RegisteredService[] + * @var array */ private array $registerServices = []; /** @@ -198,13 +196,7 @@ public function __invoke(RectorConfig $rectorConfig): void } // must be in upper part, as these services might be used by rule registered bellow foreach ($this->registerServices as $registerService) { - $rectorConfig->singleton($registerService->getClassName()); - if ($registerService->getAlias()) { - $rectorConfig->alias($registerService->getClassName(), $registerService->getAlias()); - } - if ($registerService->getTag()) { - $rectorConfig->tag($registerService->getClassName(), $registerService->getTag()); - } + $rectorConfig->singleton($registerService); } if ($this->skip !== []) { $rectorConfig->skip($this->skip); @@ -750,9 +742,12 @@ public function withTypeGuardedClasses(array $typeGuardedClasses): self $this->typeGuardedClasses = $typeGuardedClasses; return $this; } - public function registerService(string $className, ?string $alias = null, ?string $tag = null): self + /** + * @param class-string $className + */ + public function registerService(string $className): self { - $this->registerServices[] = new RegisteredService($className, $alias, $tag); + $this->registerServices[] = $className; return $this; } /** @@ -763,7 +758,7 @@ public function registerService(string $className, ?string $alias = null, ?strin public function registerDecoratingNodeVisitor(string $decoratingNodeVisitorClass): self { Assert::isAOf($decoratingNodeVisitorClass, NodeVisitor::class); - $this->registerServices[] = new RegisteredService($decoratingNodeVisitorClass, null, DecoratingNodeVisitorInterface::class); + $this->registerServices[] = $decoratingNodeVisitorClass; return $this; } public function withDowngradeSets(bool $php84 = \false, bool $php83 = \false, bool $php82 = \false, bool $php81 = \false, bool $php80 = \false, bool $php74 = \false, bool $php73 = \false, bool $php72 = \false, bool $php71 = \false): self diff --git a/src/Console/Output/OutputFormatterCollector.php b/src/Console/Output/OutputFormatterCollector.php index ae64247a45c..b2b37bb91de 100644 --- a/src/Console/Output/OutputFormatterCollector.php +++ b/src/Console/Output/OutputFormatterCollector.php @@ -14,7 +14,7 @@ final class OutputFormatterCollector /** * @param OutputFormatterInterface[] $outputFormatters */ - public function __construct(iterable $outputFormatters) + public function __construct(array $outputFormatters) { foreach ($outputFormatters as $outputFormatter) { $this->outputFormatters[$outputFormatter->getName()] = $outputFormatter; diff --git a/src/DependencyInjection/Laravel/ContainerMemento.php b/src/DependencyInjection/Laravel/ContainerMemento.php deleted file mode 100644 index 73a3d8ef8fb..00000000000 --- a/src/DependencyInjection/Laravel/ContainerMemento.php +++ /dev/null @@ -1,48 +0,0 @@ -tagged($tagToForget); - foreach ($taggedClasses as $taggedClass) { - $container->offsetUnset(get_class($taggedClass)); - } - // 2. forget tagged references - $privatesAccessor = new PrivatesAccessor(); - $privatesAccessor->propertyClosure($container, 'tags', static function (array $tags) use ($tagToForget): array { - unset($tags[$tagToForget]); - return $tags; - }); - } - public static function forgetService(Container $container, string $typeToForget): void - { - // 1. remove the service - $container->offsetUnset($typeToForget); - // 2. remove all tagged rules - $privatesAccessor = new PrivatesAccessor(); - $privatesAccessor->propertyClosure($container, 'tags', static function (array $tags) use ($typeToForget): array { - foreach ($tags as $tagName => $taggedClasses) { - foreach ($taggedClasses as $key => $taggedClass) { - if (is_a($taggedClass, $typeToForget, \true)) { - unset($tags[$tagName][$key]); - } - } - } - return $tags; - }); - } -} diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 89ed057a71d..e951c0af015 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -5,7 +5,6 @@ use RectorPrefix202608\Doctrine\Inflector\Inflector; use RectorPrefix202608\Doctrine\Inflector\Rules\English\InflectorFactory; -use RectorPrefix202608\Illuminate\Container\Container; use PhpParser\Lexer; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; @@ -19,14 +18,12 @@ use Rector\BetterPhpDocParser\Comment\CommentsMerger; use Rector\BetterPhpDocParser\Contract\BasePhpDocNodeVisitorInterface; use Rector\BetterPhpDocParser\Contract\PhpDocParser\PhpDocNodeDecoratorInterface; -use Rector\BetterPhpDocParser\PhpDocNodeMapper; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\ArrayTypePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\CallableTypePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\IntersectionTypeNodePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\TemplatePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\UnionTypeNodePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocParser\ArrayItemClassNameDecorator; -use Rector\BetterPhpDocParser\PhpDocParser\BetterPhpDocParser; use Rector\BetterPhpDocParser\PhpDocParser\ConstExprClassNameDecorator; use Rector\BetterPhpDocParser\PhpDocParser\DoctrineAnnotationDecorator; use Rector\BetterPhpDocParser\PhpDocParser\PhpDocTagGenericUsesDecorator; @@ -40,7 +37,6 @@ use Rector\ChangesReporting\Output\GitHubOutputFormatter; use Rector\ChangesReporting\Output\GitlabOutputFormatter; use Rector\ChangesReporting\Output\JsonOutputFormatter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipper; use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\AliasClassNameImportSkipVoter; use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\ClassLikeNameClassNameImportSkipVoter; use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\FullyQualifiedNameClassNameImportSkipVoter; @@ -50,9 +46,7 @@ use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\UsesClassNameImportSkipVoter; use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; use Rector\Config\RectorConfig; -use Rector\Configuration\ConfigInitializer; use Rector\Configuration\ConfigurationRuleFilter; -use Rector\Configuration\OnlyRuleResolver; use Rector\Configuration\RenamedClassesDataCollector; use Rector\Console\Command\ComposerBasedCommand; use Rector\Console\Command\CustomRuleCommand; @@ -61,12 +55,8 @@ use Rector\Console\Command\SetupCICommand; use Rector\Console\Command\WorkerCommand; use Rector\Console\ConsoleApplication; -use Rector\Console\Output\OutputFormatterCollector; -use Rector\Console\Style\RectorStyle; use Rector\Console\Style\SymfonyStyleFactory; -use Rector\Contract\DependencyInjection\ResettableInterface; use Rector\Contract\PhpParser\DecoratingNodeVisitorInterface; -use Rector\Contract\Rector\RectorInterface; use Rector\NodeDecorator\CreatedByRuleDecorator; use Rector\NodeNameResolver\Contract\NodeNameResolverInterface; use Rector\NodeNameResolver\NodeNameResolver; @@ -95,12 +85,10 @@ use Rector\NodeTypeResolver\NodeTypeResolver\ScalarTypeResolver; use Rector\NodeTypeResolver\NodeTypeResolver\StaticCallMethodCallTypeResolver; use Rector\NodeTypeResolver\NodeTypeResolver\TraitTypeResolver; -use Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; use Rector\Php80\AttributeDecorator\DoctrineConverterAttributeDecorator; use Rector\Php80\AttributeDecorator\SensioParamConverterAttributeDecorator; use Rector\Php80\Contract\ConverterAttributeDecoratorInterface; -use Rector\Php80\NodeManipulator\AttributeGroupNamedArgumentManipulator; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayAnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayItemNodeAnnotationToAttributeMapper; @@ -114,7 +102,6 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PhpParser\Comparing\NodeComparator; use Rector\PhpParser\Node\NodeFactory; -use Rector\PhpParser\NodeTraverser\RectorNodeTraverser; use Rector\PhpParser\NodeVisitor\ArgNodeVisitor; use Rector\PhpParser\NodeVisitor\ArgNotAcceptingClosureNodeVisitor; use Rector\PhpParser\NodeVisitor\AssignedToNodeVisitor; @@ -163,13 +150,10 @@ use Rector\PHPStanStaticTypeMapper\TypeMapper\VoidTypeMapper; use Rector\PostRector\Application\PostFileProcessor; use Rector\Rector\AbstractRector; -use Rector\Reporting\DeprecatedRulesReporter; use Rector\Skipper\Skipper\Skipper; use Rector\Skipper\Skipper\UsedSkipCollector; use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; use Rector\StaticTypeMapper\Contract\PhpParser\PhpParserNodeMapperInterface; -use Rector\StaticTypeMapper\Mapper\PhpParserNodeMapper; -use Rector\StaticTypeMapper\PhpDoc\PhpDocTypeMapper; use Rector\StaticTypeMapper\PhpDocParser\IdentifierPhpDocTypeMapper; use Rector\StaticTypeMapper\PhpDocParser\IntersectionPhpDocTypeMapper; use Rector\StaticTypeMapper\PhpDocParser\NullablePhpDocTypeMapper; @@ -183,7 +167,6 @@ use Rector\StaticTypeMapper\PhpParser\StringNodeMapper; use Rector\StaticTypeMapper\PhpParser\UnionTypeNodeMapper; use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; use RectorPrefix202608\Webmozart\Assert\Assert; final class LazyContainerFactory @@ -260,8 +243,8 @@ public function create(): RectorConfig } private function registerConsole(RectorConfig $rectorConfig): void { - $rectorConfig->singleton(Application::class, static function (Container $container): Application { - $consoleApplication = $container->make(ConsoleApplication::class); + $rectorConfig->singleton(Application::class, static function (RectorConfig $rectorConfig): Application { + $consoleApplication = $rectorConfig->make(ConsoleApplication::class); $commandNamesToHide = ['list', 'completion', 'help', 'worker']; foreach ($commandNamesToHide as $commandNameToHide) { $commandToHide = $consoleApplication->get($commandNameToHide); @@ -269,7 +252,6 @@ private function registerConsole(RectorConfig $rectorConfig): void } return $consoleApplication; }); - $rectorConfig->when(ConsoleApplication::class)->needs('$commands')->giveTagged(Command::class); $rectorConfig->singleton(Inflector::class, static function (): Inflector { $inflectorFactory = new InflectorFactory(); return $inflectorFactory->build(); @@ -281,10 +263,6 @@ private function registerConsole(RectorConfig $rectorConfig): void $rectorConfig->singleton(ListRulesCommand::class); $rectorConfig->singleton(CustomRuleCommand::class); $rectorConfig->singleton(ComposerBasedCommand::class); - $rectorConfig->when(ListRulesCommand::class)->needs('$rectors')->giveTagged(RectorInterface::class); - $rectorConfig->when(ComposerBasedCommand::class)->needs('$rectors')->giveTagged(RectorInterface::class); - $rectorConfig->when(OnlyRuleResolver::class)->needs('$rectors')->giveTagged(RectorInterface::class); - $rectorConfig->when(DeprecatedRulesReporter::class)->needs('$rectors')->giveTagged(RectorInterface::class); } private function registerFileProcessing(RectorConfig $rectorConfig): void { @@ -292,62 +270,50 @@ private function registerFileProcessing(RectorConfig $rectorConfig): void $rectorConfig->singleton(PostFileProcessor::class); // shared state: collects used skips across the skipper, the path skipper and the file processor $rectorConfig->singleton(UsedSkipCollector::class); - $rectorConfig->when(RectorNodeTraverser::class)->needs('$rectors')->giveTagged(RectorInterface::class); - $rectorConfig->when(ConfigInitializer::class)->needs('$rectors')->giveTagged(RectorInterface::class); - $rectorConfig->when(ClassNameImportSkipper::class)->needs('$classNameImportSkipVoters')->giveTagged(ClassNameImportSkipVoterInterface::class); - $rectorConfig->singleton(DynamicSourceLocatorProvider::class, static function (Container $container): DynamicSourceLocatorProvider { - $phpStanServicesFactory = $container->make(PHPStanServicesFactory::class); + $rectorConfig->singleton(DynamicSourceLocatorProvider::class, static function (RectorConfig $rectorConfig): DynamicSourceLocatorProvider { + $phpStanServicesFactory = $rectorConfig->make(PHPStanServicesFactory::class); return $phpStanServicesFactory->createDynamicSourceLocatorProvider(); }); } private function registerCachingAndResettables(RectorConfig $rectorConfig): void { - // resettable - // DynamicSourceLocatorProvider is autotagged on its singleton() call above, - // as RectorConfig autotags ResettableInterface - $rectorConfig->tag(RenamedClassesDataCollector::class, ResettableInterface::class); + // resettable: registering the class makes it discoverable via findByContract(ResettableInterface) + $rectorConfig->singleton(RenamedClassesDataCollector::class); // caching - $rectorConfig->singleton(Cache::class, static function (Container $container): Cache { + $rectorConfig->singleton(Cache::class, static function (RectorConfig $rectorConfig): Cache { /** @var CacheFactory $cacheFactory */ - $cacheFactory = $container->make(CacheFactory::class); + $cacheFactory = $rectorConfig->make(CacheFactory::class); return $cacheFactory->create(); }); } private function registerTypeMappers(RectorConfig $rectorConfig): void { // tagged services - $rectorConfig->when(BetterPhpDocParser::class)->needs('$phpDocNodeDecorators')->giveTagged(PhpDocNodeDecoratorInterface::class); - $rectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container): void { - $arrayTypeMapper->autowire($container->make(PHPStanStaticTypeMapper::class)); + $rectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper) use ($rectorConfig): void { + $arrayTypeMapper->autowire($rectorConfig->make(PHPStanStaticTypeMapper::class)); }); - $rectorConfig->afterResolving(ConditionalTypeForParameterMapper::class, static function (ConditionalTypeForParameterMapper $conditionalTypeForParameterMapper, Container $container): void { - $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); + $rectorConfig->afterResolving(ConditionalTypeForParameterMapper::class, static function (ConditionalTypeForParameterMapper $conditionalTypeForParameterMapper) use ($rectorConfig): void { + $phpStanStaticTypeMapper = $rectorConfig->make(PHPStanStaticTypeMapper::class); $conditionalTypeForParameterMapper->autowire($phpStanStaticTypeMapper); }); - $rectorConfig->afterResolving(ConditionalTypeMapper::class, static function (ConditionalTypeMapper $conditionalTypeMapper, Container $container): void { - $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); + $rectorConfig->afterResolving(ConditionalTypeMapper::class, static function (ConditionalTypeMapper $conditionalTypeMapper) use ($rectorConfig): void { + $phpStanStaticTypeMapper = $rectorConfig->make(PHPStanStaticTypeMapper::class); $conditionalTypeMapper->autowire($phpStanStaticTypeMapper); }); - $rectorConfig->afterResolving(UnionTypeMapper::class, static function (UnionTypeMapper $unionTypeMapper, Container $container): void { - $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); + $rectorConfig->afterResolving(UnionTypeMapper::class, static function (UnionTypeMapper $unionTypeMapper) use ($rectorConfig): void { + $phpStanStaticTypeMapper = $rectorConfig->make(PHPStanStaticTypeMapper::class); $unionTypeMapper->autowire($phpStanStaticTypeMapper); }); - $rectorConfig->when(PHPStanStaticTypeMapper::class)->needs('$typeMappers')->giveTagged(TypeMapperInterface::class); - $rectorConfig->when(PhpDocTypeMapper::class)->needs('$phpDocTypeMappers')->giveTagged(PhpDocTypeMapperInterface::class); - $rectorConfig->when(PhpParserNodeMapper::class)->needs('$phpParserNodeMappers')->giveTagged(PhpParserNodeMapperInterface::class); - $rectorConfig->when(NodeTypeResolver::class)->needs('$nodeTypeResolvers')->giveTagged(NodeTypeResolverInterface::class); } private function registerNodeNameResolvers(RectorConfig $rectorConfig): void { // node name resolvers - $rectorConfig->when(NodeNameResolver::class)->needs('$nodeNameResolvers')->giveTagged(NodeNameResolverInterface::class); - $rectorConfig->when(AttributeGroupNamedArgumentManipulator::class)->needs('$converterAttributeDecorators')->giveTagged(ConverterAttributeDecoratorInterface::class); $this->registerTagged($rectorConfig, self::CONVERTER_ATTRIBUTE_DECORATOR_CLASSES, ConverterAttributeDecoratorInterface::class); } private function registerRectorAutowiring(RectorConfig $rectorConfig): void { - $rectorConfig->afterResolving(AbstractRector::class, static function (AbstractRector $rector, Container $container): void { - $rector->autowire($container->get(NodeNameResolver::class), $container->get(NodeTypeResolver::class), $container->get(SimpleCallableNodeTraverser::class), $container->get(NodeFactory::class), $container->get(Skipper::class), $container->get(NodeComparator::class), $container->get(CurrentFileProvider::class), $container->get(CreatedByRuleDecorator::class), $container->get(ChangedNodeScopeRefresher::class), $container->get(CommentsMerger::class)); + $rectorConfig->afterResolving(AbstractRector::class, static function (AbstractRector $rector) use ($rectorConfig): void { + $rector->autowire($rectorConfig->get(NodeNameResolver::class), $rectorConfig->get(NodeTypeResolver::class), $rectorConfig->get(SimpleCallableNodeTraverser::class), $rectorConfig->get(NodeFactory::class), $rectorConfig->get(Skipper::class), $rectorConfig->get(NodeComparator::class), $rectorConfig->get(CurrentFileProvider::class), $rectorConfig->get(CreatedByRuleDecorator::class), $rectorConfig->get(ChangedNodeScopeRefresher::class), $rectorConfig->get(CommentsMerger::class)); }); $this->registerTagged($rectorConfig, self::PHP_PARSER_NODE_MAPPER_CLASSES, PhpParserNodeMapperInterface::class); $this->registerTagged($rectorConfig, self::PHP_DOC_NODE_DECORATOR_CLASSES, PhpDocNodeDecoratorInterface::class); @@ -363,71 +329,65 @@ private function registerTaggedServices(RectorConfig $rectorConfig): void $this->registerTagged($rectorConfig, self::NODE_TYPE_RESOLVER_CLASSES, NodeTypeResolverInterface::class); $this->registerTagged($rectorConfig, self::OUTPUT_FORMATTER_CLASSES, OutputFormatterInterface::class); $this->registerTagged($rectorConfig, self::CLASS_NAME_IMPORT_SKIPPER_CLASSES, ClassNameImportSkipVoterInterface::class); - $rectorConfig->alias(SymfonyStyle::class, RectorStyle::class); - $rectorConfig->singleton(SymfonyStyle::class, static function (Container $container): SymfonyStyle { - $symfonyStyleFactory = $container->make(SymfonyStyleFactory::class); + $rectorConfig->singleton(SymfonyStyle::class, static function (RectorConfig $rectorConfig): SymfonyStyle { + $symfonyStyleFactory = $rectorConfig->make(SymfonyStyleFactory::class); return $symfonyStyleFactory->create(); }); - $rectorConfig->when(AnnotationToAttributeMapper::class)->needs('$annotationToAttributeMappers')->giveTagged(AnnotationToAttributeMapperInterface::class); - $rectorConfig->when(OutputFormatterCollector::class)->needs('$outputFormatters')->giveTagged(OutputFormatterInterface::class); } private function registerAnnotationToAttributeSetters(RectorConfig $rectorConfig): void { // required-like setter - $rectorConfig->afterResolving(ArrayAnnotationToAttributeMapper::class, static function (ArrayAnnotationToAttributeMapper $arrayAnnotationToAttributeMapper, Container $container): void { - $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); + $rectorConfig->afterResolving(ArrayAnnotationToAttributeMapper::class, static function (ArrayAnnotationToAttributeMapper $arrayAnnotationToAttributeMapper) use ($rectorConfig): void { + $annotationToAttributeMapper = $rectorConfig->make(AnnotationToAttributeMapper::class); $arrayAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); }); - $rectorConfig->afterResolving(ArrayItemNodeAnnotationToAttributeMapper::class, static function (ArrayItemNodeAnnotationToAttributeMapper $arrayItemNodeAnnotationToAttributeMapper, Container $container): void { - $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); + $rectorConfig->afterResolving(ArrayItemNodeAnnotationToAttributeMapper::class, static function (ArrayItemNodeAnnotationToAttributeMapper $arrayItemNodeAnnotationToAttributeMapper) use ($rectorConfig): void { + $annotationToAttributeMapper = $rectorConfig->make(AnnotationToAttributeMapper::class); $arrayItemNodeAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); }); - $rectorConfig->afterResolving(PlainValueParser::class, static function (PlainValueParser $plainValueParser, Container $container): void { - $plainValueParser->autowire($container->make(StaticDoctrineAnnotationParser::class), $container->make(ArrayParser::class)); + $rectorConfig->afterResolving(PlainValueParser::class, static function (PlainValueParser $plainValueParser) use ($rectorConfig): void { + $plainValueParser->autowire($rectorConfig->make(StaticDoctrineAnnotationParser::class), $rectorConfig->make(ArrayParser::class)); }); - $rectorConfig->afterResolving(CurlyListNodeAnnotationToAttributeMapper::class, static function (CurlyListNodeAnnotationToAttributeMapper $curlyListNodeAnnotationToAttributeMapper, Container $container): void { - $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); + $rectorConfig->afterResolving(CurlyListNodeAnnotationToAttributeMapper::class, static function (CurlyListNodeAnnotationToAttributeMapper $curlyListNodeAnnotationToAttributeMapper) use ($rectorConfig): void { + $annotationToAttributeMapper = $rectorConfig->make(AnnotationToAttributeMapper::class); $curlyListNodeAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); }); - $rectorConfig->afterResolving(DoctrineAnnotationAnnotationToAttributeMapper::class, static function (DoctrineAnnotationAnnotationToAttributeMapper $doctrineAnnotationAnnotationToAttributeMapper, Container $container): void { - $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); + $rectorConfig->afterResolving(DoctrineAnnotationAnnotationToAttributeMapper::class, static function (DoctrineAnnotationAnnotationToAttributeMapper $doctrineAnnotationAnnotationToAttributeMapper) use ($rectorConfig): void { + $annotationToAttributeMapper = $rectorConfig->make(AnnotationToAttributeMapper::class); $doctrineAnnotationAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); }); } private function registerNodeVisitorsAndPhpDoc(RectorConfig $rectorConfig): void { - $rectorConfig->when(PHPStanNodeScopeResolver::class)->needs('$decoratingNodeVisitors')->giveTagged(DecoratingNodeVisitorInterface::class); $this->registerTagged($rectorConfig, self::DECORATING_NODE_VISITOR_CLASSES, DecoratingNodeVisitorInterface::class); $this->createPHPStanServices($rectorConfig); - $rectorConfig->when(PhpDocNodeMapper::class)->needs('$phpDocNodeVisitors')->giveTagged(BasePhpDocNodeVisitorInterface::class); // phpdoc-parser - $rectorConfig->singleton(ParserConfig::class, static fn(Container $container): ParserConfig => new ParserConfig(['lines' => \true, 'indexes' => \true, 'comments' => \true])); + $rectorConfig->singleton(ParserConfig::class, static fn(RectorConfig $rectorConfig): ParserConfig => new ParserConfig(['lines' => \true, 'indexes' => \true, 'comments' => \true])); } /** * @param array $classes * @param class-string $tagInterface */ - private function registerTagged(Container $container, array $classes, string $tagInterface): void + private function registerTagged(RectorConfig $rectorConfig, array $classes, string $tagInterface): void { foreach ($classes as $class) { Assert::isAOf($class, $tagInterface); - $container->singleton($class); - $container->tag($class, $tagInterface); + $rectorConfig->singleton($class); } } private function createPHPStanServices(RectorConfig $rectorConfig): void { - $rectorConfig->singleton(Parser::class, static function (Container $container) { - $phpStanServicesFactory = $container->make(PHPStanServicesFactory::class); + $rectorConfig->singleton(Parser::class, static function (RectorConfig $rectorConfig) { + $phpStanServicesFactory = $rectorConfig->make(PHPStanServicesFactory::class); return $phpStanServicesFactory->createPHPStanParser(); }); - $rectorConfig->singleton(Lexer::class, static function (Container $container) { - $phpStanServicesFactory = $container->make(PHPStanServicesFactory::class); + $rectorConfig->singleton(Lexer::class, static function (RectorConfig $rectorConfig) { + $phpStanServicesFactory = $rectorConfig->make(PHPStanServicesFactory::class); return $phpStanServicesFactory->createEmulativeLexer(); }); foreach (self::PUBLIC_PHPSTAN_SERVICE_TYPES as $publicPhpstanServiceType) { - $rectorConfig->singleton($publicPhpstanServiceType, static function (Container $container) use ($publicPhpstanServiceType) { - $phpStanServicesFactory = $container->make(PHPStanServicesFactory::class); + $rectorConfig->singleton($publicPhpstanServiceType, static function (RectorConfig $rectorConfig) use ($publicPhpstanServiceType) { + $phpStanServicesFactory = $rectorConfig->make(PHPStanServicesFactory::class); return $phpStanServicesFactory->getByType($publicPhpstanServiceType); }); } diff --git a/src/NodeNameResolver/NodeNameResolver.php b/src/NodeNameResolver/NodeNameResolver.php index 68026a738d9..f6aa6cad5b8 100644 --- a/src/NodeNameResolver/NodeNameResolver.php +++ b/src/NodeNameResolver/NodeNameResolver.php @@ -41,7 +41,7 @@ final class NodeNameResolver * @var NodeNameResolverInterface[] * @readonly */ - private iterable $nodeNameResolvers = []; + private array $nodeNameResolvers; /** * Used to check if a string might contain a regex or fnmatch pattern * @var mixed[] @@ -54,7 +54,7 @@ final class NodeNameResolver /** * @param NodeNameResolverInterface[] $nodeNameResolvers */ - public function __construct(ClassNaming $classNaming, CallAnalyzer $callAnalyzer, iterable $nodeNameResolvers = []) + public function __construct(ClassNaming $classNaming, CallAnalyzer $callAnalyzer, array $nodeNameResolvers) { $this->classNaming = $classNaming; $this->callAnalyzer = $callAnalyzer; diff --git a/src/NodeTypeResolver/NodeTypeResolver.php b/src/NodeTypeResolver/NodeTypeResolver.php index 1634e3bb053..016d7ce9e93 100644 --- a/src/NodeTypeResolver/NodeTypeResolver.php +++ b/src/NodeTypeResolver/NodeTypeResolver.php @@ -98,7 +98,7 @@ final class NodeTypeResolver /** * @param NodeTypeResolverInterface[] $nodeTypeResolvers */ - public function __construct(ObjectTypeSpecifier $objectTypeSpecifier, ClassAnalyzer $classAnalyzer, \Rector\NodeTypeResolver\NodeTypeCorrector $nodeTypeCorrector, ReflectionProvider $reflectionProvider, RenamedClassesDataCollector $renamedClassesDataCollector, NodeNameResolver $nodeNameResolver, PhpVersionProvider $phpVersionProvider, iterable $nodeTypeResolvers) + public function __construct(ObjectTypeSpecifier $objectTypeSpecifier, ClassAnalyzer $classAnalyzer, \Rector\NodeTypeResolver\NodeTypeCorrector $nodeTypeCorrector, ReflectionProvider $reflectionProvider, RenamedClassesDataCollector $renamedClassesDataCollector, NodeNameResolver $nodeNameResolver, PhpVersionProvider $phpVersionProvider, array $nodeTypeResolvers) { $this->objectTypeSpecifier = $objectTypeSpecifier; $this->classAnalyzer = $classAnalyzer; diff --git a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index 3a13d2383e7..2fa33bf83df 100644 --- a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -149,7 +149,7 @@ final class PHPStanNodeScopeResolver /** * @param DecoratingNodeVisitorInterface[] $decoratingNodeVisitors */ - public function __construct(NodeScopeResolver $nodeScopeResolver, ReflectionProvider $reflectionProvider, iterable $decoratingNodeVisitors, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, PrivatesAccessor $privatesAccessor, NodeNameResolver $nodeNameResolver, ClassAnalyzer $classAnalyzer) + public function __construct(NodeScopeResolver $nodeScopeResolver, ReflectionProvider $reflectionProvider, array $decoratingNodeVisitors, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, PrivatesAccessor $privatesAccessor, NodeNameResolver $nodeNameResolver, ClassAnalyzer $classAnalyzer) { $this->nodeScopeResolver = $nodeScopeResolver; $this->reflectionProvider = $reflectionProvider; diff --git a/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php b/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php index cca6934c116..7fd828ebe92 100644 --- a/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php +++ b/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php @@ -13,11 +13,11 @@ final class PhpParserNodeMapper * @var PhpParserNodeMapperInterface[] * @readonly */ - private iterable $phpParserNodeMappers; + private array $phpParserNodeMappers; /** * @param PhpParserNodeMapperInterface[] $phpParserNodeMappers */ - public function __construct(iterable $phpParserNodeMappers) + public function __construct(array $phpParserNodeMappers) { $this->phpParserNodeMappers = $phpParserNodeMappers; } diff --git a/src/Testing/PHPUnit/AbstractRectorTestCase.php b/src/Testing/PHPUnit/AbstractRectorTestCase.php index 0a8f619af18..91647c46de4 100644 --- a/src/Testing/PHPUnit/AbstractRectorTestCase.php +++ b/src/Testing/PHPUnit/AbstractRectorTestCase.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\Testing\PHPUnit; -use RectorPrefix202608\Illuminate\Container\RewindableGenerator; use Iterator; use RectorPrefix202608\Nette\Utils\FileSystem; use RectorPrefix202608\Nette\Utils\Strings; @@ -17,18 +16,15 @@ use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Contract\DependencyInjection\ResettableInterface; use Rector\Contract\Rector\RectorInterface; -use Rector\DependencyInjection\Laravel\ContainerMemento; use Rector\Exception\ShouldNotHappenException; use Rector\NodeTypeResolver\DependencyInjection\PHPStanServicesFactory; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; use Rector\PhpParser\NodeTraverser\RectorNodeTraverser; -use Rector\Rector\AbstractRector; use Rector\Testing\Contract\RectorTestInterface; use Rector\Testing\Fixture\FixtureFileFinder; use Rector\Testing\Fixture\FixtureFileUpdater; use Rector\Testing\Fixture\FixtureSplitter; use Rector\Testing\PHPUnit\ValueObject\RectorTestResult; -use Rector\Util\Reflection\PrivatesAccessor; use Rector\ValueObject\PhpVersion; /** * @api used by public @@ -77,8 +73,7 @@ protected function setUp(): void } $rectorConfig->make(InstalledPackageResolver::class)->changeComposerJsonFilePath($this->provideComposerJsonFilePath()); // reset - /** @var RewindableGenerator $resettables */ - $resettables = $rectorConfig->tagged(ResettableInterface::class); + $resettables = $rectorConfig->findByContract(ResettableInterface::class); foreach ($resettables as $resettable) { /** @var ResettableInterface $resettable */ $resettable->reset(); @@ -86,10 +81,10 @@ protected function setUp(): void $this->forgetRectorsRules(); $rectorConfig->resetRuleConfigurations(); // this has to be always empty, so we can add new rules with their configuration - $this->assertEmpty($rectorConfig->tagged(RectorInterface::class)); + $this->assertEmpty($rectorConfig->findByContract(RectorInterface::class)); $this->bootFromConfigFiles([$configFile]); - $rectorsGenerator = $rectorConfig->tagged(RectorInterface::class); - $rectors = $rectorsGenerator instanceof RewindableGenerator ? iterator_to_array($rectorsGenerator->getIterator()) : []; + // no rules at all, e.g. in case of only post rector run, yields an empty array + $rectors = $rectorConfig->findByContract(RectorInterface::class); /** @var RectorNodeTraverser $rectorNodeTraverser */ $rectorNodeTraverser = $rectorConfig->make(RectorNodeTraverser::class); $rectorNodeTraverser->refreshPhpRectors($rectors); @@ -160,22 +155,8 @@ protected function doTestFileExpectingWarningAboutRuleApplied(string $fixtureFil } private function forgetRectorsRules(): void { - $rectorConfig = self::getContainer(); - // 1. forget tagged services - ContainerMemento::forgetTag($rectorConfig, RectorInterface::class); - // 2. remove after binding too, to avoid setting configuration over and over again - $privatesAccessor = new PrivatesAccessor(); - $privatesAccessor->propertyClosure($rectorConfig, 'afterResolvingCallbacks', static function (array $afterResolvingCallbacks): array { - foreach (array_keys($afterResolvingCallbacks) as $key) { - if ($key === AbstractRector::class) { - continue; - } - if (is_a($key, RectorInterface::class, \true)) { - unset($afterResolvingCallbacks[$key]); - } - } - return $afterResolvingCallbacks; - }); + // forget the rules and their per-rule configuration callbacks, so a re-boot starts clean + self::getContainer()->forgetByContract(RectorInterface::class); } private function doTestFileMatchesExpectedContent(string $originalFilePath, string $inputFileContents, string $expectedFileContents, string $fixtureFilePath, bool $includeFixtureDirectoryAsSource): void { diff --git a/src/Util/Reflection/PrivatesAccessor.php b/src/Util/Reflection/PrivatesAccessor.php index 9cceebe4ce0..2136485e025 100644 --- a/src/Util/Reflection/PrivatesAccessor.php +++ b/src/Util/Reflection/PrivatesAccessor.php @@ -12,16 +12,6 @@ */ final class PrivatesAccessor { - /** - * @param callable(mixed $value): mixed $closure - */ - public function propertyClosure(object $object, string $propertyName, callable $closure): void - { - $property = $this->getPrivateProperty($object, $propertyName); - // modify value - $property = $closure($property); - $this->setPrivateProperty($object, $propertyName, $property); - } /** * @param object|class-string $object * @param mixed[] $arguments diff --git a/src/functions/node_helper.php b/src/functions/node_helper.php index 6750ad0f88e..5532c52e65a 100644 --- a/src/functions/node_helper.php +++ b/src/functions/node_helper.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace RectorPrefix202608; -use RectorPrefix202608\Illuminate\Container\Container; use PhpParser\Node; use PhpParser\PrettyPrinter\Standard; use Rector\Console\Style\SymfonyStyleFactory; use Rector\PhpParser\Node\FileNode; use Rector\Util\NodePrinter; +use Rector\Util\Reflection\PrivatesAccessor; use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; if (!\function_exists('print_node')) { /** @@ -33,7 +33,8 @@ function print_node($node): void */ function dump_node($node): void { - $rectorStyle = Container::getInstance()->make(SymfonyStyleFactory::class)->create(); + $symfonyStyleFactory = new SymfonyStyleFactory(new PrivatesAccessor()); + $rectorStyle = $symfonyStyleFactory->create(); // we turn up the verbosity so it's visible in tests overriding the // default which is to be quite during tests $rectorStyle->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); diff --git a/vendor/autoload.php b/vendor/autoload.php index ac65aa92a38..30433fd33a3 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit640664dbd40b7ff859fac59f57f58953::getLoader(); +return ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index a4cfdf8d53e..d17e0e0c741 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -402,8 +402,6 @@ 'RectorPrefix202608\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', 'RectorPrefix202608\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', 'RectorPrefix202608\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202608\\DelayedTargetValidation' => $vendorDir . '/symfony/polyfill-php85/Resources/stubs/DelayedTargetValidation.php', - 'RectorPrefix202608\\Deprecated' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', 'RectorPrefix202608\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/src/CachedWordInflector.php', 'RectorPrefix202608\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/src/GenericLanguageInflectorFactory.php', 'RectorPrefix202608\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/src/Inflector.php', @@ -527,179 +525,6 @@ 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\ParallelisationResult' => $vendorDir . '/fidry/cpu-core-counter/src/ParallelisationResult.php', - 'RectorPrefix202608\\Filter\\FilterException' => $vendorDir . '/symfony/polyfill-php85/Resources/stubs/Filter/FilterException.php', - 'RectorPrefix202608\\Filter\\FilterFailedException' => $vendorDir . '/symfony/polyfill-php85/Resources/stubs/Filter/FilterFailedException.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Auth' => $vendorDir . '/illuminate/container/Attributes/Auth.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Authenticated' => $vendorDir . '/illuminate/container/Attributes/Authenticated.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Bind' => $vendorDir . '/illuminate/container/Attributes/Bind.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Cache' => $vendorDir . '/illuminate/container/Attributes/Cache.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Config' => $vendorDir . '/illuminate/container/Attributes/Config.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Context' => $vendorDir . '/illuminate/container/Attributes/Context.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\CurrentUser' => $vendorDir . '/illuminate/container/Attributes/CurrentUser.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\DB' => $vendorDir . '/illuminate/container/Attributes/DB.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Database' => $vendorDir . '/illuminate/container/Attributes/Database.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Give' => $vendorDir . '/illuminate/container/Attributes/Give.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Log' => $vendorDir . '/illuminate/container/Attributes/Log.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\RouteParameter' => $vendorDir . '/illuminate/container/Attributes/RouteParameter.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Scoped' => $vendorDir . '/illuminate/container/Attributes/Scoped.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Singleton' => $vendorDir . '/illuminate/container/Attributes/Singleton.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Storage' => $vendorDir . '/illuminate/container/Attributes/Storage.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Tag' => $vendorDir . '/illuminate/container/Attributes/Tag.php', - 'RectorPrefix202608\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202608\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', - 'RectorPrefix202608\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202608\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202608\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202608\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldRescue' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldRescue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Concurrency\\Driver' => $vendorDir . '/illuminate/contracts/Concurrency/Driver.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\ContextualAttribute' => $vendorDir . '/illuminate/contracts/Container/ContextualAttribute.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\SelfBuilding' => $vendorDir . '/illuminate/contracts/Container/SelfBuilding.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\ConcurrencyErrorDetector' => $vendorDir . '/illuminate/contracts/Database/ConcurrencyErrorDetector.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\ComparesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/ComparesCastableAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\LostConnectionDetector' => $vendorDir . '/illuminate/contracts/Database/LostConnectionDetector.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Debug\\ShouldntReport' => $vendorDir . '/illuminate/contracts/Debug/ShouldntReport.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\JsonSchema\\JsonSchema' => $vendorDir . '/illuminate/contracts/JsonSchema/JsonSchema.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Log\\ContextLogProcessor' => $vendorDir . '/illuminate/contracts/Log/ContextLogProcessor.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\HasOnceHash' => $vendorDir . '/illuminate/contracts/Support/HasOnceHash.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\CompilableRules' => $vendorDir . '/illuminate/contracts/Validation/CompilableRules.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', 'RectorPrefix202608\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', 'RectorPrefix202608\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', 'RectorPrefix202608\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', @@ -754,7 +579,6 @@ 'RectorPrefix202608\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', 'RectorPrefix202608\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', 'RectorPrefix202608\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202608\\NoDiscard' => $vendorDir . '/symfony/polyfill-php85/Resources/stubs/NoDiscard.php', 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', @@ -779,12 +603,6 @@ 'RectorPrefix202608\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', 'RectorPrefix202608\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', 'RectorPrefix202608\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202608\\Pdo\\Dblib' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Pdo/Dblib.php', - 'RectorPrefix202608\\Pdo\\Firebird' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Pdo/Firebird.php', - 'RectorPrefix202608\\Pdo\\Mysql' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Pdo/Mysql.php', - 'RectorPrefix202608\\Pdo\\Odbc' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Pdo/Odbc.php', - 'RectorPrefix202608\\Pdo\\Pgsql' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Pdo/Pgsql.php', - 'RectorPrefix202608\\Pdo\\Sqlite' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Pdo/Sqlite.php', 'RectorPrefix202608\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', 'RectorPrefix202608\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', 'RectorPrefix202608\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', @@ -796,9 +614,6 @@ 'RectorPrefix202608\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', 'RectorPrefix202608\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', 'RectorPrefix202608\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', - 'RectorPrefix202608\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202608\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202608\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', 'RectorPrefix202608\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', 'RectorPrefix202608\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', 'RectorPrefix202608\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', @@ -878,8 +693,6 @@ 'RectorPrefix202608\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', 'RectorPrefix202608\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', 'RectorPrefix202608\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202608\\ReflectionConstant' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php', - 'RectorPrefix202608\\RoundingMode' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/RoundingMode.php', 'RectorPrefix202608\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', 'RectorPrefix202608\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', 'RectorPrefix202608\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', @@ -1400,7 +1213,6 @@ 'Rector\\Config\\Level\\TypeDeclarationDocblocksLevel' => $baseDir . '/src/Config/Level/TypeDeclarationDocblocksLevel.php', 'Rector\\Config\\Level\\TypeDeclarationLevel' => $baseDir . '/src/Config/Level/TypeDeclarationLevel.php', 'Rector\\Config\\RectorConfig' => $baseDir . '/src/Config/RectorConfig.php', - 'Rector\\Config\\RegisteredService' => $baseDir . '/src/Config/RegisteredService.php', 'Rector\\Configuration\\ConfigInitializer' => $baseDir . '/src/Configuration/ConfigInitializer.php', 'Rector\\Configuration\\ConfigurationFactory' => $baseDir . '/src/Configuration/ConfigurationFactory.php', 'Rector\\Configuration\\ConfigurationRuleFilter' => $baseDir . '/src/Configuration/ConfigurationRuleFilter.php', @@ -1541,7 +1353,6 @@ 'Rector\\DeadCode\\UselessIfCondBeforeForeachDetector' => $baseDir . '/rules/DeadCode/UselessIfCondBeforeForeachDetector.php', 'Rector\\DeadCode\\ValueObject\\BinaryToVersionCompareCondition' => $baseDir . '/rules/DeadCode/ValueObject/BinaryToVersionCompareCondition.php', 'Rector\\DeadCode\\ValueObject\\VersionCompareCondition' => $baseDir . '/rules/DeadCode/ValueObject/VersionCompareCondition.php', - 'Rector\\DependencyInjection\\Laravel\\ContainerMemento' => $baseDir . '/src/DependencyInjection/Laravel/ContainerMemento.php', 'Rector\\DependencyInjection\\LazyContainerFactory' => $baseDir . '/src/DependencyInjection/LazyContainerFactory.php', 'Rector\\DependencyInjection\\PHPStan\\RichParserFactory' => $baseDir . '/src/DependencyInjection/PHPStan/RichParserFactory.php', 'Rector\\DependencyInjection\\RectorContainerFactory' => $baseDir . '/src/DependencyInjection/RectorContainerFactory.php', @@ -3016,8 +2827,6 @@ 'Rector\\Visibility\\ValueObject\\ChangeConstantVisibility' => $baseDir . '/rules/Visibility/ValueObject/ChangeConstantVisibility.php', 'Rector\\Visibility\\ValueObject\\ChangeMethodVisibility' => $baseDir . '/rules/Visibility/ValueObject/ChangeMethodVisibility.php', 'Symfony\\Polyfill\\Intl\\Grapheme\\Grapheme' => $vendorDir . '/symfony/polyfill-intl-grapheme/Grapheme.php', - 'Symfony\\Polyfill\\Php84\\Php84' => $vendorDir . '/symfony/polyfill-php84/Php84.php', - 'Symfony\\Polyfill\\Php85\\Php85' => $vendorDir . '/symfony/polyfill-php85/Php85.php', 'Symplify\\RuleDocGenerator\\Contract\\Category\\CategoryInfererInterface' => $vendorDir . '/symplify/rule-doc-generator-contracts/src/Contract/Category/CategoryInfererInterface.php', 'Symplify\\RuleDocGenerator\\Contract\\CodeSampleInterface' => $vendorDir . '/symplify/rule-doc-generator-contracts/src/Contract/CodeSampleInterface.php', 'Symplify\\RuleDocGenerator\\Contract\\ConfigurableRuleInterface' => $vendorDir . '/symplify/rule-doc-generator-contracts/src/Contract/ConfigurableRuleInterface.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 02dbe93e7e1..357d5c9b238 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -10,7 +10,5 @@ '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', - '9d2b9fc6db0f153a0a149fefb182415e' => $vendorDir . '/symfony/polyfill-php84/bootstrap.php', - '606a39d89246991a373564698c2d8383' => $vendorDir . '/symfony/polyfill-php85/bootstrap.php', '30bca7fff093e8069bed7c55247e2bf8' => $baseDir . '/src/functions/node_helper.php', ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 2ab8c4818fb..8271f82a041 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -7,8 +7,6 @@ return array( 'Symplify\\RuleDocGenerator\\' => array($vendorDir . '/symplify/rule-doc-generator-contracts/src'), - 'Symfony\\Polyfill\\Php85\\' => array($vendorDir . '/symfony/polyfill-php85'), - 'Symfony\\Polyfill\\Php84\\' => array($vendorDir . '/symfony/polyfill-php84'), 'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'), 'Rector\\Utils\\PHPStan\\' => array($baseDir . '/utils/phpstan/src'), 'Rector\\Utils\\' => array($baseDir . '/utils'), @@ -33,13 +31,10 @@ 'RectorPrefix202608\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), 'RectorPrefix202608\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), 'RectorPrefix202608\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), - 'RectorPrefix202608\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), 'RectorPrefix202608\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), 'RectorPrefix202608\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), 'RectorPrefix202608\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), 'RectorPrefix202608\\Nette\\' => array($vendorDir . '/nette/utils/src'), - 'RectorPrefix202608\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), - 'RectorPrefix202608\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), 'RectorPrefix202608\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), 'RectorPrefix202608\\Entropy\\' => array($vendorDir . '/entropy/entropy/src'), diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 9ce3ea676af..83e875e27eb 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit640664dbd40b7ff859fac59f57f58953 +class ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit640664dbd40b7ff859fac59f57f58953', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit640664dbd40b7ff859fac59f57f58953', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit640664dbd40b7ff859fac59f57f58953::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit640664dbd40b7ff859fac59f57f58953::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$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 aecb5c64607..cadd581602e 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,15 +4,13 @@ namespace Composer\Autoload; -class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 +class ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', - '9d2b9fc6db0f153a0a149fefb182415e' => __DIR__ . '/..' . '/symfony/polyfill-php84/bootstrap.php', - '606a39d89246991a373564698c2d8383' => __DIR__ . '/..' . '/symfony/polyfill-php85/bootstrap.php', '30bca7fff093e8069bed7c55247e2bf8' => __DIR__ . '/../..' . '/src/functions/node_helper.php', ); @@ -20,8 +18,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'S' => array ( 'Symplify\\RuleDocGenerator\\' => 26, - 'Symfony\\Polyfill\\Php85\\' => 23, - 'Symfony\\Polyfill\\Php84\\' => 23, 'Symfony\\Polyfill\\Intl\\Grapheme\\' => 31, ), 'R' => @@ -49,13 +45,10 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'RectorPrefix202608\\React\\Dns\\' => 29, 'RectorPrefix202608\\React\\ChildProcess\\' => 38, 'RectorPrefix202608\\React\\Cache\\' => 31, - 'RectorPrefix202608\\Psr\\SimpleCache\\' => 35, 'RectorPrefix202608\\Psr\\Log\\' => 27, 'RectorPrefix202608\\Psr\\Container\\' => 33, 'RectorPrefix202608\\OndraM\\CiDetector\\' => 37, 'RectorPrefix202608\\Nette\\' => 25, - 'RectorPrefix202608\\Illuminate\\Contracts\\' => 40, - 'RectorPrefix202608\\Illuminate\\Container\\' => 40, 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\' => 40, 'RectorPrefix202608\\Evenement\\' => 29, 'RectorPrefix202608\\Entropy\\' => 27, @@ -77,14 +70,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 array ( 0 => __DIR__ . '/..' . '/symplify/rule-doc-generator-contracts/src', ), - 'Symfony\\Polyfill\\Php85\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php85', - ), - 'Symfony\\Polyfill\\Php84\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php84', - ), 'Symfony\\Polyfill\\Intl\\Grapheme\\' => array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme', @@ -187,10 +172,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 array ( 0 => __DIR__ . '/..' . '/react/cache/src', ), - 'RectorPrefix202608\\Psr\\SimpleCache\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/simple-cache/src', - ), 'RectorPrefix202608\\Psr\\Log\\' => array ( 0 => __DIR__ . '/..' . '/psr/log/src', @@ -207,14 +188,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 array ( 0 => __DIR__ . '/..' . '/nette/utils/src', ), - 'RectorPrefix202608\\Illuminate\\Contracts\\' => - array ( - 0 => __DIR__ . '/..' . '/illuminate/contracts', - ), - 'RectorPrefix202608\\Illuminate\\Container\\' => - array ( - 0 => __DIR__ . '/..' . '/illuminate/container', - ), 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\' => array ( 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src', @@ -654,8 +627,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'RectorPrefix202608\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', 'RectorPrefix202608\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', 'RectorPrefix202608\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202608\\DelayedTargetValidation' => __DIR__ . '/..' . '/symfony/polyfill-php85/Resources/stubs/DelayedTargetValidation.php', - 'RectorPrefix202608\\Deprecated' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', 'RectorPrefix202608\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/CachedWordInflector.php', 'RectorPrefix202608\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/GenericLanguageInflectorFactory.php', 'RectorPrefix202608\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/src/Inflector.php', @@ -779,179 +750,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\ParallelisationResult' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/ParallelisationResult.php', - 'RectorPrefix202608\\Filter\\FilterException' => __DIR__ . '/..' . '/symfony/polyfill-php85/Resources/stubs/Filter/FilterException.php', - 'RectorPrefix202608\\Filter\\FilterFailedException' => __DIR__ . '/..' . '/symfony/polyfill-php85/Resources/stubs/Filter/FilterFailedException.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Auth' => __DIR__ . '/..' . '/illuminate/container/Attributes/Auth.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Authenticated' => __DIR__ . '/..' . '/illuminate/container/Attributes/Authenticated.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Bind' => __DIR__ . '/..' . '/illuminate/container/Attributes/Bind.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Cache' => __DIR__ . '/..' . '/illuminate/container/Attributes/Cache.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Config' => __DIR__ . '/..' . '/illuminate/container/Attributes/Config.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Context' => __DIR__ . '/..' . '/illuminate/container/Attributes/Context.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\CurrentUser' => __DIR__ . '/..' . '/illuminate/container/Attributes/CurrentUser.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\DB' => __DIR__ . '/..' . '/illuminate/container/Attributes/DB.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Database' => __DIR__ . '/..' . '/illuminate/container/Attributes/Database.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Give' => __DIR__ . '/..' . '/illuminate/container/Attributes/Give.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Log' => __DIR__ . '/..' . '/illuminate/container/Attributes/Log.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\RouteParameter' => __DIR__ . '/..' . '/illuminate/container/Attributes/RouteParameter.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Scoped' => __DIR__ . '/..' . '/illuminate/container/Attributes/Scoped.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Singleton' => __DIR__ . '/..' . '/illuminate/container/Attributes/Singleton.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Storage' => __DIR__ . '/..' . '/illuminate/container/Attributes/Storage.php', - 'RectorPrefix202608\\Illuminate\\Container\\Attributes\\Tag' => __DIR__ . '/..' . '/illuminate/container/Attributes/Tag.php', - 'RectorPrefix202608\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202608\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', - 'RectorPrefix202608\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202608\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202608\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202608\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Broadcasting\\ShouldRescue' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldRescue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Concurrency\\Driver' => __DIR__ . '/..' . '/illuminate/contracts/Concurrency/Driver.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\ContextualAttribute' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualAttribute.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Container\\SelfBuilding' => __DIR__ . '/..' . '/illuminate/contracts/Container/SelfBuilding.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\ConcurrencyErrorDetector' => __DIR__ . '/..' . '/illuminate/contracts/Database/ConcurrencyErrorDetector.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\ComparesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/ComparesCastableAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\LostConnectionDetector' => __DIR__ . '/..' . '/illuminate/contracts/Database/LostConnectionDetector.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Debug\\ShouldntReport' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ShouldntReport.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\JsonSchema\\JsonSchema' => __DIR__ . '/..' . '/illuminate/contracts/JsonSchema/JsonSchema.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Log\\ContextLogProcessor' => __DIR__ . '/..' . '/illuminate/contracts/Log/ContextLogProcessor.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\HasOnceHash' => __DIR__ . '/..' . '/illuminate/contracts/Support/HasOnceHash.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\CompilableRules' => __DIR__ . '/..' . '/illuminate/contracts/Validation/CompilableRules.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', - 'RectorPrefix202608\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', 'RectorPrefix202608\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', 'RectorPrefix202608\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', 'RectorPrefix202608\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', @@ -1006,7 +804,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'RectorPrefix202608\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', 'RectorPrefix202608\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', 'RectorPrefix202608\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202608\\NoDiscard' => __DIR__ . '/..' . '/symfony/polyfill-php85/Resources/stubs/NoDiscard.php', 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', @@ -1031,12 +828,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'RectorPrefix202608\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', 'RectorPrefix202608\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', 'RectorPrefix202608\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202608\\Pdo\\Dblib' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Pdo/Dblib.php', - 'RectorPrefix202608\\Pdo\\Firebird' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Pdo/Firebird.php', - 'RectorPrefix202608\\Pdo\\Mysql' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Pdo/Mysql.php', - 'RectorPrefix202608\\Pdo\\Odbc' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Pdo/Odbc.php', - 'RectorPrefix202608\\Pdo\\Pgsql' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Pdo/Pgsql.php', - 'RectorPrefix202608\\Pdo\\Sqlite' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Pdo/Sqlite.php', 'RectorPrefix202608\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', 'RectorPrefix202608\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', 'RectorPrefix202608\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', @@ -1048,9 +839,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'RectorPrefix202608\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', 'RectorPrefix202608\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', 'RectorPrefix202608\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', - 'RectorPrefix202608\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202608\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202608\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', 'RectorPrefix202608\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', 'RectorPrefix202608\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', 'RectorPrefix202608\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', @@ -1130,8 +918,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'RectorPrefix202608\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', 'RectorPrefix202608\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', 'RectorPrefix202608\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202608\\ReflectionConstant' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php', - 'RectorPrefix202608\\RoundingMode' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/RoundingMode.php', 'RectorPrefix202608\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', 'RectorPrefix202608\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', 'RectorPrefix202608\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', @@ -1652,7 +1438,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'Rector\\Config\\Level\\TypeDeclarationDocblocksLevel' => __DIR__ . '/../..' . '/src/Config/Level/TypeDeclarationDocblocksLevel.php', 'Rector\\Config\\Level\\TypeDeclarationLevel' => __DIR__ . '/../..' . '/src/Config/Level/TypeDeclarationLevel.php', 'Rector\\Config\\RectorConfig' => __DIR__ . '/../..' . '/src/Config/RectorConfig.php', - 'Rector\\Config\\RegisteredService' => __DIR__ . '/../..' . '/src/Config/RegisteredService.php', 'Rector\\Configuration\\ConfigInitializer' => __DIR__ . '/../..' . '/src/Configuration/ConfigInitializer.php', 'Rector\\Configuration\\ConfigurationFactory' => __DIR__ . '/../..' . '/src/Configuration/ConfigurationFactory.php', 'Rector\\Configuration\\ConfigurationRuleFilter' => __DIR__ . '/../..' . '/src/Configuration/ConfigurationRuleFilter.php', @@ -1793,7 +1578,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'Rector\\DeadCode\\UselessIfCondBeforeForeachDetector' => __DIR__ . '/../..' . '/rules/DeadCode/UselessIfCondBeforeForeachDetector.php', 'Rector\\DeadCode\\ValueObject\\BinaryToVersionCompareCondition' => __DIR__ . '/../..' . '/rules/DeadCode/ValueObject/BinaryToVersionCompareCondition.php', 'Rector\\DeadCode\\ValueObject\\VersionCompareCondition' => __DIR__ . '/../..' . '/rules/DeadCode/ValueObject/VersionCompareCondition.php', - 'Rector\\DependencyInjection\\Laravel\\ContainerMemento' => __DIR__ . '/../..' . '/src/DependencyInjection/Laravel/ContainerMemento.php', 'Rector\\DependencyInjection\\LazyContainerFactory' => __DIR__ . '/../..' . '/src/DependencyInjection/LazyContainerFactory.php', 'Rector\\DependencyInjection\\PHPStan\\RichParserFactory' => __DIR__ . '/../..' . '/src/DependencyInjection/PHPStan/RichParserFactory.php', 'Rector\\DependencyInjection\\RectorContainerFactory' => __DIR__ . '/../..' . '/src/DependencyInjection/RectorContainerFactory.php', @@ -3268,8 +3052,6 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 'Rector\\Visibility\\ValueObject\\ChangeConstantVisibility' => __DIR__ . '/../..' . '/rules/Visibility/ValueObject/ChangeConstantVisibility.php', 'Rector\\Visibility\\ValueObject\\ChangeMethodVisibility' => __DIR__ . '/../..' . '/rules/Visibility/ValueObject/ChangeMethodVisibility.php', 'Symfony\\Polyfill\\Intl\\Grapheme\\Grapheme' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/Grapheme.php', - 'Symfony\\Polyfill\\Php84\\Php84' => __DIR__ . '/..' . '/symfony/polyfill-php84/Php84.php', - 'Symfony\\Polyfill\\Php85\\Php85' => __DIR__ . '/..' . '/symfony/polyfill-php85/Php85.php', 'Symplify\\RuleDocGenerator\\Contract\\Category\\CategoryInfererInterface' => __DIR__ . '/..' . '/symplify/rule-doc-generator-contracts/src/Contract/Category/CategoryInfererInterface.php', 'Symplify\\RuleDocGenerator\\Contract\\CodeSampleInterface' => __DIR__ . '/..' . '/symplify/rule-doc-generator-contracts/src/Contract/CodeSampleInterface.php', 'Symplify\\RuleDocGenerator\\Contract\\ConfigurableRuleInterface' => __DIR__ . '/..' . '/symplify/rule-doc-generator-contracts/src/Contract/ConfigurableRuleInterface.php', @@ -3288,9 +3070,9 @@ class ComposerStaticInit640664dbd40b7ff859fac59f57f58953 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit640664dbd40b7ff859fac59f57f58953::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit640664dbd40b7ff859fac59f57f58953::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit640664dbd40b7ff859fac59f57f58953::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 085af94a6ac..612acc41654 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -390,17 +390,17 @@ }, { "name": "entropy\/entropy", - "version": "0.4.6", - "version_normalized": "0.4.6.0", + "version": "0.4.9", + "version_normalized": "0.4.9.0", "source": { "type": "git", "url": "https:\/\/github.com\/TomasVotruba\/entropy.git", - "reference": "415f69258150409db7c36aa747923e28aa53e9f6" + "reference": "856fea65681d3fe0fb17b947ae0eacef895dd407" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/415f69258150409db7c36aa747923e28aa53e9f6", - "reference": "415f69258150409db7c36aa747923e28aa53e9f6", + "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/856fea65681d3fe0fb17b947ae0eacef895dd407", + "reference": "856fea65681d3fe0fb17b947ae0eacef895dd407", "shasum": "" }, "require": { @@ -422,7 +422,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-06-20T10:04:38+00:00", + "time": "2026-08-22T21:35:13+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -437,7 +437,7 @@ "description": "Entropy framework", "support": { "issues": "https:\/\/github.com\/TomasVotruba\/entropy\/issues", - "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.6" + "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.9" }, "install-path": "..\/entropy\/entropy" }, @@ -555,124 +555,6 @@ ], "install-path": "..\/fidry\/cpu-core-counter" }, - { - "name": "illuminate\/container", - "version": "v12.39.0", - "version_normalized": "12.39.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/illuminate\/container.git", - "reference": "17ec6c2f741b11564420acc737dea9334d69988c" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/illuminate\/container\/zipball\/17ec6c2f741b11564420acc737dea9334d69988c", - "reference": "17ec6c2f741b11564420acc737dea9334d69988c", - "shasum": "" - }, - "require": { - "illuminate\/contracts": "^12.0", - "php": "^8.2", - "psr\/container": "^1.1.1|^2.0.1", - "symfony\/polyfill-php84": "^1.33", - "symfony\/polyfill-php85": "^1.33" - }, - "provide": { - "psr\/container-implementation": "1.1|2.0" - }, - "suggest": { - "illuminate\/auth": "Required to use the Auth attribute", - "illuminate\/cache": "Required to use the Cache attribute", - "illuminate\/config": "Required to use the Config attribute", - "illuminate\/database": "Required to use the DB attribute", - "illuminate\/filesystem": "Required to use the Storage attribute", - "illuminate\/log": "Required to use the Log or Context attributes" - }, - "time": "2025-11-14T15:29:05+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - }, - "patches_applied": [ - "https:\/\/raw.githubusercontent.com\/rectorphp\/vendor-patches\/main\/patches\/illuminate-container-container-php.patch" - ] - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202608\\Illuminate\\Container\\": "" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Container package.", - "homepage": "https:\/\/laravel.com", - "support": { - "issues": "https:\/\/github.com\/laravel\/framework\/issues", - "source": "https:\/\/github.com\/laravel\/framework" - }, - "install-path": "..\/illuminate\/container" - }, - { - "name": "illuminate\/contracts", - "version": "v12.67.0", - "version_normalized": "12.67.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/illuminate\/contracts.git", - "reference": "c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/illuminate\/contracts\/zipball\/c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5", - "reference": "c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5", - "shasum": "" - }, - "require": { - "php": "^8.2", - "psr\/container": "^1.1.1|^2.0.1", - "psr\/simple-cache": "^1.0|^2.0|^3.0" - }, - "time": "2026-06-09T13:20:54+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202608\\Illuminate\\Contracts\\": "" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Contracts package.", - "homepage": "https:\/\/laravel.com", - "support": { - "issues": "https:\/\/github.com\/laravel\/framework\/issues", - "source": "https:\/\/github.com\/laravel\/framework" - }, - "install-path": "..\/illuminate\/contracts" - }, { "name": "nette\/utils", "version": "v4.1.5", @@ -1067,60 +949,6 @@ }, "install-path": "..\/psr\/log" }, - { - "name": "psr\/simple-cache", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/php-fig\/simple-cache.git", - "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/php-fig\/simple-cache\/zipball\/764e0b3939f5ca87cb904f570ef9be2d78a07865", - "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "time": "2021-10-29T13:26:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202608\\Psr\\SimpleCache\\": "src\/" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https:\/\/www.php-fig.org\/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "support": { - "source": "https:\/\/github.com\/php-fig\/simple-cache\/tree\/3.0.0" - }, - "install-path": "..\/psr\/simple-cache" - }, { "name": "react\/cache", "version": "v1.2.0", @@ -2465,172 +2293,6 @@ ], "install-path": "..\/symfony\/polyfill-intl-grapheme" }, - { - "name": "symfony\/polyfill-php84", - "version": "v1.38.1", - "version_normalized": "1.38.1.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symfony\/polyfill-php84.git", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/polyfill-php84\/zipball\/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "time": "2026-05-26T12:51:13+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https:\/\/github.com\/symfony\/polyfill", - "name": "symfony\/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "classmap": [ - "Resources\/stubs" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", - "homepage": "https:\/\/symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https:\/\/github.com\/symfony\/polyfill-php84\/tree\/v1.38.1" - }, - "funding": [ - { - "url": "https:\/\/symfony.com\/sponsor", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/fabpot", - "type": "github" - }, - { - "url": "https:\/\/github.com\/nicolas-grekas", - "type": "github" - }, - { - "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", - "type": "tidelift" - } - ], - "install-path": "..\/symfony\/polyfill-php84" - }, - { - "name": "symfony\/polyfill-php85", - "version": "v1.41.0", - "version_normalized": "1.41.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symfony\/polyfill-php85.git", - "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/polyfill-php85\/zipball\/255fab485aaa1006ed411040c42aecd7b5302d7a", - "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "time": "2026-07-01T12:47:55+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https:\/\/github.com\/symfony\/polyfill", - "name": "symfony\/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php85\\": "" - }, - "classmap": [ - "Resources\/stubs" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions", - "homepage": "https:\/\/symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https:\/\/github.com\/symfony\/polyfill-php85\/tree\/v1.41.0" - }, - "funding": [ - { - "url": "https:\/\/symfony.com\/sponsor", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/fabpot", - "type": "github" - }, - { - "url": "https:\/\/github.com\/nicolas-grekas", - "type": "github" - }, - { - "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", - "type": "tidelift" - } - ], - "install-path": "..\/symfony\/polyfill-php85" - }, { "name": "symfony\/process", "version": "v8.1.5", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 036613f8119..7c450ef6b18 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.6', 'version' => '0.4.6.0', 'reference' => '415f69258150409db7c36aa747923e28aa53e9f6', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v12.39.0', 'version' => '12.39.0.0', 'reference' => '17ec6c2f741b11564420acc737dea9334d69988c', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v12.67.0', 'version' => '12.67.0.0', 'reference' => 'c16fd7ba7d8e6b8f336639ceb6b7e1ff6ed0efb5', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6b8e03db69a15474566bd4aad90cf58c6ef0f4f5', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-php84' => array('pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', 'reference' => 'f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php84', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php85' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => '255fab485aaa1006ed411040c42aecd7b5302d7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php85', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.9', 'version' => '0.4.9.0', 'reference' => '856fea65681d3fe0fb17b947ae0eacef895dd407', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6b8e03db69a15474566bd4aad90cf58c6ef0f4f5', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/entropy/entropy/src/Console/Input/InputParser.php b/vendor/entropy/entropy/src/Console/Input/InputParser.php index acf4cc306f6..a127831765b 100644 --- a/vendor/entropy/entropy/src/Console/Input/InputParser.php +++ b/vendor/entropy/entropy/src/Console/Input/InputParser.php @@ -22,8 +22,13 @@ public function parse(array $argv): CLIRequest $args = []; $options = []; $command = array_shift($argv); - if (strncmp((string) $command, '-', strlen('-')) === 0) { - // most likely an option + if (strncmp((string) $command, '--', strlen('--')) === 0) { + // most likely an option, possibly carrying a value, e.g. "--limit=5" or "--limit 5" + [$name, $value] = $this->parseLongOption((string) $command, $argv); + $options[$name] = $value; + $command = null; + } elseif (strncmp((string) $command, '-', strlen('-')) === 0) { + // most likely a short flag $options[ltrim((string) $command, '-')] = \true; $command = null; } diff --git a/vendor/entropy/entropy/src/Container/Container.php b/vendor/entropy/entropy/src/Container/Container.php index f7c7337e6b2..2cbacc0dad1 100644 --- a/vendor/entropy/entropy/src/Container/Container.php +++ b/vendor/entropy/entropy/src/Container/Container.php @@ -40,6 +40,25 @@ class Container * @var list */ private array $makingStack = []; + /** + * Classes registered for autowiring and contract discovery, without a factory. + * @var array + */ + private array $registeredClasses = []; + /** + * Callbacks run once, right after a matching instance is built, keyed by the type they apply to. + * @var array> + */ + private array $afterResolvingCallbacks = []; + /** + * Instances built during the current top-level make() that still wait for their afterResolving + * callbacks. Draining is deferred to the outermost make() so a service and the collection it + * belongs to can resolve without tripping the circular-dependency guard. + * @var list + */ + private array $pendingAfterResolving = []; + private int $resolutionDepth = 0; + private bool $isDraining = \false; public function __construct() { // setup default console service @@ -84,8 +103,43 @@ public function service(string $class, callable $factory): void // avoid service override throw new RegisterServiceException(sprintf('Service for "%s" class is already registered', $class)); } + // a factory supersedes a bare registration of the same class + unset($this->registeredClasses[$class]); $this->serviceFactories[$class] = $factory; } + /** + * Register a class for autowiring and contract discovery, without a factory. The container builds it + * via reflection on demand, and findByContract() can then find it among its implementations. + * Idempotent, unlike service(); a class already backed by a factory is left untouched. + * + * @param class-string $class + */ + public function register(string $class): void + { + if (isset($this->serviceFactories[$class])) { + return; + } + $this->registeredClasses[$class] = \true; + } + /** + * Register a callback run once, right after an instance of $class (or a subtype) is built. + * Useful for setter injection that would otherwise create a dependency cycle. Draining is + * deferred to the outermost make(), so the callback can resolve the collection $class belongs to. + * + * @template TObject of object + * @param class-string $class + * @param callable(TObject, self): void $callback + */ + public function afterResolving(string $class, callable $callback): void + { + // wrap in a widening closure so the heterogeneous store stays type-safe; the guard narrows + // the built instance back to TObject before handing it to the typed callback + $this->afterResolvingCallbacks[$class][] = function (object $instance, self $container) use ($callback, $class): void { + if ($instance instanceof $class) { + $callback($instance, $container); + } + }; + } /** * @template TType as object * @@ -108,12 +162,14 @@ public function make(string $class): object // mark as "currently being created" $this->making[$class] = \true; $this->makingStack[] = $class; + ++$this->resolutionDepth; try { // factories / registered services if (isset($this->serviceFactories[$class])) { $factory = $this->serviceFactories[$class]; $instance = $factory($this); $this->instances[$class] = $instance; + $this->queueAfterResolving($instance); return $instance; } // autowire via reflection @@ -121,6 +177,7 @@ public function make(string $class): object if ($reflectionClass->isInstantiable()) { $instance = $this->createInstanceFromReflection($reflectionClass); $this->instances[$class] = $instance; + $this->queueAfterResolving($instance); return $instance; } throw new CreateServiceException(sprintf('No service found for "%s" class', $class)); @@ -128,18 +185,51 @@ public function make(string $class): object // always unmark, even if construction throws array_pop($this->makingStack); unset($this->making[$class]); + // drain queued callbacks once the outermost make() has unwound, so their re-entrant + // lookups see fully built instances instead of hitting the circular-dependency guard + --$this->resolutionDepth; + if ($this->resolutionDepth === 0 && !$this->isDraining) { + $this->drainAfterResolving(); + } } } /** * @template TType as object * * @param class-string $contractClass - * @return array + * @return list */ public function findByContract(string $contractClass): array { $this->warmUpInstanceServices($contractClass); - return array_filter($this->instances, fn(object $instance): bool => $instance instanceof $contractClass); + $matches = array_filter($this->instances, fn(object $instance): bool => $instance instanceof $contractClass); + // return a plain 0-indexed list; class-string keys would turn a variadic spread + // (e.g. new Traverser(...$services)) into named arguments + return array_values($matches); + } + /** + * Forget every factory, discovery registration and cached instance whose class is-a $contract, + * so make() and findByContract() no longer return them. A later make() rebuilds a fresh instance. + * + * @param class-string $contract + */ + public function forgetByContract(string $contract): void + { + foreach (array_keys($this->serviceFactories) as $class) { + if (is_a($class, $contract, \true)) { + unset($this->serviceFactories[$class]); + } + } + foreach (array_keys($this->registeredClasses) as $class) { + if (is_a($class, $contract, \true)) { + unset($this->registeredClasses[$class]); + } + } + foreach (array_keys($this->instances) as $class) { + if (is_a($class, $contract, \true)) { + unset($this->instances[$class]); + } + } } /** * @param ReflectionParameter[] $reflectionParameters @@ -157,16 +247,45 @@ private function resolveDependenciesFromParameterReflections(ReflectionMethod $r } private function warmUpInstanceServices(string $contractClass): void { - // warm up instances with registered service of contract - foreach (array_keys($this->serviceFactories) as $class) { - if (!is_a($class, $contractClass, \true)) { + // warm up both factory-backed services and bare-registered classes of the contract + $knownClasses = array_merge(array_keys($this->serviceFactories), array_keys($this->registeredClasses)); + foreach ($knownClasses as $knownClass) { + if (!is_a($knownClass, $contractClass, \true)) { continue; } - if (isset($this->instances[$class])) { + if (isset($this->instances[$knownClass])) { continue; } // warm up cache if not yet - $this->instances[$class] = $this->make($class); + $this->instances[$knownClass] = $this->make($knownClass); + } + } + private function queueAfterResolving(object $instance): void + { + foreach (array_keys($this->afterResolvingCallbacks) as $registeredClass) { + if ($instance instanceof $registeredClass) { + $this->pendingAfterResolving[] = $instance; + return; + } + } + } + private function drainAfterResolving(): void + { + $this->isDraining = \true; + try { + while ($this->pendingAfterResolving !== []) { + $instance = array_shift($this->pendingAfterResolving); + foreach ($this->afterResolvingCallbacks as $registeredClass => $callbacks) { + if (!$instance instanceof $registeredClass) { + continue; + } + foreach ($callbacks as $callback) { + $callback($instance, $this); + } + } + } + } finally { + $this->isDraining = \false; } } private function createInstanceFromReflection(ReflectionClass $reflectionClass): object diff --git a/vendor/illuminate/container/Attributes/Auth.php b/vendor/illuminate/container/Attributes/Auth.php deleted file mode 100644 index 55ef4cecd8f..00000000000 --- a/vendor/illuminate/container/Attributes/Auth.php +++ /dev/null @@ -1,30 +0,0 @@ -guard = $guard; - } - /** - * Resolve the authentication guard. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make('auth')->guard($attribute->guard); - } -} diff --git a/vendor/illuminate/container/Attributes/Authenticated.php b/vendor/illuminate/container/Attributes/Authenticated.php deleted file mode 100644 index 07fd4dd3f0a..00000000000 --- a/vendor/illuminate/container/Attributes/Authenticated.php +++ /dev/null @@ -1,30 +0,0 @@ -guard = $guard; - } - /** - * Resolve the currently authenticated user. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public static function resolve(self $attribute, Container $container) - { - return call_user_func($container->make('auth')->userResolver(), $attribute->guard); - } -} diff --git a/vendor/illuminate/container/Attributes/Bind.php b/vendor/illuminate/container/Attributes/Bind.php deleted file mode 100644 index 82d1876c1ac..00000000000 --- a/vendor/illuminate/container/Attributes/Bind.php +++ /dev/null @@ -1,50 +0,0 @@ - - */ - public array $environments = []; - /** - * Create a new attribute instance. - * - * @param class-string $concrete - * @param non-empty-array|non-empty-string|\UnitEnum $environments - * - * @throws \InvalidArgumentException - */ - public function __construct(string $concrete, $environments = ['*']) - { - $environments = array_filter(is_array($environments) ? $environments : [$environments]); - if ($environments === []) { - throw new InvalidArgumentException('The environment property must be set and cannot be empty.'); - } - $this->concrete = $concrete; - $this->environments = array_map(function ($environment) { - switch (\true) { - case $environment instanceof BackedEnum: - return $environment->value; - case $environment instanceof UnitEnum: - return $environment->name; - default: - return $environment; - } - }, $environments); - } -} diff --git a/vendor/illuminate/container/Attributes/Cache.php b/vendor/illuminate/container/Attributes/Cache.php deleted file mode 100644 index bf9ae795528..00000000000 --- a/vendor/illuminate/container/Attributes/Cache.php +++ /dev/null @@ -1,30 +0,0 @@ -store = $store; - } - /** - * Resolve the cache store. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Contracts\Cache\Repository - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make('cache')->store($attribute->store); - } -} diff --git a/vendor/illuminate/container/Attributes/Config.php b/vendor/illuminate/container/Attributes/Config.php deleted file mode 100644 index eec4ac12b16..00000000000 --- a/vendor/illuminate/container/Attributes/Config.php +++ /dev/null @@ -1,36 +0,0 @@ -key = $key; - $this->default = $default; - } - /** - * Resolve the configuration value. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return mixed - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make('config')->get($attribute->key, $attribute->default); - } -} diff --git a/vendor/illuminate/container/Attributes/Context.php b/vendor/illuminate/container/Attributes/Context.php deleted file mode 100644 index 77e14b621b0..00000000000 --- a/vendor/illuminate/container/Attributes/Context.php +++ /dev/null @@ -1,45 +0,0 @@ -key = $key; - $this->default = $default; - $this->hidden = $hidden; - } - /** - * Resolve the context value. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return mixed - */ - public static function resolve(self $attribute, Container $container) - { - $repository = $container->make(Repository::class); - switch ($attribute->hidden) { - case \true: - return $repository->getHidden($attribute->key, $attribute->default); - case \false: - return $repository->get($attribute->key, $attribute->default); - } - } -} diff --git a/vendor/illuminate/container/Attributes/CurrentUser.php b/vendor/illuminate/container/Attributes/CurrentUser.php deleted file mode 100644 index 30fbeee4774..00000000000 --- a/vendor/illuminate/container/Attributes/CurrentUser.php +++ /dev/null @@ -1,10 +0,0 @@ -connection = $connection; - } - /** - * Resolve the database connection. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Database\Connection - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make('db')->connection($attribute->connection); - } -} diff --git a/vendor/illuminate/container/Attributes/Give.php b/vendor/illuminate/container/Attributes/Give.php deleted file mode 100644 index 41e3dcca063..00000000000 --- a/vendor/illuminate/container/Attributes/Give.php +++ /dev/null @@ -1,41 +0,0 @@ -class = $class; - $this->params = $params; - } - /** - * Resolve the dependency. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return mixed - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make($attribute->class, $attribute->params); - } -} diff --git a/vendor/illuminate/container/Attributes/Log.php b/vendor/illuminate/container/Attributes/Log.php deleted file mode 100644 index 2ee4170bde6..00000000000 --- a/vendor/illuminate/container/Attributes/Log.php +++ /dev/null @@ -1,30 +0,0 @@ -channel = $channel; - } - /** - * Resolve the log channel. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return \Psr\Log\LoggerInterface - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make('log')->channel($attribute->channel); - } -} diff --git a/vendor/illuminate/container/Attributes/RouteParameter.php b/vendor/illuminate/container/Attributes/RouteParameter.php deleted file mode 100644 index be130223edd..00000000000 --- a/vendor/illuminate/container/Attributes/RouteParameter.php +++ /dev/null @@ -1,30 +0,0 @@ -parameter = $parameter; - } - /** - * Resolve the route parameter. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return mixed - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make('request')->route($attribute->parameter); - } -} diff --git a/vendor/illuminate/container/Attributes/Scoped.php b/vendor/illuminate/container/Attributes/Scoped.php deleted file mode 100644 index 22936fde760..00000000000 --- a/vendor/illuminate/container/Attributes/Scoped.php +++ /dev/null @@ -1,9 +0,0 @@ -disk = $disk; - } - /** - * Resolve the storage disk. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public static function resolve(self $attribute, Container $container) - { - return $container->make('filesystem')->disk($attribute->disk); - } -} diff --git a/vendor/illuminate/container/Attributes/Tag.php b/vendor/illuminate/container/Attributes/Tag.php deleted file mode 100644 index 2cf8f98a89a..00000000000 --- a/vendor/illuminate/container/Attributes/Tag.php +++ /dev/null @@ -1,28 +0,0 @@ -tag = $tag; - } - /** - * Resolve the tag. - * - * @param self $attribute - * @param \Illuminate\Contracts\Container\Container $container - * @return mixed - */ - public static function resolve(self $attribute, Container $container) - { - return $container->tagged($attribute->tag); - } -} diff --git a/vendor/illuminate/container/BoundMethod.php b/vendor/illuminate/container/BoundMethod.php deleted file mode 100644 index 66880cb7c8e..00000000000 --- a/vendor/illuminate/container/BoundMethod.php +++ /dev/null @@ -1,177 +0,0 @@ -make($segments[0]), $method], $parameters); - } - /** - * Call a method that has been bound to the container. - * - * @param \Illuminate\Container\Container $container - * @param callable $callback - * @param mixed $default - * @return mixed - */ - protected static function callBoundMethod($container, $callback, $default) - { - if (!is_array($callback)) { - return Util::unwrapIfClosure($default); - } - // Here we need to turn the array callable into a Class@method string we can use to - // examine the container and see if there are any method bindings for this given - // method. If there are, we can call this method binding callback immediately. - $method = static::normalizeMethod($callback); - if ($container->hasMethodBinding($method)) { - return $container->callMethodBinding($method, $callback[0]); - } - return Util::unwrapIfClosure($default); - } - /** - * Normalize the given callback into a Class@method string. - * - * @param callable $callback - * @return string - */ - protected static function normalizeMethod($callback) - { - $class = is_string($callback[0]) ? $callback[0] : get_class($callback[0]); - return "{$class}@{$callback[1]}"; - } - /** - * Get all dependencies for a given method. - * - * @param \Illuminate\Container\Container $container - * @param callable|string $callback - * @param array $parameters - * @return array - * - * @throws \ReflectionException - */ - protected static function getMethodDependencies($container, $callback, array $parameters = []) - { - $dependencies = []; - foreach (static::getCallReflector($callback)->getParameters() as $parameter) { - static::addDependencyForCallParameter($container, $parameter, $parameters, $dependencies); - } - return array_merge($dependencies, array_values($parameters)); - } - /** - * Get the proper reflection instance for the given callback. - * - * @param callable|string $callback - * @return \ReflectionFunctionAbstract - * - * @throws \ReflectionException - */ - protected static function getCallReflector($callback) - { - if (is_string($callback) && strpos($callback, '::') !== \false) { - $callback = explode('::', $callback); - } elseif (is_object($callback) && !$callback instanceof Closure) { - $callback = [$callback, '__invoke']; - } - return is_array($callback) ? new ReflectionMethod($callback[0], $callback[1]) : new ReflectionFunction($callback); - } - /** - * Get the dependency for the given call parameter. - * - * @param \Illuminate\Container\Container $container - * @param \ReflectionParameter $parameter - * @param array $parameters - * @param array $dependencies - * @return void - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected static function addDependencyForCallParameter($container, $parameter, array &$parameters, &$dependencies) - { - $pendingDependencies = []; - if (array_key_exists($paramName = $parameter->getName(), $parameters)) { - $pendingDependencies[] = $parameters[$paramName]; - unset($parameters[$paramName]); - } elseif ($attribute = Util::getContextualAttributeFromDependency($parameter)) { - $pendingDependencies[] = $container->resolveFromAttribute($attribute); - } elseif (!is_null($className = Util::getParameterClassName($parameter))) { - if (array_key_exists($className, $parameters)) { - $pendingDependencies[] = $parameters[$className]; - unset($parameters[$className]); - } elseif ($parameter->isVariadic()) { - $variadicDependencies = $container->make($className); - $pendingDependencies = array_merge($pendingDependencies, is_array($variadicDependencies) ? $variadicDependencies : [$variadicDependencies]); - } else { - $pendingDependencies[] = $container->make($className); - } - } elseif ($parameter->isDefaultValueAvailable()) { - $pendingDependencies[] = $parameter->getDefaultValue(); - } elseif (!$parameter->isOptional() && !array_key_exists($paramName, $parameters)) { - $message = "Unable to resolve dependency [{$parameter}] in class {$parameter->getDeclaringClass()->getName()}"; - throw new BindingResolutionException($message); - } - foreach ($pendingDependencies as $dependency) { - $container->fireAfterResolvingAttributeCallbacks(method_exists($parameter, 'getAttributes') ? $parameter->getAttributes() : [], $dependency); - } - $dependencies = array_merge($dependencies, $pendingDependencies); - } - /** - * Determine if the given string is in Class@method syntax. - * - * @param mixed $callback - * @return bool - */ - protected static function isCallableWithAtSign($callback) - { - return is_string($callback) && strpos($callback, '@') !== \false; - } -} diff --git a/vendor/illuminate/container/Container.php b/vendor/illuminate/container/Container.php deleted file mode 100755 index 827156d0abd..00000000000 --- a/vendor/illuminate/container/Container.php +++ /dev/null @@ -1,1601 +0,0 @@ - - */ - protected $checkedForAttributeBindings = []; - /** - * Whether a class has already been checked for Singleton or Scoped attributes. - * - * @var array - */ - protected $checkedForSingletonOrScopedAttributes = []; - /** - * All of the registered rebound callbacks. - * - * @var array[] - */ - protected $reboundCallbacks = []; - /** - * All of the global before resolving callbacks. - * - * @var \Closure[] - */ - protected $globalBeforeResolvingCallbacks = []; - /** - * All of the global resolving callbacks. - * - * @var \Closure[] - */ - protected $globalResolvingCallbacks = []; - /** - * All of the global after resolving callbacks. - * - * @var \Closure[] - */ - protected $globalAfterResolvingCallbacks = []; - /** - * All of the before resolving callbacks by class type. - * - * @var array[] - */ - protected $beforeResolvingCallbacks = []; - /** - * All of the resolving callbacks by class type. - * - * @var array[] - */ - protected $resolvingCallbacks = []; - /** - * All of the after resolving callbacks by class type. - * - * @var array[] - */ - protected $afterResolvingCallbacks = []; - /** - * All of the after resolving attribute callbacks by class type. - * - * @var array[] - */ - protected $afterResolvingAttributeCallbacks = []; - /** - * The callback used to determine the container's environment. - * - * @var (callable(array|string): bool|string)|null - */ - protected $environmentResolver = null; - /** - * Define a contextual binding. - * - * @param array|string $concrete - * @return \Illuminate\Contracts\Container\ContextualBindingBuilder - */ - public function when($concrete) - { - $aliases = []; - foreach (Util::arrayWrap($concrete) as $c) { - $aliases[] = $this->getAlias($c); - } - return new ContextualBindingBuilder($this, $aliases); - } - /** - * Define a contextual binding based on an attribute. - * - * @param string $attribute - * @param \Closure $handler - * @return void - */ - public function whenHasAttribute(string $attribute, Closure $handler) - { - $this->contextualAttributes[$attribute] = $handler; - } - /** - * Determine if the given abstract type has been bound. - * - * @param string $abstract - * @return bool - */ - public function bound($abstract) - { - return isset($this->bindings[$abstract]) || isset($this->instances[$abstract]) || $this->isAlias($abstract); - } - /** - * {@inheritdoc} - * - * @return bool - */ - public function has(string $id): bool - { - return $this->bound($id); - } - /** - * Determine if the given abstract type has been resolved. - * - * @param string $abstract - * @return bool - */ - public function resolved($abstract) - { - if ($this->isAlias($abstract)) { - $abstract = $this->getAlias($abstract); - } - return isset($this->resolved[$abstract]) || isset($this->instances[$abstract]); - } - /** - * Determine if a given type is shared. - * - * @param string $abstract - * @return bool - */ - public function isShared($abstract) - { - if (isset($this->instances[$abstract])) { - return \true; - } - if (isset($this->bindings[$abstract]['shared']) && $this->bindings[$abstract]['shared'] === \true) { - return \true; - } - if (!class_exists($abstract)) { - return \false; - } - if (($scopedType = $this->getScopedTyped($abstract)) === null) { - return \false; - } - if ($scopedType === 'scoped') { - if (!in_array($abstract, $this->scopedInstances, \true)) { - $this->scopedInstances[] = $abstract; - } - } - return \true; - } - /** - * Determine if a ReflectionClass has scoping attributes applied. - * - * @param ReflectionClass|class-string $reflection - * @return "singleton"|"scoped"|null - */ - protected function getScopedTyped($reflection): ?string - { - $className = $reflection instanceof ReflectionClass ? $reflection->getName() : $reflection; - if (array_key_exists($className, $this->checkedForSingletonOrScopedAttributes)) { - return $this->checkedForSingletonOrScopedAttributes[$className]; - } - try { - $reflection = $reflection instanceof ReflectionClass ? $reflection : new ReflectionClass($reflection); - } catch (ReflectionException $exception) { - return $this->checkedForSingletonOrScopedAttributes[$className] = null; - } - $type = null; - if (!empty(method_exists($reflection, 'getAttributes') ? $reflection->getAttributes(Singleton::class) : [])) { - $type = 'singleton'; - } elseif (!empty(method_exists($reflection, 'getAttributes') ? $reflection->getAttributes(Scoped::class) : [])) { - $type = 'scoped'; - } - return $this->checkedForSingletonOrScopedAttributes[$className] = $type; - } - /** - * Determine if a given string is an alias. - * - * @param string $name - * @return bool - */ - public function isAlias($name) - { - return isset($this->aliases[$name]); - } - /** - * Register a binding with the container. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - * - * @throws \TypeError - * @throws ReflectionException - */ - public function bind($abstract, $concrete = null, $shared = \false) - { - if ($abstract instanceof Closure) { - return $this->bindBasedOnClosureReturnTypes($abstract, $concrete, $shared); - } - $this->dropStaleInstances($abstract); - // If no concrete type was given, we will simply set the concrete type to the - // abstract type. After that, the concrete type to be registered as shared - // without being forced to state their classes in both of the parameters. - if (is_null($concrete)) { - $concrete = $abstract; - } - // If the factory is not a Closure, it means it is just a class name which is - // bound into this container to the abstract type and we will just wrap it - // up inside its own Closure to give us more convenience when extending. - if (!$concrete instanceof Closure) { - if (!is_string($concrete)) { - throw new TypeError(self::class . '::bind(): Argument #2 ($concrete) must be of type Closure|string|null'); - } - $concrete = $this->getClosure($abstract, $concrete); - } - $this->bindings[$abstract] = ['concrete' => $concrete, 'shared' => $shared]; - // If the abstract type was already resolved in this container we'll fire the - // rebound listener so that any objects which have already gotten resolved - // can have their copy of the object updated via the listener callbacks. - if ($this->resolved($abstract)) { - $this->rebound($abstract); - } - } - /** - * Get the Closure to be used when building a type. - * - * @param string $abstract - * @param string $concrete - * @return \Closure - */ - protected function getClosure($abstract, $concrete) - { - return function ($container, $parameters = []) use ($abstract, $concrete) { - if ($abstract == $concrete) { - return $container->build($concrete); - } - return $container->resolve($concrete, $parameters, \false); - }; - } - /** - * Determine if the container has a method binding. - * - * @param string $method - * @return bool - */ - public function hasMethodBinding($method) - { - return isset($this->methodBindings[$method]); - } - /** - * Bind a callback to resolve with Container::call. - * - * @param array|string $method - * @param \Closure $callback - * @return void - */ - public function bindMethod($method, $callback) - { - $this->methodBindings[$this->parseBindMethod($method)] = $callback; - } - /** - * Get the method to be bound in class@method format. - * - * @param array|string $method - * @return string - */ - protected function parseBindMethod($method) - { - if (is_array($method)) { - return $method[0] . '@' . $method[1]; - } - return $method; - } - /** - * Get the method binding for the given method. - * - * @param string $method - * @param mixed $instance - * @return mixed - */ - public function callMethodBinding($method, $instance) - { - return call_user_func($this->methodBindings[$method], $instance, $this); - } - /** - * Add a contextual binding to the container. - * - * @param string $concrete - * @param \Closure|string $abstract - * @param \Closure|string $implementation - * @return void - */ - public function addContextualBinding($concrete, $abstract, $implementation) - { - $this->contextual[$concrete][$this->getAlias($abstract)] = $implementation; - } - /** - * Register a binding if it hasn't already been registered. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - public function bindIf($abstract, $concrete = null, $shared = \false) - { - if (!$this->bound($abstract)) { - $this->bind($abstract, $concrete, $shared); - } - } - /** - * Register a shared binding in the container. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function singleton($abstract, $concrete = null) - { - $this->bind($abstract, $concrete, \true); - } - /** - * Register a shared binding if it hasn't already been registered. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function singletonIf($abstract, $concrete = null) - { - if (!$this->bound($abstract)) { - $this->singleton($abstract, $concrete); - } - } - /** - * Register a scoped binding in the container. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function scoped($abstract, $concrete = null) - { - $this->scopedInstances[] = $abstract; - $this->singleton($abstract, $concrete); - } - /** - * Register a scoped binding if it hasn't already been registered. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function scopedIf($abstract, $concrete = null) - { - if (!$this->bound($abstract)) { - $this->scoped($abstract, $concrete); - } - } - /** - * Register a binding with the container based on the given Closure's return types. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - protected function bindBasedOnClosureReturnTypes($abstract, $concrete = null, $shared = \false) - { - $abstracts = $this->closureReturnTypes($abstract); - $concrete = $abstract; - foreach ($abstracts as $abstract) { - $this->bind($abstract, $concrete, $shared); - } - } - /** - * Get the class names / types of the return type of the given Closure. - * - * @param \Closure $closure - * @return list - * - * @throws \ReflectionException - */ - protected function closureReturnTypes(Closure $closure) - { - $reflection = new ReflectionFunction($closure); - if ($reflection->getReturnType() === null || $reflection->getReturnType() instanceof ReflectionIntersectionType) { - return []; - } - $types = $reflection->getReturnType() instanceof ReflectionUnionType ? $reflection->getReturnType()->getTypes() : [$reflection->getReturnType()]; - return (new Collection($types))->reject(fn($type) => $type->isBuiltin())->reject(fn($type) => in_array($type->getName(), ['static', 'self']))->map(fn($type) => $type->getName())->values()->all(); - } - /** - * "Extend" an abstract type in the container. - * - * @param string $abstract - * @param \Closure $closure - * @return void - * - * @throws \InvalidArgumentException - */ - public function extend($abstract, Closure $closure) - { - $abstract = $this->getAlias($abstract); - if (isset($this->instances[$abstract])) { - $this->instances[$abstract] = $closure($this->instances[$abstract], $this); - $this->rebound($abstract); - } else { - $this->extenders[$abstract][] = $closure; - if ($this->resolved($abstract)) { - $this->rebound($abstract); - } - } - } - /** - * Register an existing instance as shared in the container. - * - * @template TInstance of mixed - * - * @param string $abstract - * @param TInstance $instance - * @return TInstance - */ - public function instance($abstract, $instance) - { - $this->removeAbstractAlias($abstract); - $isBound = $this->bound($abstract); - unset($this->aliases[$abstract]); - // We'll check to determine if this type has been bound before, and if it has - // we will fire the rebound callbacks registered with the container and it - // can be updated with consuming classes that have gotten resolved here. - $this->instances[$abstract] = $instance; - if ($isBound) { - $this->rebound($abstract); - } - return $instance; - } - /** - * Remove an alias from the contextual binding alias cache. - * - * @param string $searched - * @return void - */ - protected function removeAbstractAlias($searched) - { - if (!isset($this->aliases[$searched])) { - return; - } - foreach ($this->abstractAliases as $abstract => $aliases) { - foreach ($aliases as $index => $alias) { - if ($alias == $searched) { - unset($this->abstractAliases[$abstract][$index]); - } - } - } - } - /** - * Assign a set of tags to a given binding. - * - * @param array|string $abstracts - * @param mixed ...$tags - * @return void - */ - public function tag($abstracts, $tags) - { - $tags = is_array($tags) ? $tags : array_slice(func_get_args(), 1); - foreach ($tags as $tag) { - if (!isset($this->tags[$tag])) { - $this->tags[$tag] = []; - } - foreach ((array) $abstracts as $abstract) { - $this->tags[$tag][] = $abstract; - } - } - } - /** - * Resolve all of the bindings for a given tag. - * - * @param string $tag - * @return iterable - */ - public function tagged($tag) - { - if (!isset($this->tags[$tag])) { - return []; - } - return new RewindableGenerator(function () use ($tag) { - foreach ($this->tags[$tag] as $abstract) { - yield $this->make($abstract); - } - }, count($this->tags[$tag])); - } - /** - * Alias a type to a different name. - * - * @param string $abstract - * @param string $alias - * @return void - * - * @throws \LogicException - */ - public function alias($abstract, $alias) - { - if ($alias === $abstract) { - throw new LogicException("[{$abstract}] is aliased to itself."); - } - $this->removeAbstractAlias($alias); - $this->aliases[$alias] = $abstract; - $this->abstractAliases[$abstract][] = $alias; - } - /** - * Bind a new callback to an abstract's rebind event. - * - * @param string $abstract - * @param \Closure $callback - * @return mixed - */ - public function rebinding($abstract, Closure $callback) - { - $this->reboundCallbacks[$abstract = $this->getAlias($abstract)][] = $callback; - if ($this->bound($abstract)) { - return $this->make($abstract); - } - } - /** - * Refresh an instance on the given target and method. - * - * @param string $abstract - * @param mixed $target - * @param string $method - * @return mixed - */ - public function refresh($abstract, $target, $method) - { - return $this->rebinding($abstract, function ($app, $instance) use ($target, $method) { - $target->{$method}($instance); - }); - } - /** - * Fire the "rebound" callbacks for the given abstract type. - * - * @param string $abstract - * @return void - */ - protected function rebound($abstract) - { - if (!$callbacks = $this->getReboundCallbacks($abstract)) { - return; - } - $instance = $this->make($abstract); - foreach ($callbacks as $callback) { - $callback($this, $instance); - } - } - /** - * Get the rebound callbacks for a given type. - * - * @param string $abstract - * @return array - */ - protected function getReboundCallbacks($abstract) - { - return $this->reboundCallbacks[$abstract] ?? []; - } - /** - * Wrap the given closure such that its dependencies will be injected when executed. - * - * @param \Closure $callback - * @param array $parameters - * @return \Closure - */ - public function wrap(Closure $callback, array $parameters = []) - { - return fn() => $this->call($callback, $parameters); - } - /** - * Call the given Closure / class@method and inject its dependencies. - * - * @param callable|string $callback - * @param array $parameters - * @param string|null $defaultMethod - * @return mixed - * - * @throws \InvalidArgumentException - */ - public function call($callback, array $parameters = [], $defaultMethod = null) - { - $pushedToBuildStack = \false; - if (($className = $this->getClassForCallable($callback)) && !in_array($className, $this->buildStack, \true)) { - $this->buildStack[] = $className; - $pushedToBuildStack = \true; - } - $result = BoundMethod::call($this, $callback, $parameters, $defaultMethod); - if ($pushedToBuildStack) { - array_pop($this->buildStack); - } - return $result; - } - /** - * Get the class name for the given callback, if one can be determined. - * - * @param callable|string $callback - * @return string|false - */ - protected function getClassForCallable($callback) - { - if (is_callable($callback) && !($reflector = new ReflectionFunction(\Closure::fromCallable($callback)))->isAnonymous()) { - return $reflector->getClosureScopeClass()->name ?? \false; - } - return \false; - } - /** - * Get a closure to resolve the given type from the container. - * - * @template TClass of object - * - * @param string|class-string $abstract - * @return ($abstract is class-string ? \Closure(): TClass : \Closure(): mixed) - */ - public function factory($abstract) - { - return fn() => $this->make($abstract); - } - /** - * An alias function name for make(). - * - * @template TClass of object - * - * @param string|class-string|callable $abstract - * @param array $parameters - * @return ($abstract is class-string ? TClass : mixed) - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - public function makeWith($abstract, array $parameters = []) - { - return $this->make($abstract, $parameters); - } - /** - * Resolve the given type from the container. - * - * @template TClass of object - * - * @param string|class-string $abstract - * @param array $parameters - * @return ($abstract is class-string ? TClass : mixed) - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - public function make($abstract, array $parameters = []) - { - return $this->resolve($abstract, $parameters); - } - /** - * {@inheritdoc} - * - * @template TClass of object - * - * @param string|class-string $id - * @return ($id is class-string ? TClass : mixed) - */ - public function get(string $id) - { - try { - return $this->resolve($id); - } catch (Exception $e) { - if ($this->has($id) || $e instanceof CircularDependencyException) { - throw $e; - } - throw new EntryNotFoundException($id, is_int($e->getCode()) ? $e->getCode() : 0, $e); - } - } - /** - * Resolve the given type from the container. - * - * @template TClass of object - * - * @param string|class-string|callable $abstract - * @param array $parameters - * @param bool $raiseEvents - * @return ($abstract is class-string ? TClass : mixed) - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - * @throws \Illuminate\Contracts\Container\CircularDependencyException - */ - protected function resolve($abstract, $parameters = [], $raiseEvents = \true) - { - $abstract = $this->getAlias($abstract); - // First we'll fire any event handlers which handle the "before" resolving of - // specific types. This gives some hooks the chance to add various extends - // calls to change the resolution of objects that they're interested in. - if ($raiseEvents) { - $this->fireBeforeResolvingCallbacks($abstract, $parameters); - } - $concrete = $this->getContextualConcrete($abstract); - $needsContextualBuild = !empty($parameters) || !is_null($concrete); - // If an instance of the type is currently being managed as a singleton we'll - // just return an existing instance instead of instantiating new instances - // so the developer can keep using the same objects instance every time. - if (isset($this->instances[$abstract]) && !$needsContextualBuild) { - return $this->instances[$abstract]; - } - $this->with[] = $parameters; - if (is_null($concrete)) { - $concrete = $this->getConcrete($abstract); - } - // We're ready to instantiate an instance of the concrete type registered for - // the binding. This will instantiate the types, as well as resolve any of - // its "nested" dependencies recursively until all have gotten resolved. - $object = $this->isBuildable($concrete, $abstract) ? $this->build($concrete) : $this->make($concrete); - // If we defined any extenders for this type, we'll need to spin through them - // and apply them to the object being built. This allows for the extension - // of services, such as changing configuration or decorating the object. - foreach ($this->getExtenders($abstract) as $extender) { - $object = $extender($object, $this); - } - // If the requested type is registered as a singleton we'll want to cache off - // the instances in "memory" so we can return it later without creating an - // entirely new instance of an object on each subsequent request for it. - if (!$needsContextualBuild) { - $this->instances[$abstract] = $object; - } - if ($raiseEvents) { - $this->fireResolvingCallbacks($abstract, $object); - } - // Before returning, we will also set the resolved flag to "true" and pop off - // the parameter overrides for this build. After those two things are done - // we will be ready to return back the fully constructed class instance. - if (!$needsContextualBuild) { - $this->resolved[$abstract] = \true; - } - array_pop($this->with); - return $object; - } - /** - * Get the concrete type for a given abstract. - * - * @param string|callable $abstract - * @return mixed - */ - protected function getConcrete($abstract) - { - // If we don't have a registered resolver or concrete for the type, we'll just - // assume each type is a concrete name and will attempt to resolve it as is - // since the container should be able to resolve concretes automatically. - if (isset($this->bindings[$abstract])) { - return $this->bindings[$abstract]['concrete']; - } - if ($this->environmentResolver === null || ($this->checkedForAttributeBindings[$abstract] ?? \false) || !is_string($abstract)) { - return $abstract; - } - return $this->getConcreteBindingFromAttributes($abstract); - } - /** - * Get the concrete binding for an abstract from the Bind attribute. - * - * @param string $abstract - * @return mixed - */ - protected function getConcreteBindingFromAttributes($abstract) - { - $this->checkedForAttributeBindings[$abstract] = \true; - try { - $reflected = new ReflectionClass($abstract); - } catch (ReflectionException $exception) { - return $abstract; - } - $bindAttributes = method_exists($reflected, 'getAttributes') ? $reflected->getAttributes(Bind::class) : []; - if ($bindAttributes === []) { - return $abstract; - } - $concrete = $maybeConcrete = null; - foreach ($bindAttributes as $reflectedAttribute) { - $instance = $reflectedAttribute->newInstance(); - if ($instance->environments === ['*']) { - $maybeConcrete = $instance->concrete; - continue; - } - if ($this->currentEnvironmentIs($instance->environments)) { - $concrete = $instance->concrete; - break; - } - } - if ($maybeConcrete !== null && $concrete === null) { - $concrete = $maybeConcrete; - } - if ($concrete === null) { - return $abstract; - } - switch ($this->getScopedTyped($reflected)) { - case 'scoped': - $this->scoped($abstract, $concrete); - break; - case 'singleton': - $this->singleton($abstract, $concrete); - break; - case null: - $this->bind($abstract, $concrete); - break; - } - return $this->bindings[$abstract]['concrete']; - } - /** - * Get the contextual concrete binding for the given abstract. - * - * @param string|callable $abstract - * @return \Closure|string|array|null - */ - protected function getContextualConcrete($abstract) - { - if (!is_null($binding = $this->findInContextualBindings($abstract))) { - return $binding; - } - // Next we need to see if a contextual binding might be bound under an alias of the - // given abstract type. So, we will need to check if any aliases exist with this - // type and then spin through them and check for contextual bindings on these. - if (empty($this->abstractAliases[$abstract])) { - return; - } - foreach ($this->abstractAliases[$abstract] as $alias) { - if (!is_null($binding = $this->findInContextualBindings($alias))) { - return $binding; - } - } - } - /** - * Find the concrete binding for the given abstract in the contextual binding array. - * - * @param string|callable $abstract - * @return \Closure|string|null - */ - protected function findInContextualBindings($abstract) - { - return $this->contextual[end($this->buildStack)][$abstract] ?? null; - } - /** - * Determine if the given concrete is buildable. - * - * @param mixed $concrete - * @param string $abstract - * @return bool - */ - protected function isBuildable($concrete, $abstract) - { - return $concrete === $abstract || $concrete instanceof Closure; - } - /** - * Instantiate a concrete instance of the given type. - * - * @template TClass of object - * - * @param \Closure(static, array): TClass|class-string $concrete - * @return TClass - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - * @throws \Illuminate\Contracts\Container\CircularDependencyException - */ - public function build($concrete) - { - // If the concrete type is actually a Closure, we will just execute it and - // hand back the results of the functions, which allows functions to be - // used as resolvers for more fine-tuned resolution of these objects. - if ($concrete instanceof Closure) { - $this->buildStack[] = spl_object_hash($concrete); - try { - return $concrete($this, $this->getLastParameterOverride()); - } finally { - array_pop($this->buildStack); - } - } - try { - $reflector = new ReflectionClass($concrete); - } catch (ReflectionException $e) { - throw new BindingResolutionException("Target class [{$concrete}] does not exist.", 0, $e); - } - // If the type is not instantiable, the developer is attempting to resolve - // an abstract type such as an Interface or Abstract Class and there is - // no binding registered for the abstractions so we need to bail out. - if (!$reflector->isInstantiable()) { - return $this->notInstantiable($concrete); - } - if (is_a($concrete, SelfBuilding::class, \true) && !in_array($concrete, $this->buildStack, \true)) { - return $this->buildSelfBuildingInstance($concrete, $reflector); - } - $this->buildStack[] = $concrete; - $constructor = $reflector->getConstructor(); - // If there are no constructors, that means there are no dependencies then - // we can just resolve the instances of the objects right away, without - // resolving any other types or dependencies out of these containers. - if (is_null($constructor)) { - array_pop($this->buildStack); - $this->fireAfterResolvingAttributeCallbacks(method_exists($reflector, 'getAttributes') ? $reflector->getAttributes() : [], $instance = new $concrete()); - return $instance; - } - $dependencies = $constructor->getParameters(); - // Once we have all the constructor's parameters we can create each of the - // dependency instances and then use the reflection instances to make a - // new instance of this class, injecting the created dependencies in. - try { - $instances = $this->resolveDependencies($dependencies); - } catch (BindingResolutionException $e) { - array_pop($this->buildStack); - throw $e; - } - array_pop($this->buildStack); - $this->fireAfterResolvingAttributeCallbacks(method_exists($reflector, 'getAttributes') ? $reflector->getAttributes() : [], $instance = $reflector->newInstanceArgs($instances)); - return $instance; - } - /** - * Instantiate a concrete instance of the given self building type. - * - * @param \Closure(static, array): TClass|class-string $concrete - * @param \ReflectionClass $reflector - * @return TClass - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function buildSelfBuildingInstance($concrete, $reflector) - { - if (!method_exists($concrete, 'newInstance')) { - throw new BindingResolutionException("No newInstance method exists for [{$concrete}]."); - } - $this->buildStack[] = $concrete; - $instance = $this->call([$concrete, 'newInstance']); - array_pop($this->buildStack); - $this->fireAfterResolvingAttributeCallbacks(method_exists($reflector, 'getAttributes') ? $reflector->getAttributes() : [], $instance); - return $instance; - } - /** - * Resolve all of the dependencies from the ReflectionParameters. - * - * @param \ReflectionParameter[] $dependencies - * @return array - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function resolveDependencies(array $dependencies) - { - $results = []; - foreach ($dependencies as $dependency) { - // If the dependency has an override for this particular build we will use - // that instead as the value. Otherwise, we will continue with this run - // of resolutions and let reflection attempt to determine the result. - if ($this->hasParameterOverride($dependency)) { - $results[] = $this->getParameterOverride($dependency); - continue; - } - $result = null; - if (!is_null($attribute = Util::getContextualAttributeFromDependency($dependency))) { - $result = $this->resolveFromAttribute($attribute); - } - // If the class is null, it means the dependency is a string or some other - // primitive type which we can not resolve since it is not a class and - // we will just bomb out with an error since we have no-where to go. - $result ??= is_null(Util::getParameterClassName($dependency)) ? $this->resolvePrimitive($dependency) : $this->resolveClass($dependency); - $this->fireAfterResolvingAttributeCallbacks(method_exists($dependency, 'getAttributes') ? $dependency->getAttributes() : [], $result); - if ($dependency->isVariadic()) { - $results = array_merge($results, $result); - } else { - $results[] = $result; - } - } - return $results; - } - /** - * Determine if the given dependency has a parameter override. - * - * @param \ReflectionParameter $dependency - * @return bool - */ - protected function hasParameterOverride($dependency) - { - return array_key_exists($dependency->name, $this->getLastParameterOverride()); - } - /** - * Get a parameter override for a dependency. - * - * @param \ReflectionParameter $dependency - * @return mixed - */ - protected function getParameterOverride($dependency) - { - return $this->getLastParameterOverride()[$dependency->name]; - } - /** - * Get the last parameter override. - * - * @return array - */ - protected function getLastParameterOverride() - { - return count($this->with) ? $this->with[array_key_last($this->with)] : []; - } - /** - * Resolve a non-class hinted primitive dependency. - * - * @param \ReflectionParameter $parameter - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function resolvePrimitive(ReflectionParameter $parameter) - { - if (!is_null($concrete = $this->getContextualConcrete('$' . $parameter->getName()))) { - return Util::unwrapIfClosure($concrete, $this); - } - if ($parameter->isDefaultValueAvailable()) { - return $parameter->getDefaultValue(); - } - if ($parameter->isVariadic()) { - return []; - } - if ($parameter->hasType() && $parameter->allowsNull()) { - return null; - } - $this->unresolvablePrimitive($parameter); - } - /** - * Resolve a class based dependency from the container. - * - * @param \ReflectionParameter $parameter - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function resolveClass(ReflectionParameter $parameter) - { - $className = Util::getParameterClassName($parameter); - // First we will check if a default value has been defined for the parameter. - // If it has, and no explicit binding exists, we should return it to avoid - // overriding any of the developer specified defaults for the parameters. - if ($parameter->isDefaultValueAvailable() && !$this->bound($className) && $this->findInContextualBindings($className) === null) { - return $parameter->getDefaultValue(); - } - try { - return $parameter->isVariadic() ? $this->resolveVariadicClass($parameter) : $this->make($className); - } catch (BindingResolutionException $e) { - if ($parameter->isVariadic()) { - array_pop($this->with); - return []; - } - throw $e; - } - } - /** - * Resolve a class based variadic dependency from the container. - * - * @param \ReflectionParameter $parameter - * @return mixed - */ - protected function resolveVariadicClass(ReflectionParameter $parameter) - { - $className = Util::getParameterClassName($parameter); - $abstract = $this->getAlias($className); - if (!is_array($concrete = $this->getContextualConcrete($abstract))) { - return $this->make($className); - } - return array_map(fn($abstract) => $this->resolve($abstract), $concrete); - } - /** - * Resolve a dependency based on an attribute. - * - * @param \ReflectionAttribute $attribute - * @return mixed - */ - public function resolveFromAttribute(ReflectionAttribute $attribute) - { - $handler = $this->contextualAttributes[$attribute->getName()] ?? null; - $instance = $attribute->newInstance(); - if (is_null($handler) && method_exists($instance, 'resolve')) { - $handler = \Closure::fromCallable([$instance, 'resolve']); - } - if (is_null($handler)) { - throw new BindingResolutionException("Contextual binding attribute [{$attribute->getName()}] has no registered handler."); - } - return $handler($instance, $this); - } - /** - * Throw an exception that the concrete is not instantiable. - * - * @param string $concrete - * @return void - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function notInstantiable($concrete) - { - if (!empty($this->buildStack)) { - $previous = implode(', ', $this->buildStack); - $message = "Target [{$concrete}] is not instantiable while building [{$previous}]."; - } else { - $message = "Target [{$concrete}] is not instantiable."; - } - throw new BindingResolutionException($message); - } - /** - * Throw an exception for an unresolvable primitive. - * - * @param \ReflectionParameter $parameter - * @return void - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function unresolvablePrimitive(ReflectionParameter $parameter) - { - $message = "Unresolvable dependency resolving [{$parameter}] in class {$parameter->getDeclaringClass()->getName()}"; - throw new BindingResolutionException($message); - } - /** - * Register a new before resolving callback for all types. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function beforeResolving($abstract, ?Closure $callback = null) - { - if (is_string($abstract)) { - $abstract = $this->getAlias($abstract); - } - if ($abstract instanceof Closure && is_null($callback)) { - $this->globalBeforeResolvingCallbacks[] = $abstract; - } else { - $this->beforeResolvingCallbacks[$abstract][] = $callback; - } - } - /** - * Register a new resolving callback. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function resolving($abstract, ?Closure $callback = null) - { - if (is_string($abstract)) { - $abstract = $this->getAlias($abstract); - } - if (is_null($callback) && $abstract instanceof Closure) { - $this->globalResolvingCallbacks[] = $abstract; - } else { - $this->resolvingCallbacks[$abstract][] = $callback; - } - } - /** - * Register a new after resolving callback for all types. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function afterResolving($abstract, ?Closure $callback = null) - { - if (is_string($abstract)) { - $abstract = $this->getAlias($abstract); - } - if ($abstract instanceof Closure && is_null($callback)) { - $this->globalAfterResolvingCallbacks[] = $abstract; - } else { - $this->afterResolvingCallbacks[$abstract][] = $callback; - } - } - /** - * Register a new after resolving attribute callback for all types. - * - * @param string $attribute - * @param \Closure $callback - * @return void - */ - public function afterResolvingAttribute(string $attribute, \Closure $callback) - { - $this->afterResolvingAttributeCallbacks[$attribute][] = $callback; - } - /** - * Fire all of the before resolving callbacks. - * - * @param string $abstract - * @param array $parameters - * @return void - */ - protected function fireBeforeResolvingCallbacks($abstract, $parameters = []) - { - $this->fireBeforeCallbackArray($abstract, $parameters, $this->globalBeforeResolvingCallbacks); - foreach ($this->beforeResolvingCallbacks as $type => $callbacks) { - if ($type === $abstract || is_subclass_of($abstract, $type)) { - $this->fireBeforeCallbackArray($abstract, $parameters, $callbacks); - } - } - } - /** - * Fire an array of callbacks with an object. - * - * @param string $abstract - * @param array $parameters - * @param array $callbacks - * @return void - */ - protected function fireBeforeCallbackArray($abstract, $parameters, array $callbacks) - { - foreach ($callbacks as $callback) { - $callback($abstract, $parameters, $this); - } - } - /** - * Fire all of the resolving callbacks. - * - * @param string $abstract - * @param mixed $object - * @return void - */ - protected function fireResolvingCallbacks($abstract, $object) - { - $this->fireCallbackArray($object, $this->globalResolvingCallbacks); - $this->fireCallbackArray($object, $this->getCallbacksForType($abstract, $object, $this->resolvingCallbacks)); - $this->fireAfterResolvingCallbacks($abstract, $object); - } - /** - * Fire all of the after resolving callbacks. - * - * @param string $abstract - * @param mixed $object - * @return void - */ - protected function fireAfterResolvingCallbacks($abstract, $object) - { - $this->fireCallbackArray($object, $this->globalAfterResolvingCallbacks); - $this->fireCallbackArray($object, $this->getCallbacksForType($abstract, $object, $this->afterResolvingCallbacks)); - } - /** - * Fire all of the after resolving attribute callbacks. - * - * @param \ReflectionAttribute[] $attributes - * @param mixed $object - * @return void - */ - public function fireAfterResolvingAttributeCallbacks(array $attributes, $object) - { - foreach ($attributes as $attribute) { - if (is_a($attribute->getName(), ContextualAttribute::class, \true)) { - $instance = $attribute->newInstance(); - if (method_exists($instance, 'after')) { - $instance->after($instance, $object, $this); - } - } - $callbacks = $this->getCallbacksForType($attribute->getName(), $object, $this->afterResolvingAttributeCallbacks); - foreach ($callbacks as $callback) { - $callback($attribute->newInstance(), $object, $this); - } - } - } - /** - * Get all callbacks for a given type. - * - * @param string $abstract - * @param object $object - * @param array $callbacksPerType - * @return array - */ - protected function getCallbacksForType($abstract, $object, array $callbacksPerType) - { - $results = []; - foreach ($callbacksPerType as $type => $callbacks) { - if ($type === $abstract || $object instanceof $type) { - $results = array_merge($results, $callbacks); - } - } - return $results; - } - /** - * Fire an array of callbacks with an object. - * - * @param mixed $object - * @param array $callbacks - * @return void - */ - protected function fireCallbackArray($object, array $callbacks) - { - foreach ($callbacks as $callback) { - $callback($object, $this); - } - } - /** - * Get the name of the binding the container is currently resolving. - * - * @return class-string|string|null - */ - public function currentlyResolving() - { - return $this->buildStack[array_key_last($this->buildStack)] ?: null; - } - /** - * Get the container's bindings. - * - * @return array - */ - public function getBindings() - { - return $this->bindings; - } - /** - * Get the alias for an abstract if available. - * - * @param string $abstract - * @return string - */ - public function getAlias($abstract) - { - return isset($this->aliases[$abstract]) ? $this->getAlias($this->aliases[$abstract]) : $abstract; - } - /** - * Get the extender callbacks for a given type. - * - * @param string $abstract - * @return array - */ - protected function getExtenders($abstract) - { - return $this->extenders[$this->getAlias($abstract)] ?? []; - } - /** - * Remove all of the extender callbacks for a given type. - * - * @param string $abstract - * @return void - */ - public function forgetExtenders($abstract) - { - unset($this->extenders[$this->getAlias($abstract)]); - } - /** - * Drop all of the stale instances and aliases. - * - * @param string $abstract - * @return void - */ - protected function dropStaleInstances($abstract) - { - unset($this->instances[$abstract], $this->aliases[$abstract]); - } - /** - * Remove a resolved instance from the instance cache. - * - * @param string $abstract - * @return void - */ - public function forgetInstance($abstract) - { - unset($this->instances[$abstract]); - } - /** - * Clear all of the instances from the container. - * - * @return void - */ - public function forgetInstances() - { - $this->instances = []; - } - /** - * Clear all of the scoped instances from the container. - * - * @return void - */ - public function forgetScopedInstances() - { - foreach ($this->scopedInstances as $scoped) { - unset($this->instances[$scoped]); - } - } - /** - * Set the callback which determines the current container environment. - * - * @param (callable(array|string): bool|string)|null $callback - * @return void - */ - public function resolveEnvironmentUsing(?callable $callback) - { - $this->environmentResolver = $callback; - } - /** - * Determine the environment for the container. - * - * @param array|string $environments - * @return bool - */ - public function currentEnvironmentIs($environments) - { - return $this->environmentResolver === null ? \false : call_user_func($this->environmentResolver, $environments); - } - /** - * Flush the container of all bindings and resolved instances. - * - * @return void - */ - public function flush() - { - $this->aliases = []; - $this->resolved = []; - $this->bindings = []; - $this->instances = []; - $this->abstractAliases = []; - $this->scopedInstances = []; - $this->checkedForAttributeBindings = []; - $this->checkedForSingletonOrScopedAttributes = []; - } - /** - * Get the globally available instance of the container. - * - * @return static - */ - public static function getInstance() - { - return static::$instance ??= new static(); - } - /** - * Set the shared instance of the container. - * - * @param \Illuminate\Contracts\Container\Container|null $container - * @return \Illuminate\Contracts\Container\Container|static - */ - public static function setInstance(?ContainerContract $container = null) - { - return static::$instance = $container; - } - /** - * Determine if a given offset exists. - * - * @param string $key - * @return bool - */ - public function offsetExists($key): bool - { - return $this->bound($key); - } - /** - * Get the value at a given offset. - * - * @param string $key - * @return mixed - */ - #[\ReturnTypeWillChange] - public function offsetGet($key) - { - return $this->make($key); - } - /** - * Set the value at a given offset. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value): void - { - $this->bind($key, $value instanceof Closure ? $value : fn() => $value); - } - /** - * Unset the value at a given offset. - * - * @param string $key - * @return void - */ - public function offsetUnset($key): void - { - unset($this->bindings[$key], $this->instances[$key], $this->resolved[$key]); - } - /** - * Dynamically access container services. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this[$key]; - } - /** - * Dynamically set container services. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this[$key] = $value; - } -} diff --git a/vendor/illuminate/container/ContextualBindingBuilder.php b/vendor/illuminate/container/ContextualBindingBuilder.php deleted file mode 100644 index b217c0c596a..00000000000 --- a/vendor/illuminate/container/ContextualBindingBuilder.php +++ /dev/null @@ -1,86 +0,0 @@ -concrete = $concrete; - $this->container = $container; - } - /** - * Define the abstract target that depends on the context. - * - * @param string $abstract - * @return $this - */ - public function needs($abstract) - { - $this->needs = $abstract; - return $this; - } - /** - * Define the implementation for the contextual binding. - * - * @param \Closure|string|array $implementation - * @return $this - */ - public function give($implementation) - { - foreach (Util::arrayWrap($this->concrete) as $concrete) { - $this->container->addContextualBinding($concrete, $this->needs, $implementation); - } - return $this; - } - /** - * Define tagged services to be used as the implementation for the contextual binding. - * - * @param string $tag - * @return $this - */ - public function giveTagged($tag) - { - return $this->give(function ($container) use ($tag) { - $taggedServices = $container->tagged($tag); - return is_array($taggedServices) ? $taggedServices : iterator_to_array(is_array($taggedServices) ? new \ArrayIterator($taggedServices) : $taggedServices); - }); - } - /** - * Specify the configuration item to bind as a primitive. - * - * @param string $key - * @param mixed $default - * @return $this - */ - public function giveConfig($key, $default = null) - { - return $this->give(fn($container) => $container->get('config')->get($key, $default)); - } -} diff --git a/vendor/illuminate/container/EntryNotFoundException.php b/vendor/illuminate/container/EntryNotFoundException.php deleted file mode 100644 index 72be2648f66..00000000000 --- a/vendor/illuminate/container/EntryNotFoundException.php +++ /dev/null @@ -1,10 +0,0 @@ -count = $count; - $this->generator = $generator; - } - /** - * Get an iterator from the generator. - * - * @return \Traversable - */ - public function getIterator(): Traversable - { - return ($this->generator)(); - } - /** - * Get the total number of tagged services. - * - * @return int - */ - public function count(): int - { - if (is_callable($count = $this->count)) { - $this->count = $count(); - } - return $this->count; - } -} diff --git a/vendor/illuminate/container/Util.php b/vendor/illuminate/container/Util.php deleted file mode 100644 index ed5bdbc1aa8..00000000000 --- a/vendor/illuminate/container/Util.php +++ /dev/null @@ -1,77 +0,0 @@ -getType(); - if (!$type instanceof ReflectionNamedType || $type->isBuiltin()) { - return null; - } - $name = $type->getName(); - if (!is_null($class = $parameter->getDeclaringClass())) { - if ($name === 'self') { - return $class->getName(); - } - if ($name === 'parent' && $parent = $class->getParentClass()) { - return $parent->getName(); - } - } - return $name; - } - /** - * Get a contextual attribute from a dependency. - * - * @param \ReflectionParameter $dependency - * @return \ReflectionAttribute|null - */ - public static function getContextualAttributeFromDependency($dependency) - { - return (method_exists($dependency, 'getAttributes') ? $dependency->getAttributes(ContextualAttribute::class, ReflectionAttribute::IS_INSTANCEOF) : [])[0] ?? null; - } -} diff --git a/vendor/illuminate/container/composer.json b/vendor/illuminate/container/composer.json deleted file mode 100755 index 935ac22208e..00000000000 --- a/vendor/illuminate/container/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "illuminate\/container", - "description": "The Illuminate Container package.", - "license": "MIT", - "homepage": "https:\/\/laravel.com", - "support": { - "issues": "https:\/\/github.com\/laravel\/framework\/issues", - "source": "https:\/\/github.com\/laravel\/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^8.2", - "illuminate\/contracts": "^12.0", - "psr\/container": "^1.1.1|^2.0.1", - "symfony\/polyfill-php84": "^1.33", - "symfony\/polyfill-php85": "^1.33" - }, - "suggest": { - "illuminate\/auth": "Required to use the Auth attribute", - "illuminate\/cache": "Required to use the Cache attribute", - "illuminate\/config": "Required to use the Config attribute", - "illuminate\/database": "Required to use the DB attribute", - "illuminate\/filesystem": "Required to use the Storage attribute", - "illuminate\/log": "Required to use the Log or Context attributes" - }, - "provide": { - "psr\/container-implementation": "1.1|2.0" - }, - "autoload": { - "psr-4": { - "RectorPrefix202608\\Illuminate\\Container\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/vendor/illuminate/contracts/Auth/Access/Authorizable.php b/vendor/illuminate/contracts/Auth/Access/Authorizable.php deleted file mode 100644 index f678b77609c..00000000000 --- a/vendor/illuminate/contracts/Auth/Access/Authorizable.php +++ /dev/null @@ -1,15 +0,0 @@ - $id - * @return ($id is class-string ? TClass : mixed) - */ - public function get(string $id); - /** - * Determine if the given abstract type has been bound. - * - * @param string $abstract - * @return bool - */ - public function bound($abstract); - /** - * Alias a type to a different name. - * - * @param string $abstract - * @param string $alias - * @return void - * - * @throws \LogicException - */ - public function alias($abstract, $alias); - /** - * Assign a set of tags to a given binding. - * - * @param array|string $abstracts - * @param mixed ...$tags - * @return void - */ - public function tag($abstracts, $tags); - /** - * Resolve all of the bindings for a given tag. - * - * @param string $tag - * @return iterable - */ - public function tagged($tag); - /** - * Register a binding with the container. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - public function bind($abstract, $concrete = null, $shared = \false); - /** - * Bind a callback to resolve with Container::call. - * - * @param array|string $method - * @param \Closure $callback - * @return void - */ - public function bindMethod($method, $callback); - /** - * Register a binding if it hasn't already been registered. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - public function bindIf($abstract, $concrete = null, $shared = \false); - /** - * Register a shared binding in the container. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function singleton($abstract, $concrete = null); - /** - * Register a shared binding if it hasn't already been registered. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function singletonIf($abstract, $concrete = null); - /** - * Register a scoped binding in the container. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function scoped($abstract, $concrete = null); - /** - * Register a scoped binding if it hasn't already been registered. - * - * @param \Closure|string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function scopedIf($abstract, $concrete = null); - /** - * "Extend" an abstract type in the container. - * - * @param \Closure|string $abstract - * @param \Closure $closure - * @return void - * - * @throws \InvalidArgumentException - */ - public function extend($abstract, Closure $closure); - /** - * Register an existing instance as shared in the container. - * - * @template TInstance of mixed - * - * @param \Closure|string $abstract - * @param TInstance $instance - * @return TInstance - */ - public function instance($abstract, $instance); - /** - * Add a contextual binding to the container. - * - * @param string $concrete - * @param \Closure|string $abstract - * @param \Closure|string $implementation - * @return void - */ - public function addContextualBinding($concrete, $abstract, $implementation); - /** - * Define a contextual binding. - * - * @param string|array $concrete - * @return \Illuminate\Contracts\Container\ContextualBindingBuilder - */ - public function when($concrete); - /** - * Get a closure to resolve the given type from the container. - * - * @template TClass of object - * - * @param string|class-string $abstract - * @return ($abstract is class-string ? \Closure(): TClass : \Closure(): mixed) - */ - public function factory($abstract); - /** - * Flush the container of all bindings and resolved instances. - * - * @return void - */ - public function flush(); - /** - * Resolve the given type from the container. - * - * @template TClass of object - * - * @param string|class-string $abstract - * @param array $parameters - * @return ($abstract is class-string ? TClass : mixed) - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - public function make($abstract, array $parameters = []); - /** - * Call the given Closure / class@method and inject its dependencies. - * - * @param callable|string $callback - * @param array $parameters - * @param string|null $defaultMethod - * @return mixed - */ - public function call($callback, array $parameters = [], $defaultMethod = null); - /** - * Determine if the given abstract type has been resolved. - * - * @param string $abstract - * @return bool - */ - public function resolved($abstract); - /** - * Register a new before resolving callback. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function beforeResolving($abstract, ?Closure $callback = null); - /** - * Register a new resolving callback. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function resolving($abstract, ?Closure $callback = null); - /** - * Register a new after resolving callback. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function afterResolving($abstract, ?Closure $callback = null); -} diff --git a/vendor/illuminate/contracts/Container/ContextualAttribute.php b/vendor/illuminate/contracts/Container/ContextualAttribute.php deleted file mode 100644 index 60bd0408cd2..00000000000 --- a/vendor/illuminate/contracts/Container/ContextualAttribute.php +++ /dev/null @@ -1,8 +0,0 @@ -|CastsAttributes|CastsInboundAttributes - */ - public static function castUsing(array $arguments); -} diff --git a/vendor/illuminate/contracts/Database/Eloquent/CastsAttributes.php b/vendor/illuminate/contracts/Database/Eloquent/CastsAttributes.php deleted file mode 100644 index 9d2f4dc23ac..00000000000 --- a/vendor/illuminate/contracts/Database/Eloquent/CastsAttributes.php +++ /dev/null @@ -1,32 +0,0 @@ - $attributes - * @return TGet|null - */ - public function get(Model $model, string $key, $value, array $attributes); - /** - * Transform the attribute to its underlying model values. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $key - * @param mixed $value - * @param array $attributes - * @return mixed - */ - public function set(Model $model, string $key, $value, array $attributes); -} diff --git a/vendor/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php b/vendor/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php deleted file mode 100644 index 14dfd598a3a..00000000000 --- a/vendor/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php +++ /dev/null @@ -1,18 +0,0 @@ - $attributes - * @return mixed - */ - public function set(Model $model, string $key, $value, array $attributes); -} diff --git a/vendor/illuminate/contracts/Database/Eloquent/ComparesCastableAttributes.php b/vendor/illuminate/contracts/Database/Eloquent/ComparesCastableAttributes.php deleted file mode 100644 index 8403165fecc..00000000000 --- a/vendor/illuminate/contracts/Database/Eloquent/ComparesCastableAttributes.php +++ /dev/null @@ -1,18 +0,0 @@ - $attributes - * @return mixed - */ - public function serialize(Model $model, string $key, $value, array $attributes); -} diff --git a/vendor/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php b/vendor/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php deleted file mode 100644 index f341d2db054..00000000000 --- a/vendor/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php +++ /dev/null @@ -1,28 +0,0 @@ -|string|null - */ - public $class; - /** - * The unique identifier of the model. - * - * This may be either a single ID or an array of IDs. - * - * @var mixed - */ - public $id; - /** - * The relationships loaded on the model. - * - * @var array - */ - public $relations; - /** - * The connection name of the model. - * - * @var string|null - */ - public $connection; - /** - * The class name of the model collection. - * - * @var class-string<\Illuminate\Database\Eloquent\Collection>|null - */ - public $collectionClass; - /** - * Create a new model identifier. - * - * @param class-string<\Illuminate\Database\Eloquent\Model>|null $class - * @param mixed $id - * @param array $relations - * @param mixed $connection - */ - public function __construct($class, $id, array $relations, $connection) - { - if ($class !== null && self::$useMorphMap) { - $class = Relation::getMorphAlias($class); - } - $this->class = $class; - $this->id = $id; - $this->relations = $relations; - $this->connection = $connection; - } - /** - * Specify the collection class that should be used when serializing / restoring collections. - * - * @param class-string<\Illuminate\Database\Eloquent\Collection> $collectionClass - * @return $this - */ - public function useCollectionClass(?string $collectionClass) - { - $this->collectionClass = $collectionClass; - return $this; - } - /** - * Get the fully-qualified class name of the Model. - * - * @return class-string<\Illuminate\Database\Eloquent\Model>|null - */ - public function getClass(): ?string - { - if (self::$useMorphMap && $this->class !== null) { - return Relation::getMorphedModel($this->class) ?? $this->class; - } - return $this->class; - } - /** - * Indicate whether to use the relational morph-map when serializing Models. - */ - public static function useMorphMap(bool $useMorphMap = \true): void - { - static::$useMorphMap = $useMorphMap; - } -} diff --git a/vendor/illuminate/contracts/Database/Query/Builder.php b/vendor/illuminate/contracts/Database/Query/Builder.php deleted file mode 100644 index 87839f26d8b..00000000000 --- a/vendor/illuminate/contracts/Database/Query/Builder.php +++ /dev/null @@ -1,12 +0,0 @@ - - */ - public function files($directory = null, $recursive = \false); - /** - * Get all of the files from the given directory (recursive). - * - * @param string|null $directory - * @return array - */ - public function allFiles($directory = null); - /** - * Get all of the directories within a given directory. - * - * @param string|null $directory - * @param bool $recursive - * @return array - */ - public function directories($directory = null, $recursive = \false); - /** - * Get all (recursive) of the directories within a given directory. - * - * @param string|null $directory - * @return array - */ - public function allDirectories($directory = null); - /** - * Create a directory. - * - * @param string $path - * @return bool - */ - public function makeDirectory($path); - /** - * Recursively delete a directory. - * - * @param string $directory - * @return bool - */ - public function deleteDirectory($directory); -} diff --git a/vendor/illuminate/contracts/Filesystem/LockTimeoutException.php b/vendor/illuminate/contracts/Filesystem/LockTimeoutException.php deleted file mode 100644 index 1c92ab108f9..00000000000 --- a/vendor/illuminate/contracts/Filesystem/LockTimeoutException.php +++ /dev/null @@ -1,9 +0,0 @@ -)|array $properties - * @return \Illuminate\JsonSchema\Types\ObjectType - */ - public function object($properties = []); - /** - * Create a new array property instance. - * - * @return \Illuminate\JsonSchema\Types\ArrayType - */ - public function array(); - /** - * Create a new string property instance. - * - * @return \Illuminate\JsonSchema\Types\StringType - */ - public function string(); - /** - * Create a new integer property instance. - * - * @return \Illuminate\JsonSchema\Types\IntegerType - */ - public function integer(); - /** - * Create a new number property instance. - * - * @return \Illuminate\JsonSchema\Types\NumberType - */ - public function number(); - /** - * Create a new boolean property instance. - * - * @return \Illuminate\JsonSchema\Types\BooleanType - */ - public function boolean(); - /** - * Create a new multi-type union instance. - * - * @param array $types - * @return \Illuminate\JsonSchema\Types\UnionType - */ - public function union(array $types); -} diff --git a/vendor/illuminate/contracts/LICENSE.md b/vendor/illuminate/contracts/LICENSE.md deleted file mode 100644 index 79810c848f8..00000000000 --- a/vendor/illuminate/contracts/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Taylor Otwell - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/illuminate/contracts/Log/ContextLogProcessor.php b/vendor/illuminate/contracts/Log/ContextLogProcessor.php deleted file mode 100644 index d111dae1de5..00000000000 --- a/vendor/illuminate/contracts/Log/ContextLogProcessor.php +++ /dev/null @@ -1,8 +0,0 @@ - - */ - public function items(); - /** - * Get the "cursor" of the previous set of items. - * - * @return \Illuminate\Pagination\Cursor|null - */ - public function previousCursor(); - /** - * Get the "cursor" of the next set of items. - * - * @return \Illuminate\Pagination\Cursor|null - */ - public function nextCursor(); - /** - * Determine how many items are being shown per page. - * - * @return int - */ - public function perPage(); - /** - * Get the current cursor being paginated. - * - * @return \Illuminate\Pagination\Cursor|null - */ - public function cursor(); - /** - * Determine if there are enough items to split into multiple pages. - * - * @return bool - */ - public function hasPages(); - /** - * Determine if there are more items in the data source. - * - * @return bool - */ - public function hasMorePages(); - /** - * Get the base path for paginator generated URLs. - * - * @return string|null - */ - public function path(); - /** - * Determine if the list of items is empty or not. - * - * @return bool - */ - public function isEmpty(); - /** - * Determine if the list of items is not empty. - * - * @return bool - */ - public function isNotEmpty(); - /** - * Render the paginator using a given view. - * - * @param string|null $view - * @param array $data - * @return string - */ - public function render($view = null, $data = []); -} diff --git a/vendor/illuminate/contracts/Pagination/LengthAwarePaginator.php b/vendor/illuminate/contracts/Pagination/LengthAwarePaginator.php deleted file mode 100644 index 4f713209523..00000000000 --- a/vendor/illuminate/contracts/Pagination/LengthAwarePaginator.php +++ /dev/null @@ -1,34 +0,0 @@ - - */ -interface LengthAwarePaginator extends Paginator -{ - /** - * Create a range of pagination URLs. - * - * @param int $start - * @param int $end - * @return array - */ - public function getUrlRange($start, $end); - /** - * Determine the total number of items in the data store. - * - * @return int - */ - public function total(); - /** - * Get the page number of the last available page. - * - * @return int - */ - public function lastPage(); -} diff --git a/vendor/illuminate/contracts/Pagination/Paginator.php b/vendor/illuminate/contracts/Pagination/Paginator.php deleted file mode 100644 index f6f0fb4ef9c..00000000000 --- a/vendor/illuminate/contracts/Pagination/Paginator.php +++ /dev/null @@ -1,122 +0,0 @@ - - */ - public function items(); - /** - * Get the "index" of the first item being paginated. - * - * @return int|null - */ - public function firstItem(); - /** - * Get the "index" of the last item being paginated. - * - * @return int|null - */ - public function lastItem(); - /** - * Determine how many items are being shown per page. - * - * @return int - */ - public function perPage(); - /** - * Determine the current page being paginated. - * - * @return int - */ - public function currentPage(); - /** - * Determine if there are enough items to split into multiple pages. - * - * @return bool - */ - public function hasPages(); - /** - * Determine if there are more items in the data store. - * - * @return bool - */ - public function hasMorePages(); - /** - * Get the base path for paginator generated URLs. - * - * @return string|null - */ - public function path(); - /** - * Determine if the list of items is empty or not. - * - * @return bool - */ - public function isEmpty(); - /** - * Determine if the list of items is not empty. - * - * @return bool - */ - public function isNotEmpty(); - /** - * Render the paginator using a given view. - * - * @param string|null $view - * @param array $data - * @return string - */ - public function render($view = null, $data = []); -} diff --git a/vendor/illuminate/contracts/Pipeline/Hub.php b/vendor/illuminate/contracts/Pipeline/Hub.php deleted file mode 100644 index 146d8a80a23..00000000000 --- a/vendor/illuminate/contracts/Pipeline/Hub.php +++ /dev/null @@ -1,15 +0,0 @@ - - */ - public function getQueueableIds(); - /** - * Get the relationships of the entities being queued. - * - * @return array - */ - public function getQueueableRelations(); - /** - * Get the connection of the entities being queued. - * - * @return string|null - */ - public function getQueueableConnection(); -} diff --git a/vendor/illuminate/contracts/Queue/QueueableEntity.php b/vendor/illuminate/contracts/Queue/QueueableEntity.php deleted file mode 100644 index 2d55e903fad..00000000000 --- a/vendor/illuminate/contracts/Queue/QueueableEntity.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ - public function toArray(); -} diff --git a/vendor/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php b/vendor/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php deleted file mode 100644 index 437e408b89e..00000000000 --- a/vendor/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php +++ /dev/null @@ -1,14 +0,0 @@ - Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. diff --git a/vendor/psr/simple-cache/README.md b/vendor/psr/simple-cache/README.md deleted file mode 100644 index 43641d175cc..00000000000 --- a/vendor/psr/simple-cache/README.md +++ /dev/null @@ -1,8 +0,0 @@ -PHP FIG Simple Cache PSR -======================== - -This repository holds all interfaces related to PSR-16. - -Note that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details. - -You can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package. diff --git a/vendor/psr/simple-cache/composer.json b/vendor/psr/simple-cache/composer.json deleted file mode 100644 index aa834c8be84..00000000000 --- a/vendor/psr/simple-cache/composer.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "psr\/simple-cache", - "description": "Common interfaces for simple caching", - "keywords": [ - "psr", - "psr-16", - "cache", - "simple-cache", - "caching" - ], - "license": "MIT", - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https:\/\/www.php-fig.org\/" - } - ], - "require": { - "php": ">=8.0.0" - }, - "autoload": { - "psr-4": { - "RectorPrefix202608\\Psr\\SimpleCache\\": "src\/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - } -} \ No newline at end of file diff --git a/vendor/psr/simple-cache/src/CacheException.php b/vendor/psr/simple-cache/src/CacheException.php deleted file mode 100644 index 00a081a6092..00000000000 --- a/vendor/psr/simple-cache/src/CacheException.php +++ /dev/null @@ -1,10 +0,0 @@ - $keys A list of keys that can be obtained in a single operation. - * @param mixed $default Default value to return for keys that do not exist. - * - * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value. - * - * @throws \Psr\SimpleCache\InvalidArgumentException - * MUST be thrown if $keys is neither an array nor a Traversable, - * or if any of the $keys are not a legal value. - */ - public function getMultiple(iterable $keys, $default = null): iterable; - /** - * Persists a set of key => value pairs in the cache, with an optional TTL. - * - * @param iterable $values A list of key => value pairs for a multiple-set operation. - * @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and - * the driver supports TTL then the library may set a default value - * for it or let the driver take care of that. - * - * @return bool True on success and false on failure. - * - * @throws \Psr\SimpleCache\InvalidArgumentException - * MUST be thrown if $values is neither an array nor a Traversable, - * or if any of the $values are not a legal value. - */ - public function setMultiple(iterable $values, $ttl = null): bool; - /** - * Deletes multiple cache items in a single operation. - * - * @param iterable $keys A list of string-based keys to be deleted. - * - * @return bool True if the items were successfully removed. False if there was an error. - * - * @throws \Psr\SimpleCache\InvalidArgumentException - * MUST be thrown if $keys is neither an array nor a Traversable, - * or if any of the $keys are not a legal value. - */ - public function deleteMultiple(iterable $keys): bool; - /** - * Determines whether an item is present in the cache. - * - * NOTE: It is recommended that has() is only to be used for cache warming type purposes - * and not to be used within your live applications operations for get/set, as this method - * is subject to a race condition where your has() will return true and immediately after, - * another script can remove it making the state of your app out of date. - * - * @param string $key The cache item key. - * - * @return bool - * - * @throws \Psr\SimpleCache\InvalidArgumentException - * MUST be thrown if the $key string is not a legal value. - */ - public function has(string $key): bool; -} diff --git a/vendor/psr/simple-cache/src/InvalidArgumentException.php b/vendor/psr/simple-cache/src/InvalidArgumentException.php deleted file mode 100644 index 81d29fde4ba..00000000000 --- a/vendor/psr/simple-cache/src/InvalidArgumentException.php +++ /dev/null @@ -1,13 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace Symfony\Polyfill\Php84; - -/** - * @author Ayesh Karunaratne - * @author Pierre Ambroise - * - * @internal - */ -final class Php84 -{ - /** @return string|false */ - public static function mb_ucfirst(string $string, ?string $encoding = null) - { - if (null === $encoding) { - $encoding = mb_internal_encoding(); - } - try { - $validEncoding = @mb_check_encoding('', $encoding); - } catch (\ValueError $e) { - throw new \ValueError(\sprintf('mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given', $encoding)); - } - if (!$validEncoding) { - if (80000 > \PHP_VERSION_ID) { - trigger_error(\sprintf('mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given', $encoding), \E_USER_WARNING); - return \false; - } - throw new \ValueError(\sprintf('mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given', $encoding)); - } - $firstChar = mb_substr($string, 0, 1, $encoding); - $firstChar = mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding); - return $firstChar . mb_substr($string, 1, null, $encoding); - } - /** @return string|false */ - public static function mb_lcfirst(string $string, ?string $encoding = null) - { - if (null === $encoding) { - $encoding = mb_internal_encoding(); - } - try { - $validEncoding = @mb_check_encoding('', $encoding); - } catch (\ValueError $e) { - throw new \ValueError(\sprintf('mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given', $encoding)); - } - if (!$validEncoding) { - if (80000 > \PHP_VERSION_ID) { - trigger_error(\sprintf('mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given', $encoding), \E_USER_WARNING); - return \false; - } - throw new \ValueError(\sprintf('mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given', $encoding)); - } - $firstChar = mb_substr($string, 0, 1, $encoding); - $firstChar = mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding); - return $firstChar . mb_substr($string, 1, null, $encoding); - } - public static function array_find(array $array, callable $callback) - { - foreach ($array as $key => $value) { - if ($callback($value, $key)) { - return $value; - } - } - return null; - } - public static function array_find_key(array $array, callable $callback) - { - foreach ($array as $key => $value) { - if ($callback($value, $key)) { - return $key; - } - } - return null; - } - public static function array_any(array $array, callable $callback): bool - { - foreach ($array as $key => $value) { - if ($callback($value, $key)) { - return \true; - } - } - return \false; - } - public static function array_all(array $array, callable $callback): bool - { - foreach ($array as $key => $value) { - if (!$callback($value, $key)) { - return \false; - } - } - return \true; - } - public static function fpow(float $num, float $exponent): float - { - return $num ** $exponent; - } - /** @return string|false */ - public static function mb_trim(string $string, ?string $characters = null, ?string $encoding = null) - { - return self::mb_internal_trim('{^[%s]+|[%1$s]+$}Du', $string, $characters, $encoding, __FUNCTION__); - } - /** @return string|false */ - public static function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null) - { - return self::mb_internal_trim('{^[%s]+}Du', $string, $characters, $encoding, __FUNCTION__); - } - /** @return string|false */ - public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null) - { - return self::mb_internal_trim('{[%s]+$}Du', $string, $characters, $encoding, __FUNCTION__); - } - /** @return string|false */ - private static function mb_internal_trim(string $regex, string $string, ?string $characters, ?string $encoding, string $function) - { - if (null === $encoding) { - $encoding = mb_internal_encoding(); - } - try { - $validEncoding = @mb_check_encoding('', $encoding); - } catch (\ValueError $e) { - throw new \ValueError(\sprintf('%s(): Argument #3 ($encoding) must be a valid encoding, "%s" given', $function, $encoding)); - } - if (!$validEncoding) { - if (80000 > \PHP_VERSION_ID) { - trigger_error(\sprintf('%s(): Argument #3 ($encoding) must be a valid encoding, "%s" given', $function, $encoding), \E_USER_WARNING); - return \false; - } - throw new \ValueError(\sprintf('%s(): Argument #3 ($encoding) must be a valid encoding, "%s" given', $function, $encoding)); - } - if ('' === $characters) { - return null === $encoding ? $string : mb_convert_encoding($string, $encoding); - } - if ('UTF-8' === $encoding || \in_array(strtolower($encoding), ['utf-8', 'utf8'], \true)) { - $encoding = 'UTF-8'; - } - $string = mb_convert_encoding($string, 'UTF-8', $encoding); - if (null !== $characters) { - $characters = mb_convert_encoding($characters, 'UTF-8', $encoding); - } - if (null === $characters) { - $characters = "\\0 \f\n\r\t\v             

   …᠎"; - } else { - $characters = preg_quote($characters); - } - $string = preg_replace(\sprintf($regex, $characters), '', $string); - if ('UTF-8' === $encoding) { - return $string; - } - return mb_convert_encoding($string, $encoding, 'UTF-8'); - } - public static function grapheme_str_split(string $string, int $length) - { - if (0 > $length || 1073741823 < $length) { - throw new \ValueError('grapheme_str_split(): Argument #2 ($length) must be greater than 0 and less than or equal to 1073741823.'); - } - if ('' === $string) { - return []; - } - $regex = (float) \PCRE_VERSION >= 10.44 ? '\X' : '(?:\r\n|[\x{1F1E6}-\x{1F1FF}][\x{1F1E6}-\x{1F1FF}]?|(?:[ -~\x{200C}\x{200D}]|[ᆨ-ᇹ]+|[ᄀ-ᅟ]*(?:[가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기까깨꺄꺠꺼께껴꼐꼬꽈꽤꾀꾜꾸꿔꿰뀌뀨끄끠끼나내냐냬너네녀녜노놔놰뇌뇨누눠눼뉘뉴느늬니다대댜댸더데뎌뎨도돠돼되됴두둬뒈뒤듀드듸디따때땨떄떠떼뗘뗴또똬뙈뙤뚀뚜뚸뛔뛰뜌뜨띄띠라래랴럐러레려례로롸뢔뢰료루뤄뤠뤼류르릐리마매먀먜머메며몌모뫄뫠뫼묘무뭐뭬뮈뮤므믜미바배뱌뱨버베벼볘보봐봬뵈뵤부붜붸뷔뷰브븨비빠빼뺘뺴뻐뻬뼈뼤뽀뽜뽸뾔뾰뿌뿨쀄쀠쀼쁘쁴삐사새샤섀서세셔셰소솨쇄쇠쇼수숴쉐쉬슈스싀시싸쌔쌰썌써쎄쎠쎼쏘쏴쐐쐬쑈쑤쒀쒜쒸쓔쓰씌씨아애야얘어에여예오와왜외요우워웨위유으의이자재쟈쟤저제져졔조좌좨죄죠주줘줴쥐쥬즈즤지짜째쨔쨰쩌쩨쪄쪠쪼쫘쫴쬐쬬쭈쭤쮀쮜쮸쯔쯰찌차채챠챼처체쳐쳬초촤쵀최쵸추춰췌취츄츠츼치카캐캬컈커케켜켸코콰쾌쾨쿄쿠쿼퀘퀴큐크킈키타태탸턔터테텨톄토톼퇘퇴툐투퉈퉤튀튜트틔티파패퍄퍠퍼페펴폐포퐈퐤푀표푸풔풰퓌퓨프픠피하해햐햬허헤혀혜호화홰회효후훠훼휘휴흐희히]?[ᅠ-ᆢ]+|[가-힣])[ᆨ-ᇹ]*|[ᄀ-ᅟ]+|[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}])[\p{Mn}\p{Mc}\p{Me}\x{09BE}\x{09D7}\x{0B3E}\x{0B57}\x{0BBE}\x{0BD7}\x{0CC2}\x{0CD5}\x{0CD6}\x{0D3E}\x{0D57}\x{0DCF}\x{0DDF}\x{200C}\x{1D165}\x{1D16E}-\x{1D172}\x{1F3FB}-\x{1F3FF}\x{FE0E}-\x{FE0F}\x{E0020}-\x{E007F}]*(?:\x{200D}(?:[\x{1F1E6}-\x{1F1FF}]|[ -~\x{200C}\x{200D}]|[ᆨ-ᇹ]+|[ᄀ-ᅟ]*(?:[가-힣]?[ᅠ-ᆢ]+|[가-힣])[ᆨ-ᇹ]*|[ᄀ-ᅟ]+|[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}])[\p{Mn}\p{Mc}\p{Me}\x{09BE}\x{09D7}\x{0B3E}\x{0B57}\x{0BBE}\x{0BD7}\x{0CC2}\x{0CD5}\x{0CD6}\x{0D3E}\x{0D57}\x{0DCF}\x{0DDF}\x{200C}\x{1D165}\x{1D16E}-\x{1D172}\x{1F3FB}-\x{1F3FF}\x{FE0E}-\x{FE0F}\x{E0020}-\x{E007F}]*)*|[\p{Cc}\p{Cf}\p{Zl}\p{Zp}])'; - if (!preg_match_all('/' . $regex . '/u', $string, $matches)) { - return \false; - } - if (1 === $length) { - return $matches[0]; - } - $chunks = array_chunk($matches[0], $length); - foreach ($chunks as &$chunk) { - $chunk = implode('', $chunk); - } - return $chunks; - } - public static function bcceil(string $num): string - { - if (!is_numeric($num)) { - throw new \ValueError('bcceil(): Argument #1 ($num) is not well-formed'); - } - return self::bcround($num, 0, \RoundingMode::PositiveInfinity); - } - public static function bcdivmod(string $num1, string $num2, ?int $scale = null): ?array - { - if (null === $quot = @bcdiv($num1, $num2, 0)) { - throw new \DivisionByZeroError('Division by zero'); - } - $scale = $scale ?? (\PHP_VERSION_ID >= 70300 ? bcscale() : (\ini_get('bcmath.scale') ?: 0)); - return [$quot, bcmod($num1, $num2, $scale)]; - } - public static function bcfloor(string $num): string - { - if (!is_numeric($num)) { - throw new \ValueError('bcfloor(): Argument #1 ($num) is not well-formed'); - } - return self::bcround($num, 0, \RoundingMode::NegativeInfinity); - } - /** - * @param \RoundingMode|\RoundingMode::* $mode - */ - public static function bcround(string $num, int $precision = 0, $mode = \RoundingMode::HalfAwayFromZero): string - { - if (!is_numeric($num)) { - throw new \ValueError('bcround(): Argument #1 ($num) is not well-formed'); - } - $sign = 1; - if ('' !== $num && ('-' === $num[0] || '+' === $num[0])) { - if ('-' === $num[0]) { - $sign = -1; - } - $num = (string) substr($num, 1); - } - if (\false !== strpos($num, '.')) { - [$intPart, $fracPart] = array_pad(explode('.', $num, 2), 2, ''); - } else { - $intPart = $num; - $fracPart = ''; - } - if ('' === $intPart) { - $intPart = '0'; - } - $intPart = self::trimLeadingZeros($intPart); - $fracPart = (string) $fracPart; - if ($precision >= 0) { - $fracLength = \strlen($fracPart); - if ($precision <= $fracLength) { - $scaledInt = $intPart . (string) substr($fracPart, 0, $precision); - $scaledFrac = (string) substr($fracPart, $precision); - } else { - $scaledInt = $intPart . $fracPart . str_repeat('0', $precision - $fracLength); - $scaledFrac = ''; - } - } else { - $shift = -$precision; - $intLength = \strlen($intPart); - if ($shift <= $intLength) { - $splitPos = $intLength - $shift; - $scaledInt = (string) substr($intPart, 0, $splitPos); - $scaledInt = '' === $scaledInt ? '0' : $scaledInt; - $scaledFrac = substr($intPart, $splitPos) . $fracPart; - } else { - $scaledInt = '0'; - $scaledFrac = str_repeat('0', $shift - $intLength) . $intPart . $fracPart; - } - } - $roundedInt = self::roundIntegerPart($scaledInt, $scaledFrac, $sign, $mode); - $isZero = '' === trim($roundedInt, '0'); - $absResult = self::formatRoundedDigits($roundedInt, $precision); - if (-1 === $sign && !$isZero) { - $absResult = '-' . $absResult; - } - return $absResult; - } - private static function roundIntegerPart(string $intPart, string $fracPart, int $sign, $mode): string - { - $intPart = self::trimLeadingZeros($intPart); - if ('' === $fracPart || '' === trim($fracPart, '0')) { - return $intPart; - } - $firstDigit = $fracPart[0]; - $tail = (string) substr($fracPart, 1); - $tailNonZero = '' !== trim($tail, '0'); - $isGreaterThanHalf = $firstDigit > '5' || '5' === $firstDigit && $tailNonZero; - $isExactlyHalf = '5' === $firstDigit && !$tailNonZero; - $shouldIncrease = \false; - switch ($mode) { - case \RoundingMode::TowardsZero: - break; - case \RoundingMode::AwayFromZero: - $shouldIncrease = \true; - break; - case \RoundingMode::PositiveInfinity: - $shouldIncrease = $sign > 0; - break; - case \RoundingMode::NegativeInfinity: - $shouldIncrease = $sign < 0; - break; - case \RoundingMode::HalfAwayFromZero: - $shouldIncrease = $isGreaterThanHalf || $isExactlyHalf; - break; - case \RoundingMode::HalfTowardsZero: - $shouldIncrease = $isGreaterThanHalf; - break; - case \RoundingMode::HalfEven: - if ($isGreaterThanHalf) { - $shouldIncrease = \true; - } elseif ($isExactlyHalf && 1 === self::lastDigit($intPart) % 2) { - $shouldIncrease = \true; - } - break; - case \RoundingMode::HalfOdd: - if ($isGreaterThanHalf) { - $shouldIncrease = \true; - } elseif ($isExactlyHalf && 0 === self::lastDigit($intPart) % 2) { - $shouldIncrease = \true; - } - break; - } - if ($shouldIncrease) { - $intPart = self::incrementDigits($intPart); - } - return self::trimLeadingZeros($intPart); - } - private static function formatRoundedDigits(string $roundedInt, int $precision): string - { - if ($precision > 0) { - if (\strlen($roundedInt) <= $precision) { - $roundedInt = str_pad($roundedInt, $precision + 1, '0', \STR_PAD_LEFT); - } - $intDigits = (string) substr($roundedInt, 0, -$precision); - $fracDigits = (string) substr($roundedInt, -$precision); - $intDigits = self::trimLeadingZeros('' === $intDigits ? '0' : $intDigits); - $fracDigits = str_pad($fracDigits, $precision, '0', \STR_PAD_LEFT); - return $intDigits . '.' . $fracDigits; - } - if (0 === $precision) { - return self::trimLeadingZeros($roundedInt); - } - $shift = -$precision; - $digits = $roundedInt . str_repeat('0', $shift); - return self::trimLeadingZeros($digits); - } - private static function incrementDigits(string $digits): string - { - $digits = '' === $digits ? '0' : $digits; - $index = \strlen($digits) - 1; - $result = $digits; - $carry = 1; - while ($index >= 0 && $carry) { - $value = \ord($result[$index]) - 48 + $carry; - $carry = $value >= 10 ? 1 : 0; - $result[$index] = \chr(48 + $value % 10); - --$index; - } - return $carry ? '1' . $result : $result; - } - private static function trimLeadingZeros(string $digits): string - { - $digits = ltrim($digits, '0'); - return '' === $digits ? '0' : $digits; - } - private static function lastDigit(string $digits): int - { - $length = \strlen($digits); - return $length ? \ord($digits[$length - 1]) - 48 : 0; - } -} diff --git a/vendor/symfony/polyfill-php84/README.md b/vendor/symfony/polyfill-php84/README.md deleted file mode 100644 index d1e335dc3eb..00000000000 --- a/vendor/symfony/polyfill-php84/README.md +++ /dev/null @@ -1,23 +0,0 @@ -Symfony Polyfill / Php84 -======================== - -This component provides features added to PHP 8.4 core: - -- [`array_find`, `array_find_key`, `array_any` and `array_all`](https://wiki.php.net/rfc/array_find) -- [`bcdivmod`](https://wiki.php.net/rfc/add_bcdivmod_to_bcmath) -- [`Deprecated`](https://wiki.php.net/rfc/deprecated_attribute) -- `CURL_HTTP_VERSION_3` and `CURL_HTTP_VERSION_3ONLY` constants -- [`fpow`](https://wiki.php.net/rfc/raising_zero_to_power_of_negative_number) -- [`grapheme_str_split`](https://wiki.php.net/rfc/grapheme_str_split) -- [`mb_trim`, `mb_ltrim` and `mb_rtrim`](https://wiki.php.net/rfc/mb_trim) -- [`mb_ucfirst` and `mb_lcfirst`](https://wiki.php.net/rfc/mb_ucfirst) -- [`PDO` driver specific sub-classes](https://wiki.php.net/rfc/pdo_driver_specific_subclasses) -- [`ReflectionConstant`](https://github.com/php/php-src/pull/13669) - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/vendor/symfony/polyfill-php84/Resources/Deprecated.php b/vendor/symfony/polyfill-php84/Resources/Deprecated.php deleted file mode 100644 index 322c917375d..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/Deprecated.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (\PHP_VERSION_ID < 80400) { - #[\Attribute(\Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION | \Attribute::TARGET_CLASS_CONSTANT)] - final class Deprecated - { - /** - * @readonly - */ - public ?string $message; - /** - * @readonly - */ - public ?string $since; - public function __construct(?string $message = null, ?string $since = null) - { - $this->message = $message; - $this->since = $since; - } - } - \class_alias('RectorPrefix202608\Deprecated', 'Deprecated', \false); -} diff --git a/vendor/symfony/polyfill-php84/Resources/RoundingMode.php b/vendor/symfony/polyfill-php84/Resources/RoundingMode.php deleted file mode 100644 index 26b2e0d1c53..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/RoundingMode.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (\PHP_VERSION_ID < 80400) { - class RoundingMode - { - public const HalfAwayFromZero = 'halfawayfromzero'; - public const HalfTowardsZero = 'halftowardszero'; - public const HalfEven = 'halfeven'; - public const HalfOdd = 'halfodd'; - public const TowardsZero = 'towardszero'; - public const AwayFromZero = 'awayfromzero'; - public const NegativeInfinity = 'negativeinfinity'; - public const PositiveInfinity = 'positiveinfinity'; - } - \class_alias('RectorPrefix202608\RoundingMode', 'RoundingMode', \false); -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/Deprecated.php b/vendor/symfony/polyfill-php84/Resources/stubs/Deprecated.php deleted file mode 100644 index ce934411e93..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/Deprecated.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (\PHP_VERSION_ID < 80100) { - #[\Attribute(\Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION | \Attribute::TARGET_CLASS_CONSTANT)] - final class Deprecated - { - /** - * @readonly - */ - public ?string $message; - /** - * @readonly - */ - public ?string $since; - public function __construct(?string $message = null, ?string $since = null) - { - $this->message = $message; - $this->since = $since; - } - } - \class_alias('RectorPrefix202608\Deprecated', 'Deprecated', \false); -} elseif (\PHP_VERSION_ID < 80400) { - require \dirname(__DIR__) . '/Deprecated.php'; -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Dblib.php b/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Dblib.php deleted file mode 100644 index 7c4bbc41402..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Dblib.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Pdo; - -if (\PHP_VERSION_ID < 80400 && \extension_loaded('pdo_dblib')) { - class Dblib extends \PDO - { - public const ATTR_CONNECTION_TIMEOUT = \PDO::DBLIB_ATTR_CONNECTION_TIMEOUT; - public const ATTR_QUERY_TIMEOUT = \PDO::DBLIB_ATTR_QUERY_TIMEOUT; - public const ATTR_STRINGIFY_UNIQUEIDENTIFIER = \PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER; - public const ATTR_VERSION = \PDO::DBLIB_ATTR_VERSION; - public const ATTR_TDS_VERSION = \PHP_VERSION_ID >= 70300 ? \PDO::DBLIB_ATTR_TDS_VERSION : 1004; - public const ATTR_SKIP_EMPTY_ROWSETS = \PHP_VERSION_ID >= 70300 ? \PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS : 1005; - public const ATTR_DATETIME_CONVERT = \PHP_VERSION_ID >= 70300 ? \PDO::DBLIB_ATTR_DATETIME_CONVERT : 1006; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('dblib' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Dblib::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Dblib::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Dblib::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - } -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Firebird.php b/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Firebird.php deleted file mode 100644 index 7a9cddeb6ef..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Firebird.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Pdo; - -if (\PHP_VERSION_ID < 80400 && \extension_loaded('pdo_firebird')) { - class Firebird extends \PDO - { - public const ATTR_DATE_FORMAT = \PDO::FB_ATTR_DATE_FORMAT; - public const ATTR_TIME_FORMAT = \PDO::FB_ATTR_TIME_FORMAT; - public const ATTR_TIMESTAMP_FORMAT = \PDO::FB_ATTR_TIMESTAMP_FORMAT; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('firebird' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Firebird::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Firebird::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Firebird::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - } -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Mysql.php b/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Mysql.php deleted file mode 100644 index 1a3b551aebc..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Mysql.php +++ /dev/null @@ -1,129 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Pdo; - -use PDO; -if (\PHP_VERSION_ID < 80400 && \extension_loaded('pdo_mysql')) { - // Feature detection for non-mysqlnd; see also https://www.php.net/manual/en/class.pdo-mysql.php#pdo-mysql.constants.attr-max-buffer-size - if (\defined('PDO::MYSQL_ATTR_MAX_BUFFER_SIZE') && \defined('PDO::MYSQL_ATTR_READ_DEFAULT_FILE') && \defined('PDO::MYSQL_ATTR_READ_DEFAULT_GROUP')) { - class Mysql extends \PDO - { - public const ATTR_COMPRESS = \PDO::MYSQL_ATTR_COMPRESS; - public const ATTR_DIRECT_QUERY = \PDO::MYSQL_ATTR_DIRECT_QUERY; - public const ATTR_FOUND_ROWS = \PDO::MYSQL_ATTR_FOUND_ROWS; - public const ATTR_IGNORE_SPACE = \PDO::MYSQL_ATTR_IGNORE_SPACE; - public const ATTR_INIT_COMMAND = \PDO::MYSQL_ATTR_INIT_COMMAND; - public const ATTR_LOCAL_INFILE = \PDO::MYSQL_ATTR_LOCAL_INFILE; - public const ATTR_LOCAL_INFILE_DIRECTORY = \PHP_VERSION_ID >= 80100 ? \PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY : 1015; - public const ATTR_MAX_BUFFER_SIZE = \PDO::MYSQL_ATTR_MAX_BUFFER_SIZE; - public const ATTR_MULTI_STATEMENTS = \PDO::MYSQL_ATTR_MULTI_STATEMENTS; - public const ATTR_READ_DEFAULT_FILE = \PDO::MYSQL_ATTR_READ_DEFAULT_FILE; - public const ATTR_READ_DEFAULT_GROUP = \PDO::MYSQL_ATTR_READ_DEFAULT_GROUP; - public const ATTR_SERVER_PUBLIC_KEY = \PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY; - public const ATTR_SSL_CA = \PDO::MYSQL_ATTR_SSL_CA; - public const ATTR_SSL_CAPATH = \PDO::MYSQL_ATTR_SSL_CAPATH; - public const ATTR_SSL_CERT = \PDO::MYSQL_ATTR_SSL_CERT; - public const ATTR_SSL_CIPHER = \PDO::MYSQL_ATTR_SSL_CIPHER; - public const ATTR_SSL_KEY = \PDO::MYSQL_ATTR_SSL_KEY; - public const ATTR_USE_BUFFERED_QUERY = \PDO::MYSQL_ATTR_USE_BUFFERED_QUERY; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('mysql' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Mysql::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Mysql::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Mysql::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - } - } elseif (\defined('PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT')) { - class Mysql extends \PDO - { - public const ATTR_COMPRESS = \PDO::MYSQL_ATTR_COMPRESS; - public const ATTR_DIRECT_QUERY = \PDO::MYSQL_ATTR_DIRECT_QUERY; - public const ATTR_FOUND_ROWS = \PDO::MYSQL_ATTR_FOUND_ROWS; - public const ATTR_IGNORE_SPACE = \PDO::MYSQL_ATTR_IGNORE_SPACE; - public const ATTR_INIT_COMMAND = \PDO::MYSQL_ATTR_INIT_COMMAND; - public const ATTR_LOCAL_INFILE = \PDO::MYSQL_ATTR_LOCAL_INFILE; - public const ATTR_LOCAL_INFILE_DIRECTORY = \PHP_VERSION_ID >= 80100 ? \PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY : 1015; - // public const ATTR_MAX_BUFFER_SIZE = PDO::MYSQL_ATTR_MAX_BUFFER_SIZE; // disabled for mysqlnd - public const ATTR_MULTI_STATEMENTS = \PDO::MYSQL_ATTR_MULTI_STATEMENTS; - // public const ATTR_READ_DEFAULT_FILE = PDO::MYSQL_ATTR_READ_DEFAULT_FILE; // disabled for mysqlnd - // public const ATTR_READ_DEFAULT_GROUP = PDO::MYSQL_ATTR_READ_DEFAULT_GROUP; // disabled for mysqlnd - public const ATTR_SERVER_PUBLIC_KEY = \PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY; - public const ATTR_SSL_CA = \PDO::MYSQL_ATTR_SSL_CA; - public const ATTR_SSL_CAPATH = \PDO::MYSQL_ATTR_SSL_CAPATH; - public const ATTR_SSL_CERT = \PDO::MYSQL_ATTR_SSL_CERT; - public const ATTR_SSL_CIPHER = \PDO::MYSQL_ATTR_SSL_CIPHER; - public const ATTR_SSL_KEY = \PDO::MYSQL_ATTR_SSL_KEY; - public const ATTR_SSL_VERIFY_SERVER_CERT = \PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT; - public const ATTR_USE_BUFFERED_QUERY = \PDO::MYSQL_ATTR_USE_BUFFERED_QUERY; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('mysql' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Mysql::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Mysql::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Mysql::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - } - } else { - class Mysql extends \PDO - { - public const ATTR_COMPRESS = \PDO::MYSQL_ATTR_COMPRESS; - public const ATTR_DIRECT_QUERY = \PDO::MYSQL_ATTR_DIRECT_QUERY; - public const ATTR_FOUND_ROWS = \PDO::MYSQL_ATTR_FOUND_ROWS; - public const ATTR_IGNORE_SPACE = \PDO::MYSQL_ATTR_IGNORE_SPACE; - public const ATTR_INIT_COMMAND = \PDO::MYSQL_ATTR_INIT_COMMAND; - public const ATTR_LOCAL_INFILE = \PDO::MYSQL_ATTR_LOCAL_INFILE; - public const ATTR_LOCAL_INFILE_DIRECTORY = \PHP_VERSION_ID >= 80100 ? \PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY : 1015; - // public const ATTR_MAX_BUFFER_SIZE = PDO::MYSQL_ATTR_MAX_BUFFER_SIZE; // disabled for mysqlnd - public const ATTR_MULTI_STATEMENTS = \PDO::MYSQL_ATTR_MULTI_STATEMENTS; - // public const ATTR_READ_DEFAULT_FILE = PDO::MYSQL_ATTR_READ_DEFAULT_FILE; // disabled for mysqlnd - // public const ATTR_READ_DEFAULT_GROUP = PDO::MYSQL_ATTR_READ_DEFAULT_GROUP; // disabled for mysqlnd - public const ATTR_SERVER_PUBLIC_KEY = \PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY; - public const ATTR_SSL_CA = \PDO::MYSQL_ATTR_SSL_CA; - public const ATTR_SSL_CAPATH = \PDO::MYSQL_ATTR_SSL_CAPATH; - public const ATTR_SSL_CERT = \PDO::MYSQL_ATTR_SSL_CERT; - public const ATTR_SSL_CIPHER = \PDO::MYSQL_ATTR_SSL_CIPHER; - public const ATTR_SSL_KEY = \PDO::MYSQL_ATTR_SSL_KEY; - public const ATTR_USE_BUFFERED_QUERY = \PDO::MYSQL_ATTR_USE_BUFFERED_QUERY; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('mysql' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Mysql::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Mysql::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Mysql::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - } - } -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Odbc.php b/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Odbc.php deleted file mode 100644 index 7f50e3cbd50..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Odbc.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Pdo; - -if (\PHP_VERSION_ID < 80400 && \extension_loaded('pdo_odbc')) { - class Odbc extends \PDO - { - public const ATTR_USE_CURSOR_LIBRARY = \PDO::ODBC_ATTR_USE_CURSOR_LIBRARY; - public const ATTR_ASSUME_UTF8 = \PDO::ODBC_ATTR_ASSUME_UTF8; - public const SQL_USE_IF_NEEDED = \PDO::ODBC_SQL_USE_IF_NEEDED; - public const SQL_USE_DRIVER = \PDO::ODBC_SQL_USE_DRIVER; - public const SQL_USE_ODBC = \PDO::ODBC_SQL_USE_ODBC; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('odbc' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Odbc::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Odbc::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Odbc::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - } -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Pgsql.php b/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Pgsql.php deleted file mode 100644 index 90c43ce0968..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Pgsql.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Pdo; - -if (\PHP_VERSION_ID < 80400 && \extension_loaded('pdo_pgsql')) { - class Pgsql extends \PDO - { - public const ATTR_DISABLE_PREPARES = \PDO::PGSQL_ATTR_DISABLE_PREPARES; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('pgsql' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Pgsql::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Pgsql::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Pgsql::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - public function pgsqlCopyFromArray(string $tableName, array $rows, string $separator = "\t", string $nullAs = '\\\\N', ?string $fields = null): bool - { - return $this->pgsqlCopyFromArray($tableName, $rows, $separator, $nullAs, $fields); - } - public function pgsqlCopyFromFile(string $tableName, string $filename, string $separator = "\t", string $nullAs = '\\\\N', ?string $fields = null): bool - { - return $this->pgsqlCopyFromFile($tableName, $filename, $separator, $nullAs, $fields); - } - /** - * @return array|false - */ - public function pgsqlCopyToArray(string $tableName, string $separator = "\t", string $nullAs = '\\\\N', ?string $fields = null) - { - return $this->pgsqlCopyToArray($tableName, $separator, $nullAs, $fields); - } - public function pgsqlCopyToFile(string $tableName, string $filename, string $separator = "\t", string $nullAs = '\\\\N', ?string $fields = null): bool - { - return $this->pgsqlCopyToFile($tableName, $filename, $separator, $nullAs, $fields); - } - /** - * @return array|false - */ - public function pgsqlGetNotify(int $fetchMode = \PDO::FETCH_DEFAULT, int $timeoutMilliseconds = 0) - { - return $this->pgsqlGetNotify($fetchMode, $timeoutMilliseconds); - } - public function pgsqlGetPid(): int - { - return $this->pgsqlGetPid(); - } - /** - * @return string|false - */ - public function pgsqlLOBCreate() - { - return $this->pgsqlLOBCreate(); - } - /** - * @return resource|false - */ - public function pgsqlLOBOpen(string $oid, string $mode = 'rb') - { - return $this->pgsqlLOBOpen($oid, $mode); - } - public function pgsqlLOBUnlink(string $oid): bool - { - return $this->pgsqlLOBUnlink($oid); - } - } -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Sqlite.php b/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Sqlite.php deleted file mode 100644 index 040f20e550d..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/Pdo/Sqlite.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Pdo; - -if (\PHP_VERSION_ID < 80400 && \extension_loaded('pdo_sqlite')) { - class Sqlite extends \PDO - { - public const ATTR_EXTENDED_RESULT_CODES = \PHP_VERSION_ID >= 70400 ? \PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES : 1002; - public const ATTR_OPEN_FLAGS = \PHP_VERSION_ID >= 70300 ? \PDO::SQLITE_ATTR_OPEN_FLAGS : 1000; - public const ATTR_READONLY_STATEMENT = \PHP_VERSION_ID >= 70400 ? \PDO::SQLITE_ATTR_READONLY_STATEMENT : 1001; - public const DETERMINISTIC = \PDO::SQLITE_DETERMINISTIC; - public const OPEN_READONLY = \PHP_VERSION_ID >= 70300 ? \PDO::SQLITE_OPEN_READONLY : 1; - public const OPEN_READWRITE = \PHP_VERSION_ID >= 70300 ? \PDO::SQLITE_OPEN_READWRITE : 2; - public const OPEN_CREATE = \PHP_VERSION_ID >= 70300 ? \PDO::SQLITE_OPEN_CREATE : 4; - public function __construct(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null) - { - parent::__construct($dsn, $username, $password, $options); - if ('sqlite' !== $driver = $this->getAttribute(\PDO::ATTR_DRIVER_NAME)) { - throw new \PDOException(\sprintf('Pdo\Sqlite::__construct() cannot be used for connecting to the "%s" driver', $driver)); - } - } - public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): self - { - try { - return new self($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw preg_match('/^Pdo\\\\Sqlite::__construct\(\) cannot be used for connecting to the "([a-z]+)" driver/', $e->getMessage(), $matches) ? new \PDOException(\sprintf('Pdo\Sqlite::connect() cannot be used for connecting to the "%s" driver', $matches[1])) : $e; - } - } - public function sqliteCreateAggregate(string $name, callable $step, callable $finalize, int $numArgs = -1): bool - { - return $this->sqliteCreateAggregate($name, $step, $finalize, $numArgs); - } - public function sqliteCreateCollation(string $name, callable $callback): bool - { - return $this->sqliteCreateCollation($name, $callback); - } - public function sqliteCreateFunction(string $function_name, callable $callback, int $num_args = -1, int $flags = 0): bool - { - return $this->sqliteCreateFunction($function_name, $callback, $num_args, $flags); - } - } -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php b/vendor/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php deleted file mode 100644 index 336f4d3d78e..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php +++ /dev/null @@ -1,142 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (\PHP_VERSION_ID < 80400) { - // @author Daniel Scherzer - final class ReflectionConstant - { - /** - * @var string - * - * @readonly - */ - public $name; - private $value; - private $deprecated; - private $persistent; - private static $persistentConstants = []; - public function __construct(string $name) - { - if (!\defined($name) || \false !== \strpos($name, '::')) { - throw new \ReflectionException("Constant \"{$name}\" does not exist"); - } - $this->name = \ltrim($name, '\\'); - $deprecated = \false; - $eh = \set_error_handler(static function ($type, $msg, $file, $line) use ($name, &$deprecated, &$eh) { - if (\E_DEPRECATED === $type && "Constant {$name} is deprecated" === $msg) { - return $deprecated = \true; - } - return $eh && $eh($type, $msg, $file, $line); - }); - try { - $this->value = \constant($name); - $this->deprecated = $deprecated; - } finally { - \restore_error_handler(); - } - } - public function getName(): string - { - return $this->name; - } - public function getValue() - { - return $this->value; - } - public function getNamespaceName(): string - { - if (\false === $slashPos = \strrpos($this->name, '\\')) { - return ''; - } - return (string) \substr($this->name, 0, $slashPos); - } - public function getShortName(): string - { - if (\false === $slashPos = \strrpos($this->name, '\\')) { - return $this->name; - } - return (string) \substr($this->name, $slashPos + 1); - } - public function isDeprecated(): bool - { - return $this->deprecated; - } - public function __toString(): string - { - // A constant is persistent if provided by PHP itself rather than - // being defined by users. If we got here, we know that it *is* - // defined, so we just need to figure out if it is defined by the - // user or not - if (!self::$persistentConstants) { - $persistentConstants = \get_defined_constants(\true); - unset($persistentConstants['user']); - foreach ($persistentConstants as $constants) { - self::$persistentConstants += $constants; - } - } - $persistent = \array_key_exists($this->name, self::$persistentConstants); - // Can't match the inclusion of `no_file_cache` but the rest is - // possible to match - $result = 'Constant [ '; - if ($persistent || $this->deprecated) { - $result .= '<'; - if ($persistent) { - $result .= 'persistent'; - if ($this->deprecated) { - $result .= ', '; - } - } - if ($this->deprecated) { - $result .= 'deprecated'; - } - $result .= '> '; - } - // Cannot just use gettype() to match zend_zval_type_name() - if (\is_object($this->value)) { - $result .= \PHP_VERSION_ID >= 80000 ? \get_debug_type($this->value) : \gettype($this->value); - } elseif (\is_bool($this->value)) { - $result .= 'bool'; - } elseif (\is_int($this->value)) { - $result .= 'int'; - } elseif (\is_float($this->value)) { - $result .= 'float'; - } elseif (null === $this->value) { - $result .= 'null'; - } else { - $result .= \gettype($this->value); - } - $result .= ' '; - $result .= $this->name; - $result .= ' ] { '; - if (\is_array($this->value)) { - $result .= 'Array'; - } else { - // This will throw an exception if the value is an object that - // cannot be converted to string; that is expected and matches - // the behavior of zval_get_string_func() - $result .= (string) $this->value; - } - $result .= " }\n"; - return $result; - } - public function __sleep(): array - { - throw new \Exception("Serialization of 'ReflectionConstant' is not allowed"); - } - public function __wakeup(): void - { - throw new \Exception("Unserialization of 'ReflectionConstant' is not allowed"); - } - } - // @author Daniel Scherzer - \class_alias('RectorPrefix202608\ReflectionConstant', 'ReflectionConstant', \false); -} diff --git a/vendor/symfony/polyfill-php84/Resources/stubs/RoundingMode.php b/vendor/symfony/polyfill-php84/Resources/stubs/RoundingMode.php deleted file mode 100644 index acacd5f0099..00000000000 --- a/vendor/symfony/polyfill-php84/Resources/stubs/RoundingMode.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (\PHP_VERSION_ID < 80100) { - final class RoundingMode - { - const HalfAwayFromZero = 0; - const HalfTowardsZero = 1; - const HalfEven = 2; - const HalfOdd = 3; - const TowardsZero = 4; - const AwayFromZero = 5; - const NegativeInfinity = 6; - const PositiveInfinity = 7; - private function __construct() - { - } - public static function cases(): array - { - return [self::HalfAwayFromZero, self::HalfTowardsZero, self::HalfEven, self::HalfOdd, self::TowardsZero, self::AwayFromZero, self::NegativeInfinity, self::PositiveInfinity]; - } - } - \class_alias('RectorPrefix202608\RoundingMode', 'RoundingMode', \false); -} elseif (\PHP_VERSION_ID < 80400) { - require \dirname(__DIR__) . '/RoundingMode.php'; -} diff --git a/vendor/symfony/polyfill-php84/bootstrap.php b/vendor/symfony/polyfill-php84/bootstrap.php deleted file mode 100644 index ecdc0251732..00000000000 --- a/vendor/symfony/polyfill-php84/bootstrap.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php84 as p; - -if (\PHP_VERSION_ID >= 80400) { - return; -} - -if (\extension_loaded('curl')) { - // CURL_VERSION_HTTP3 is defined by PHP 8.2+ when libcurl >= 7.66.0 - if (defined('CURL_VERSION_HTTP3') || \PHP_VERSION_ID < 80200 && curl_version()['version_number'] >= 0x074200) { - if (!defined('CURL_HTTP_VERSION_3')) { - define('CURL_HTTP_VERSION_3', 30); - } - - // CURL_HTTP_VERSION_3ONLY requires libcurl >= 7.88.0 and is not gated by any PHP-defined constant before 8.4 - if (!defined('CURL_HTTP_VERSION_3ONLY') && curl_version()['version_number'] >= 0x075800) { - define('CURL_HTTP_VERSION_3ONLY', 31); - } - } -} - -if (!function_exists('array_find')) { - function array_find(array $array, callable $callback) { return p\Php84::array_find($array, $callback); } -} - -if (!function_exists('array_find_key')) { - function array_find_key(array $array, callable $callback) { return p\Php84::array_find_key($array, $callback); } -} - -if (!function_exists('array_any')) { - function array_any(array $array, callable $callback): bool { return p\Php84::array_any($array, $callback); } -} - -if (!function_exists('array_all')) { - function array_all(array $array, callable $callback): bool { return p\Php84::array_all($array, $callback); } -} - -if (!function_exists('fpow')) { - function fpow(float $num, float $exponent): float { return p\Php84::fpow($num, $exponent); } -} - -if (\PHP_VERSION_ID < 80000) { - require __DIR__.'/bootstrap72.php'; -} - -if (extension_loaded('mbstring')) { - if (!function_exists('mb_ucfirst')) { - function mb_ucfirst(?string $string, ?string $encoding = null): string { return p\Php84::mb_ucfirst((string) $string, $encoding); } - } - - if (!function_exists('mb_lcfirst')) { - function mb_lcfirst(?string $string, ?string $encoding = null): string { return p\Php84::mb_lcfirst((string) $string, $encoding); } - } - - if (!function_exists('mb_trim')) { - function mb_trim(?string $string, ?string $characters = null, ?string $encoding = null): string { return p\Php84::mb_trim((string) $string, $characters, $encoding); } - } - - if (!function_exists('mb_ltrim')) { - function mb_ltrim(?string $string, ?string $characters = null, ?string $encoding = null): string { return p\Php84::mb_ltrim((string) $string, $characters, $encoding); } - } - - if (!function_exists('mb_rtrim')) { - function mb_rtrim(?string $string, ?string $characters = null, ?string $encoding = null): string { return p\Php84::mb_rtrim((string) $string, $characters, $encoding); } - } -} - -if (extension_loaded('bcmath')) { - if (!function_exists('bcceil')) { - function bcceil(string $num): string { return p\Php84::bcceil($num); } - } - if (!function_exists('bcdivmod')) { - function bcdivmod(string $num1, string $num2, ?int $scale = null): ?array { return p\Php84::bcdivmod($num1, $num2, $scale); } - } - if (!function_exists('bcfloor')) { - function bcfloor(string $num): string { return p\Php84::bcfloor($num); } - } - if (!function_exists('bcround')) { - function bcround(string $num, int $precision = 0, $mode = RoundingMode::HalfAwayFromZero): string { return p\Php84::bcround($num, $precision, $mode); } - } -} - -if (\PHP_VERSION_ID >= 80200) { - return require __DIR__.'/bootstrap82.php'; -} - -if (extension_loaded('intl') && !function_exists('grapheme_str_split')) { - function grapheme_str_split(string $string, int $length = 1) { return p\Php84::grapheme_str_split($string, $length); } -} diff --git a/vendor/symfony/polyfill-php84/bootstrap72.php b/vendor/symfony/polyfill-php84/bootstrap72.php deleted file mode 100644 index 599e45f9d02..00000000000 --- a/vendor/symfony/polyfill-php84/bootstrap72.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php84 as p; - -if (extension_loaded('mbstring')) { - if (!function_exists('mb_ucfirst')) { - /** @return string|false */ - function mb_ucfirst(?string $string, ?string $encoding = null) { return p\Php84::mb_ucfirst((string) $string, $encoding); } - } - - if (!function_exists('mb_lcfirst')) { - /** @return string|false */ - function mb_lcfirst(?string $string, ?string $encoding = null) { return p\Php84::mb_lcfirst((string) $string, $encoding); } - } - - if (!function_exists('mb_trim')) { - /** @return string|false */ - function mb_trim(?string $string, ?string $characters = null, ?string $encoding = null) { return p\Php84::mb_trim((string) $string, $characters, $encoding); } - } - - if (!function_exists('mb_ltrim')) { - /** @return string|false */ - function mb_ltrim(?string $string, ?string $characters = null, ?string $encoding = null) { return p\Php84::mb_ltrim((string) $string, $characters, $encoding); } - } - - if (!function_exists('mb_rtrim')) { - /** @return string|false */ - function mb_rtrim(?string $string, ?string $characters = null, ?string $encoding = null) { return p\Php84::mb_rtrim((string) $string, $characters, $encoding); } - } -} diff --git a/vendor/symfony/polyfill-php84/bootstrap82.php b/vendor/symfony/polyfill-php84/bootstrap82.php deleted file mode 100644 index d7b1737b8ef..00000000000 --- a/vendor/symfony/polyfill-php84/bootstrap82.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php84 as p; - -if (\PHP_VERSION_ID >= 80400) { - return; -} - -if (extension_loaded('intl') && !function_exists('grapheme_str_split')) { - /** - * @return mixed[]|false - */ - function grapheme_str_split(string $string, int $length = 1) { return p\Php84::grapheme_str_split($string, $length); } -} diff --git a/vendor/symfony/polyfill-php84/composer.json b/vendor/symfony/polyfill-php84/composer.json deleted file mode 100644 index cd26ba7bdac..00000000000 --- a/vendor/symfony/polyfill-php84/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "symfony\/polyfill-php84", - "type": "library", - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", - "keywords": [ - "polyfill", - "shim", - "compatibility", - "portable" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=7.2" - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources\/stubs" - ] - }, - "minimum-stability": "dev", - "extra": { - "thanks": { - "name": "symfony\/polyfill", - "url": "https:\/\/github.com\/symfony\/polyfill" - } - } -} \ No newline at end of file diff --git a/vendor/symfony/polyfill-php85/LICENSE b/vendor/symfony/polyfill-php85/LICENSE deleted file mode 100644 index bc38d714ef6..00000000000 --- a/vendor/symfony/polyfill-php85/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2025-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/symfony/polyfill-php85/Php85.php b/vendor/symfony/polyfill-php85/Php85.php deleted file mode 100644 index 80687d89fba..00000000000 --- a/vendor/symfony/polyfill-php85/Php85.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace Symfony\Polyfill\Php85; - -/** - * @author Pierre Ambroise - * @author Alexander Schranz - * - * @internal - */ -final class Php85 -{ - public static function get_error_handler(): ?callable - { - $handler = set_error_handler(null); - restore_error_handler(); - return $handler; - } - public static function get_exception_handler(): ?callable - { - $handler = set_exception_handler(null); - restore_exception_handler(); - return $handler; - } - public static function array_first(array $array) - { - foreach ($array as $value) { - return $value; - } - return null; - } - public static function array_last(array $array) - { - return $array ? current(\array_slice($array, -1)) : null; - } - private const RTL_SCRIPTS = ['Adlm' => \true, 'Arab' => \true, 'Armi' => \true, 'Hebr' => \true, 'Mand' => \true, 'Mani' => \true, 'Mend' => \true, 'Nkoo' => \true, 'Orkh' => \true, 'Phnx' => \true, 'Rohg' => \true, 'Samr' => \true, 'Syrc' => \true, 'Thaa' => \true, 'Yezi' => \true]; - private const LANG_TO_SCRIPT = ['ar' => 'Arab', 'ckb' => 'Arab', 'dv' => 'Thaa', 'fa' => 'Arab', 'he' => 'Hebr', 'ku' => 'Arab', 'nqo' => 'Nkoo', 'ps' => 'Arab', 'sd' => 'Arab', 'ug' => 'Arab', 'ur' => 'Arab', 'yi' => 'Hebr']; - public static function locale_is_right_to_left(string $locale): bool - { - if ('' === $locale) { - return \false; - } - $parts = preg_split('/[_-]/', $locale); - $language = strtolower($parts[0]); - foreach ($parts as $part) { - if (4 === \strlen($part) && ctype_alpha($part)) { - return isset(self::RTL_SCRIPTS[ucfirst(strtolower($part))]); - } - } - return isset(self::LANG_TO_SCRIPT[$language]) && isset(self::RTL_SCRIPTS[self::LANG_TO_SCRIPT[$language]]); - } - public static function grapheme_levenshtein(string $s1, string $s2, int $insertion_cost = 1, int $replacement_cost = 1, int $deletion_cost = 1) - { - if (!preg_match('//u', $s1) || !preg_match('//u', $s2)) { - return \false; - } - if (0 > $insertion_cost || 0 > $replacement_cost || 0 > $deletion_cost) { - throw new \ValueError('grapheme_levenshtein(): Argument #3 ($insertion_cost), #4 ($replacement_cost), and #5 ($deletion_cost) must be greater than or equal to 0'); - } - $regex = (float) \PCRE_VERSION >= 10.44 ? '\X' : '(?:\r\n|[\x{1F1E6}-\x{1F1FF}][\x{1F1E6}-\x{1F1FF}]?|(?:[ -~\x{200C}\x{200D}]|[ᆨ-ᇹ]+|[ᄀ-ᅟ]*(?:[가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기까깨꺄꺠꺼께껴꼐꼬꽈꽤꾀꾜꾸꿔꿰뀌뀨끄끠끼나내냐냬너네녀녜노놔놰뇌뇨누눠눼뉘뉴느늬니다대댜댸더데뎌뎨도돠돼되됴두둬뒈뒤듀드듸디따때땨떄떠떼뗘뗴또똬뙈뙤뚀뚜뚸뛔뛰뜌뜨띄띠라래랴럐러레려례로롸뢔뢰료루뤄뤠뤼류르릐리마매먀먜머메며몌모뫄뫠뫼묘무뭐뭬뮈뮤므믜미바배뱌뱨버베벼볘보봐봬뵈뵤부붜붸뷔뷰브븨비빠빼뺘뺴뻐뻬뼈뼤뽀뽜뽸뾔뾰뿌뿨쀄쀠쀼쁘쁴삐사새샤섀서세셔셰소솨쇄쇠쇼수숴쉐쉬슈스싀시싸쌔쌰썌써쎄쎠쎼쏘쏴쐐쐬쑈쑤쒀쒜쒸쓔쓰씌씨아애야얘어에여예오와왜외요우워웨위유으의이자재쟈쟤저제져졔조좌좨죄죠주줘줴쥐쥬즈즤지짜째쨔쨰쩌쩨쪄쪠쪼쫘쫴쬐쬬쭈쭤쮀쮜쮸쯔쯰찌차채챠챼처체쳐쳬초촤쵀최쵸추춰췌취츄츠츼치카캐캬컈커케켜켸코콰쾌쾨쿄쿠쿼퀘퀴큐크킈키타태탸턔터테텨톄토톼퇘퇴툐투퉈퉤튀튜트틔티파패퍄퍠퍼페펴폐포퐈퐤푀표푸풔풰퓌퓨프픠피하해햐햬허헤혀혜호화홰회효후훠훼휘휴흐희히]?[ᅠ-ᆢ]+|[가-힣])[ᆨ-ᇹ]*|[ᄀ-ᅟ]+|[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}])[\p{Mn}\p{Mc}\p{Me}\x{09BE}\x{09D7}\x{0B3E}\x{0B57}\x{0BBE}\x{0BD7}\x{0CC2}\x{0CD5}\x{0CD6}\x{0D3E}\x{0D57}\x{0DCF}\x{0DDF}\x{200C}\x{1D165}\x{1D16E}-\x{1D172}\x{1F3FB}-\x{1F3FF}\x{FE0E}-\x{FE0F}\x{E0020}-\x{E007F}]*(?:\x{200D}(?:[\x{1F1E6}-\x{1F1FF}]|[ -~\x{200C}\x{200D}]|[ᆨ-ᇹ]+|[ᄀ-ᅟ]*(?:[가-힣]?[ᅠ-ᆢ]+|[가-힣])[ᆨ-ᇹ]*|[ᄀ-ᅟ]+|[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}])[\p{Mn}\p{Mc}\p{Me}\x{09BE}\x{09D7}\x{0B3E}\x{0B57}\x{0BBE}\x{0BD7}\x{0CC2}\x{0CD5}\x{0CD6}\x{0D3E}\x{0D57}\x{0DCF}\x{0DDF}\x{200C}\x{1D165}\x{1D16E}-\x{1D172}\x{1F3FB}-\x{1F3FF}\x{FE0E}-\x{FE0F}\x{E0020}-\x{E007F}]*)*|[\p{Cc}\p{Cf}\p{Zl}\p{Zp}])'; - preg_match_all('/' . $regex . '/u', $s1, $s1); - preg_match_all('/' . $regex . '/u', $s2, $s2); - $s1 = $s1[0]; - $s2 = $s2[0]; - $l1 = \count($s1); - $l2 = \count($s2); - if (0 === $l1) { - return $l2 * $insertion_cost; - } - if (0 === $l2) { - return $l1 * $deletion_cost; - } - $dp = array_fill(0, $l1 + 1, array_fill(0, $l2 + 1, 0)); - for ($i = 1; $i <= $l1; ++$i) { - $dp[$i][0] = $dp[$i - 1][0] + $deletion_cost; - } - for ($j = 1; $j <= $l2; ++$j) { - $dp[0][$j] = $dp[0][$j - 1] + $insertion_cost; - } - for ($i = 1; $i <= $l1; ++$i) { - for ($j = 1; $j <= $l2; ++$j) { - $cost = $s1[$i - 1] === $s2[$j - 1] ? 0 : $replacement_cost; - $dp[$i][$j] = min($dp[$i - 1][$j] + $deletion_cost, $dp[$i][$j - 1] + $insertion_cost, $dp[$i - 1][$j - 1] + $cost); - } - } - return $dp[$l1][$l2]; - } -} diff --git a/vendor/symfony/polyfill-php85/README.md b/vendor/symfony/polyfill-php85/README.md deleted file mode 100644 index 36e1ecdb972..00000000000 --- a/vendor/symfony/polyfill-php85/README.md +++ /dev/null @@ -1,20 +0,0 @@ -Symfony Polyfill / Php85 -======================== - -This component provides features added to PHP 8.5 core: - -- [`get_error_handler` and `get_exception_handler`](https://wiki.php.net/rfc/get-error-exception-handler) -- [`NoDiscard`](https://wiki.php.net/rfc/marking_return_value_as_important) -- [`array_first` and `array_last`](https://wiki.php.net/rfc/array_first_last) -- [`DelayedTargetValidation`](https://wiki.php.net/rfc/delayedtargetvalidation_attribute) -- [`Filter\FilterException class`](https://wiki.php.net/rfc/filter_throw_on_failure) -- [`Filter\FilterFailedException class`](https://wiki.php.net/rfc/filter_throw_on_failure) -- [`locale_is_right_to_left`](https://php.watch/versions/8.5/locale_is_right_to_left-Locale-isRightToleft) - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/vendor/symfony/polyfill-php85/Resources/stubs/DelayedTargetValidation.php b/vendor/symfony/polyfill-php85/Resources/stubs/DelayedTargetValidation.php deleted file mode 100644 index 6600ebc372f..00000000000 --- a/vendor/symfony/polyfill-php85/Resources/stubs/DelayedTargetValidation.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (\PHP_VERSION_ID < 80500) { - // @author Daniel Scherzer - #[\Attribute(\Attribute::TARGET_ALL)] - final class DelayedTargetValidation - { - } - // @author Daniel Scherzer - \class_alias('RectorPrefix202608\DelayedTargetValidation', 'DelayedTargetValidation', \false); -} diff --git a/vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterException.php b/vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterException.php deleted file mode 100644 index 6bbf5465e4a..00000000000 --- a/vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterException.php +++ /dev/null @@ -1,17 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Filter; - -if (\PHP_VERSION_ID < 80500) { - class FilterException extends \Exception - { - } -} diff --git a/vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterFailedException.php b/vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterFailedException.php deleted file mode 100644 index 280f53a1a0d..00000000000 --- a/vendor/symfony/polyfill-php85/Resources/stubs/Filter/FilterFailedException.php +++ /dev/null @@ -1,17 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Filter; - -if (\PHP_VERSION_ID < 80500) { - class FilterFailedException extends FilterException - { - } -} diff --git a/vendor/symfony/polyfill-php85/Resources/stubs/NoDiscard.php b/vendor/symfony/polyfill-php85/Resources/stubs/NoDiscard.php deleted file mode 100644 index eb0302294e4..00000000000 --- a/vendor/symfony/polyfill-php85/Resources/stubs/NoDiscard.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (\PHP_VERSION_ID < 80500) { - #[\Attribute(\Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION)] - final class NoDiscard - { - public ?string $message; - public function __construct(?string $message = null) - { - $this->message = $message; - } - } - \class_alias('RectorPrefix202608\NoDiscard', 'NoDiscard', \false); -} diff --git a/vendor/symfony/polyfill-php85/bootstrap.php b/vendor/symfony/polyfill-php85/bootstrap.php deleted file mode 100644 index c68b01b30bb..00000000000 --- a/vendor/symfony/polyfill-php85/bootstrap.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php85 as p; - -if (\PHP_VERSION_ID >= 80500) { - return; -} - -if (!function_exists('get_error_handler')) { - function get_error_handler(): ?callable { return p\Php85::get_error_handler(); } -} - -if (!function_exists('get_exception_handler')) { - function get_exception_handler(): ?callable { return p\Php85::get_exception_handler(); } -} - -if (!function_exists('array_first')) { - function array_first(array $array) { return p\Php85::array_first($array); } -} - -if (!function_exists('array_last')) { - function array_last(array $array) { return p\Php85::array_last($array); } -} - -if (extension_loaded('intl') && !function_exists('locale_is_right_to_left')) { - function locale_is_right_to_left(string $locale): bool { return p\Php85::locale_is_right_to_left($locale); } -} - -if (\PHP_VERSION_ID >= 80000) { - require __DIR__.'/bootstrap80.php'; - - return; -} - -if (!class_exists('ValueError', false)) { - class ValueError extends Error - { - } -} - -if (extension_loaded('intl') && !function_exists('grapheme_levenshtein')) { - function grapheme_levenshtein(string $string1, string $string2, int $insertion_cost = 1, int $replacement_cost = 1, int $deletion_cost = 1, string $locale = '') { return p\Php85::grapheme_levenshtein($string1, $string2, $insertion_cost, $replacement_cost, $deletion_cost); } -} diff --git a/vendor/symfony/polyfill-php85/bootstrap80.php b/vendor/symfony/polyfill-php85/bootstrap80.php deleted file mode 100644 index 83174e80b28..00000000000 --- a/vendor/symfony/polyfill-php85/bootstrap80.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php85 as p; - -if (\PHP_VERSION_ID >= 80500) { - return; -} - -if (extension_loaded('intl') && !function_exists('grapheme_levenshtein')) { - /** - * @return int|false - */ - function grapheme_levenshtein(string $string1, string $string2, int $insertion_cost = 1, int $replacement_cost = 1, int $deletion_cost = 1, string $locale = '') { return p\Php85::grapheme_levenshtein($string1, $string2, $insertion_cost, $replacement_cost, $deletion_cost); } -} diff --git a/vendor/symfony/polyfill-php85/composer.json b/vendor/symfony/polyfill-php85/composer.json deleted file mode 100644 index a28621e5901..00000000000 --- a/vendor/symfony/polyfill-php85/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "symfony\/polyfill-php85", - "type": "library", - "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions", - "keywords": [ - "polyfill", - "shim", - "compatibility", - "portable" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=7.2" - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php85\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources\/stubs" - ] - }, - "minimum-stability": "dev", - "extra": { - "thanks": { - "name": "symfony\/polyfill", - "url": "https:\/\/github.com\/symfony\/polyfill" - } - } -} \ No newline at end of file From 59ca88ab1fb1d7010cbf99793364d1310d40f655 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 23 Aug 2026 10:10:24 +0000 Subject: [PATCH 022/169] Updated Rector to commit cd3ec48e1209436d03d9c67d47c51ac4972a20cc --- vendor/composer/installed.json | 48 +++++++------------ vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- vendor/rector/rector-doctrine/composer.json | 5 -- .../rector/rector-downgrade-php/composer.json | 5 -- vendor/rector/rector-phpunit/composer.json | 5 -- vendor/rector/rector-symfony/composer.json | 5 -- 7 files changed, 18 insertions(+), 54 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 612acc41654..e36c7f0e1cb 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "6b8e03db69a15474566bd4aad90cf58c6ef0f4f5" + "reference": "1e596a9b01afed66519c816aa707f21b1b7a82a1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/6b8e03db69a15474566bd4aad90cf58c6ef0f4f5", - "reference": "6b8e03db69a15474566bd4aad90cf58c6ef0f4f5", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/1e596a9b01afed66519c816aa707f21b1b7a82a1", + "reference": "1e596a9b01afed66519c816aa707f21b1b7a82a1", "shasum": "" }, "require": { @@ -1580,17 +1580,13 @@ "rector\/swiss-knife": "^2.4", "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-rules": "^14.12", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1.8", "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-22T18:24:38+00:00", + "time": "2026-08-23T10:07:49+00:00", "default-branch": true, "type": "rector-extension", - "extra": { - "enable-patching": true - }, "installation-source": "dist", "autoload": { "psr-4": { @@ -1617,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0" + "reference": "b5f9ce1e1f00dac97d8a1ea742aa0ec864718136" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0", - "reference": "399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/b5f9ce1e1f00dac97d8a1ea742aa0ec864718136", + "reference": "b5f9ce1e1f00dac97d8a1ea742aa0ec864718136", "shasum": "" }, "require": { @@ -1641,18 +1637,14 @@ "symplify\/phpstan-extensions": "^12.0", "symplify\/phpstan-rules": "^14.12", "symplify\/rule-doc-generator": "^12.2", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-12T23:00:00+00:00", + "time": "2026-08-23T10:07:59+00:00", "default-branch": true, "type": "rector-extension", - "extra": { - "enable-patching": true - }, "installation-source": "dist", "autoload": { "psr-4": { @@ -1679,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "e9265f2df3567b8db4f1fe7d0f0997a566eac0d0" + "reference": "0f24ff481b99c26ddbe122e1d66437e1cfa4ddea" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/e9265f2df3567b8db4f1fe7d0f0997a566eac0d0", - "reference": "e9265f2df3567b8db4f1fe7d0f0997a566eac0d0", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/0f24ff481b99c26ddbe122e1d66437e1cfa4ddea", + "reference": "0f24ff481b99c26ddbe122e1d66437e1cfa4ddea", "shasum": "" }, "require": { @@ -1705,18 +1697,14 @@ "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-extensions": "^12.0", "symplify\/phpstan-rules": "^14.12", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-20T16:01:15+00:00", + "time": "2026-08-23T10:07:51+00:00", "default-branch": true, "type": "rector-extension", - "extra": { - "enable-patching": true - }, "installation-source": "dist", "autoload": { "psr-4": { @@ -1743,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "9e1e11a62fd3840c5011dc062af8356e2d225c68" + "reference": "b984034c1027c574257677b9624f27188c4068ea" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/9e1e11a62fd3840c5011dc062af8356e2d225c68", - "reference": "9e1e11a62fd3840c5011dc062af8356e2d225c68", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/b984034c1027c574257677b9624f27188c4068ea", + "reference": "b984034c1027c574257677b9624f27188c4068ea", "shasum": "" }, "require": { @@ -1774,19 +1762,15 @@ "symfony\/web-link": "^6.4", "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-rules": "^14.12", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-20T17:05:15+00:00", + "time": "2026-08-23T10:07:54+00:00", "default-branch": true, "type": "rector-extension", - "extra": { - "enable-patching": true - }, "installation-source": "dist", "autoload": { "psr-4": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 7c450ef6b18..24ebd71e830 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.9', 'version' => '0.4.9.0', 'reference' => '856fea65681d3fe0fb17b947ae0eacef895dd407', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6b8e03db69a15474566bd4aad90cf58c6ef0f4f5', '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' => '399f1855f7bc02c62e603f3f7d5ae8e3cd6002e0', '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' => 'e9265f2df3567b8db4f1fe7d0f0997a566eac0d0', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9e1e11a62fd3840c5011dc062af8356e2d225c68', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.9', 'version' => '0.4.9.0', 'reference' => '856fea65681d3fe0fb17b947ae0eacef895dd407', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b984034c1027c574257677b9624f27188c4068ea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 5683df069da..ee723bbb934 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 6b8e03d'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 399f185'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e9265f2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9e1e11a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main b984034')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/composer.json b/vendor/rector/rector-doctrine/composer.json index a668d473b61..a9b02db7909 100644 --- a/vendor/rector/rector-doctrine/composer.json +++ b/vendor/rector/rector-doctrine/composer.json @@ -19,7 +19,6 @@ "rector\/rector-src": "dev-main", "rector\/swiss-knife": "^2.4", "symplify\/phpstan-rules": "^14.12", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1.8", "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" @@ -52,15 +51,11 @@ "check-cs": "vendor\/bin\/ecs check --ansi", "fix-cs": "vendor\/bin\/ecs check --fix --ansi" }, - "extra": { - "enable-patching": true - }, "minimum-stability": "dev", "prefer-stable": true, "config": { "sort-packages": true, "allow-plugins": { - "cweagans\/composer-patches": true, "rector\/extension-installer": true, "phpstan\/extension-installer": true } diff --git a/vendor/rector/rector-downgrade-php/composer.json b/vendor/rector/rector-downgrade-php/composer.json index c66690860b5..1a27716633a 100644 --- a/vendor/rector/rector-downgrade-php/composer.json +++ b/vendor/rector/rector-downgrade-php/composer.json @@ -19,7 +19,6 @@ "symplify\/phpstan-extensions": "^12.0", "symplify\/phpstan-rules": "^14.12", "symplify\/rule-doc-generator": "^12.2", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", @@ -49,15 +48,11 @@ "check-cs": "vendor\/bin\/ecs check --ansi", "fix-cs": "vendor\/bin\/ecs check --fix --ansi" }, - "extra": { - "enable-patching": true - }, "minimum-stability": "dev", "prefer-stable": true, "config": { "sort-packages": true, "allow-plugins": { - "cweagans\/composer-patches": true, "rector\/extension-installer": true, "phpstan\/extension-installer": true } diff --git a/vendor/rector/rector-phpunit/composer.json b/vendor/rector/rector-phpunit/composer.json index ed1660a75ad..a395909467a 100644 --- a/vendor/rector/rector-phpunit/composer.json +++ b/vendor/rector/rector-phpunit/composer.json @@ -18,7 +18,6 @@ "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-extensions": "^12.0", "symplify\/phpstan-rules": "^14.12", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", @@ -58,9 +57,6 @@ "fix-cs": "vendor\/bin\/ecs check --fix --ansi", "rector": "vendor\/bin\/rector process --ansi" }, - "extra": { - "enable-patching": true - }, "conflict": { "rector\/rector": "<2.0" }, @@ -69,7 +65,6 @@ "config": { "sort-packages": true, "allow-plugins": { - "cweagans\/composer-patches": true, "rector\/extension-installer": true, "phpstan\/extension-installer": true } diff --git a/vendor/rector/rector-symfony/composer.json b/vendor/rector/rector-symfony/composer.json index 921819a42fe..a53bd147317 100644 --- a/vendor/rector/rector-symfony/composer.json +++ b/vendor/rector/rector-symfony/composer.json @@ -26,7 +26,6 @@ "symfony\/web-link": "^6.4", "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-rules": "^14.12", - "symplify\/vendor-patches": "^11.5", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", @@ -59,15 +58,11 @@ "check-cs": "vendor\/bin\/ecs check --ansi", "fix-cs": "vendor\/bin\/ecs check --fix --ansi" }, - "extra": { - "enable-patching": true - }, "minimum-stability": "dev", "prefer-stable": true, "config": { "sort-packages": true, "allow-plugins": { - "cweagans\/composer-patches": true, "rector\/extension-installer": true, "phpstan\/extension-installer": true } From 886fbc350580e07af7e1808e76f15f36e2dd3898 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 24 Aug 2026 11:05:34 +0000 Subject: [PATCH 023/169] Updated Rector to commit 5fea92b8e7848b435325703649aeae820e795b1c https://github.com/rectorphp/rector-src/commit/5fea92b8e7848b435325703649aeae820e795b1c [DI] Register PHPStan PhpVersionFactory as public service so 3rd-party rules can autowire it (#8365) --- src/Application/VersionResolver.php | 4 ++-- src/DependencyInjection/LazyContainerFactory.php | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 45a71abd3ff..2feca855db1 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 = 'cd3ec48e1209436d03d9c67d47c51ac4972a20cc'; + public const PACKAGE_VERSION = '5fea92b8e7848b435325703649aeae820e795b1c'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-23 11:51:19'; + public const RELEASE_DATE = '2026-08-24 13:03:00'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index e951c0af015..7474c99e6bc 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -9,6 +9,7 @@ use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; use PHPStan\Parser\Parser; +use PHPStan\Php\PhpVersionFactory; use PHPStan\PhpDoc\TypeNodeResolver; use PHPStan\PhpDocParser\ParserConfig; use PHPStan\Reflection\ReflectionProvider; @@ -206,7 +207,7 @@ final class LazyContainerFactory /** * @var array */ - private const PUBLIC_PHPSTAN_SERVICE_TYPES = [ScopeFactory::class, TypeNodeResolver::class, NodeScopeResolver::class, ReflectionProvider::class]; + private const PUBLIC_PHPSTAN_SERVICE_TYPES = [ScopeFactory::class, TypeNodeResolver::class, NodeScopeResolver::class, ReflectionProvider::class, PhpVersionFactory::class]; /** * @var array> */ From 0e7e12a46c0ae9217adde976ad2e57b3c74dbd48 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 24 Aug 2026 21:11:33 +0000 Subject: [PATCH 024/169] Updated Rector to commit 5fea92b8e7848b435325703649aeae820e795b1c --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- vendor/rector/rector-symfony/src/Set/SymfonySetList.php | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e36c7f0e1cb..e39537fa2e0 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "b984034c1027c574257677b9624f27188c4068ea" + "reference": "d07935945a8d93026f0a52fd84a94f58c4c96bc6" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/b984034c1027c574257677b9624f27188c4068ea", - "reference": "b984034c1027c574257677b9624f27188c4068ea", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/d07935945a8d93026f0a52fd84a94f58c4c96bc6", + "reference": "d07935945a8d93026f0a52fd84a94f58c4c96bc6", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-23T10:07:54+00:00", + "time": "2026-08-24T21:08:28+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 24ebd71e830..5b239b87a3e 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.9', 'version' => '0.4.9.0', 'reference' => '856fea65681d3fe0fb17b947ae0eacef895dd407', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b984034c1027c574257677b9624f27188c4068ea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.9', 'version' => '0.4.9.0', 'reference' => '856fea65681d3fe0fb17b947ae0eacef895dd407', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'd07935945a8d93026f0a52fd84a94f58c4c96bc6', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 ee723bbb934..9294d26c9dd 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main b984034')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main d079359')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/src/Set/SymfonySetList.php b/vendor/rector/rector-symfony/src/Set/SymfonySetList.php index 19b0734e8e2..a3c6242845a 100644 --- a/vendor/rector/rector-symfony/src/Set/SymfonySetList.php +++ b/vendor/rector/rector-symfony/src/Set/SymfonySetList.php @@ -26,7 +26,7 @@ final class SymfonySetList */ public const SYMFONY_CONSTRUCTOR_INJECTION = __DIR__ . '/../../config/sets/symfony/symfony-constructor-injection.php'; /** - * @deprecated Use ->withAttributesSets(symfony: true) in rector.php config instead + * @internal Use ->withAttributesSets(symfony: true) in rector.php config instead * @var string */ public const ANNOTATIONS_TO_ATTRIBUTES = __DIR__ . '/../../config/sets/symfony/annotations-to-attributes.php'; From 2512b2c6ed7063c8fee339c0e977a0d43d9d0b08 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 24 Aug 2026 23:09:47 +0000 Subject: [PATCH 025/169] Updated Rector to commit a9870fe111210711895c697065baf8091e26f0e5 https://github.com/rectorphp/rector-src/commit/a9870fe111210711895c697065baf8091e26f0e5 Remove PHPUnit and PHPStan autoload compat test (#8367) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 2feca855db1..75cffc54094 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 = '5fea92b8e7848b435325703649aeae820e795b1c'; + public const PACKAGE_VERSION = 'a9870fe111210711895c697065baf8091e26f0e5'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-24 13:03:00'; + public const RELEASE_DATE = '2026-08-25 01:07:23'; /** * @var int */ From f3f60a3b45b9ccdd38cf7c8e9d0c0ad4efacd6c6 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 24 Aug 2026 23:41:22 +0000 Subject: [PATCH 026/169] Updated Rector to commit 5b41311ad9d4c36f9df5462e71721965284bf932 https://github.com/rectorphp/rector-src/commit/5b41311ad9d4c36f9df5462e71721965284bf932 [Php73] Add ArrayKeysToArrayKeyFirstLastRector (#8238) --- config/set/php-polyfills.php | 2 + config/set/php73.php | 3 +- .../ArrayKeysToArrayKeyFirstLastRector.php | 97 +++++++++++++++++++ src/Application/VersionResolver.php | 4 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + 6 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 rules/Php73/Rector/FuncCall/ArrayKeysToArrayKeyFirstLastRector.php diff --git a/config/set/php-polyfills.php b/config/set/php-polyfills.php index b15f1495833..8166b196941 100644 --- a/config/set/php-polyfills.php +++ b/config/set/php-polyfills.php @@ -6,6 +6,7 @@ use Rector\Config\RectorConfig; use Rector\Php73\Rector\BooleanOr\IsCountableRector; use Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector; +use Rector\Php73\Rector\FuncCall\ArrayKeysToArrayKeyFirstLastRector; use Rector\Php80\Rector\Identical\StrEndsWithRector; use Rector\Php80\Rector\Identical\StrStartsWithRector; use Rector\Php80\Rector\NotIdentical\MbStrContainsRector; @@ -22,6 +23,7 @@ return static function (RectorConfig $rectorConfig): void { $rectorConfig->rules([ ArrayKeyFirstLastRector::class, + ArrayKeysToArrayKeyFirstLastRector::class, IsCountableRector::class, GetDebugTypeRector::class, StrStartsWithRector::class, diff --git a/config/set/php73.php b/config/set/php73.php index f2e0c516333..89de4b21504 100644 --- a/config/set/php73.php +++ b/config/set/php73.php @@ -7,6 +7,7 @@ use Rector\Php73\Rector\BooleanOr\IsCountableRector; use Rector\Php73\Rector\ConstFetch\SensitiveConstantNameRector; use Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector; +use Rector\Php73\Rector\FuncCall\ArrayKeysToArrayKeyFirstLastRector; use Rector\Php73\Rector\FuncCall\RegexDashEscapeRector; use Rector\Php73\Rector\FuncCall\SensitiveDefineRector; use Rector\Php73\Rector\FuncCall\SetCookieRector; @@ -31,5 +32,5 @@ 'mbereg_search_getregs' => 'mb_ereg_search_getregs', 'mbereg_search_getpos' => 'mb_ereg_search_getpos', ]); - $rectorConfig->rules([StringifyStrNeedlesRector::class, RegexDashEscapeRector::class, SetCookieRector::class, IsCountableRector::class, ArrayKeyFirstLastRector::class, SensitiveDefineRector::class, SensitiveConstantNameRector::class, SensitiveHereNowDocRector::class]); + $rectorConfig->rules([StringifyStrNeedlesRector::class, RegexDashEscapeRector::class, SetCookieRector::class, IsCountableRector::class, ArrayKeyFirstLastRector::class, ArrayKeysToArrayKeyFirstLastRector::class, SensitiveDefineRector::class, SensitiveConstantNameRector::class, SensitiveHereNowDocRector::class]); }; diff --git a/rules/Php73/Rector/FuncCall/ArrayKeysToArrayKeyFirstLastRector.php b/rules/Php73/Rector/FuncCall/ArrayKeysToArrayKeyFirstLastRector.php new file mode 100644 index 00000000000..6891c8c66b2 --- /dev/null +++ b/rules/Php73/Rector/FuncCall/ArrayKeysToArrayKeyFirstLastRector.php @@ -0,0 +1,97 @@ + + */ + private const PREVIOUS_TO_NEW_FUNCTIONS = ['current' => 'array_key_first', 'reset' => 'array_key_first', 'end' => 'array_key_last']; + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Make use of array_key_first() and array_key_last() instead of reading a single key off array_keys()', [new CodeSample(<<<'CODE_SAMPLE' +$firstKey = current(array_keys($items)); +$lastKey = end(array_keys($items)); +CODE_SAMPLE +, <<<'CODE_SAMPLE' +$firstKey = array_key_first($items); +$lastKey = array_key_last($items); +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes(): array + { + return [FuncCall::class]; + } + /** + * @param FuncCall $node + */ + public function refactor(Node $node): ?Node + { + if ($node->isFirstClassCallable()) { + return null; + } + $funcName = $this->getName($node); + if ($funcName === null) { + return null; + } + if (!isset(self::PREVIOUS_TO_NEW_FUNCTIONS[$funcName])) { + return null; + } + $args = $node->getArgs(); + if (count($args) !== 1) { + return null; + } + if ($args[0]->name instanceof Identifier || $args[0]->unpack) { + return null; + } + $arrayKeysFuncCall = $args[0]->value; + if (!$arrayKeysFuncCall instanceof FuncCall) { + return null; + } + if (!$this->isName($arrayKeysFuncCall, 'array_keys')) { + return null; + } + if ($arrayKeysFuncCall->isFirstClassCallable()) { + return null; + } + $arrayKeysArgs = $arrayKeysFuncCall->getArgs(); + // array_keys() with a search value returns only the matching keys, so the first one is not the array's first key + if (count($arrayKeysArgs) !== 1) { + return null; + } + if ($arrayKeysArgs[0]->name instanceof Identifier || $arrayKeysArgs[0]->unpack) { + return null; + } + $node->name = new Name(self::PREVIOUS_TO_NEW_FUNCTIONS[$funcName]); + $node->args = $arrayKeysArgs; + return $node; + } + public function provideMinPhpVersion(): int + { + return PhpVersionFeature::ARRAY_KEY_FIRST_LAST; + } + public function providePolyfillPackage(): string + { + return PolyfillPackage::PHP_73; + } +} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 75cffc54094..93afee747f7 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 = 'a9870fe111210711895c697065baf8091e26f0e5'; + public const PACKAGE_VERSION = '5b41311ad9d4c36f9df5462e71721965284bf932'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 01:07:23'; + public const RELEASE_DATE = '2026-08-25 01:39:25'; /** * @var int */ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index d17e0e0c741..5a3c70945e5 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2028,6 +2028,7 @@ 'Rector\\Php73\\Rector\\BooleanOr\\IsCountableRector' => $baseDir . '/rules/Php73/Rector/BooleanOr/IsCountableRector.php', 'Rector\\Php73\\Rector\\ConstFetch\\SensitiveConstantNameRector' => $baseDir . '/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php', 'Rector\\Php73\\Rector\\FuncCall\\ArrayKeyFirstLastRector' => $baseDir . '/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php', + 'Rector\\Php73\\Rector\\FuncCall\\ArrayKeysToArrayKeyFirstLastRector' => $baseDir . '/rules/Php73/Rector/FuncCall/ArrayKeysToArrayKeyFirstLastRector.php', 'Rector\\Php73\\Rector\\FuncCall\\JsonThrowOnErrorRector' => $baseDir . '/rules/Php73/Rector/FuncCall/JsonThrowOnErrorRector.php', 'Rector\\Php73\\Rector\\FuncCall\\RegexDashEscapeRector' => $baseDir . '/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php', 'Rector\\Php73\\Rector\\FuncCall\\SensitiveDefineRector' => $baseDir . '/rules/Php73/Rector/FuncCall/SensitiveDefineRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index cadd581602e..0693a964abb 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2253,6 +2253,7 @@ class ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07 'Rector\\Php73\\Rector\\BooleanOr\\IsCountableRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/BooleanOr/IsCountableRector.php', 'Rector\\Php73\\Rector\\ConstFetch\\SensitiveConstantNameRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php', 'Rector\\Php73\\Rector\\FuncCall\\ArrayKeyFirstLastRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php', + 'Rector\\Php73\\Rector\\FuncCall\\ArrayKeysToArrayKeyFirstLastRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/FuncCall/ArrayKeysToArrayKeyFirstLastRector.php', 'Rector\\Php73\\Rector\\FuncCall\\JsonThrowOnErrorRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/FuncCall/JsonThrowOnErrorRector.php', 'Rector\\Php73\\Rector\\FuncCall\\RegexDashEscapeRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php', 'Rector\\Php73\\Rector\\FuncCall\\SensitiveDefineRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/FuncCall/SensitiveDefineRector.php', From f5fd122400bfaa07cbd0786d7602e46695047683 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 24 Aug 2026 23:46:34 +0000 Subject: [PATCH 027/169] Updated Rector to commit 09a140b0ceb3c01e17ee8340fda470f607417816 https://github.com/rectorphp/rector-src/commit/09a140b0ceb3c01e17ee8340fda470f607417816 Group fixture checks into single Code Analysis job (#8368) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 93afee747f7..877c1394108 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 = '5b41311ad9d4c36f9df5462e71721965284bf932'; + public const PACKAGE_VERSION = '09a140b0ceb3c01e17ee8340fda470f607417816'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 01:39:25'; + public const RELEASE_DATE = '2026-08-25 01:44:35'; /** * @var int */ From 153ae72739ddcbaa4b6a473fd026f786b1284804 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 24 Aug 2026 23:55:56 +0000 Subject: [PATCH 028/169] Updated Rector to commit 067194ef92ab62106d6fed017745a8b634c7dc24 https://github.com/rectorphp/rector-src/commit/067194ef92ab62106d6fed017745a8b634c7dc24 [phpstan] Cleanup phpstan errors (#8366) --- .../VariableDimFetchAssignResolver.php | 3 +- rules/CodeQuality/ValueObject/KeyAndExpr.php | 47 ------------------- .../RemovePhpVersionIdCheckRector.php | 19 +++----- .../StringClassNameToClassConstantRector.php | 6 --- rules/Php81/Enum/AttributeName.php | 6 --- .../ConstantArrayTypeGeneralizer.php | 3 +- src/Application/VersionResolver.php | 4 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_real.php | 10 ++-- vendor/composer/autoload_static.php | 9 ++-- vendor/scoper-autoload.php | 2 +- 12 files changed, 21 insertions(+), 91 deletions(-) delete mode 100644 rules/CodeQuality/ValueObject/KeyAndExpr.php diff --git a/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php b/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php index 85d4ed87b91..429aef600f9 100644 --- a/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php +++ b/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php @@ -10,7 +10,6 @@ use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; -use Rector\CodeQuality\ValueObject\KeyAndExpr; use Rector\Exception\NotImplementedYetException; use Rector\NodeAnalyzer\ExprAnalyzer; use Rector\PhpParser\Node\Value\ValueResolver; @@ -31,7 +30,7 @@ public function __construct(ExprAnalyzer $exprAnalyzer, ValueResolver $valueReso } /** * @param Stmt[] $stmts - * @return array + * @return mixed[] */ public function resolveFromStmtsAndVariable(array $stmts, ?Assign $emptyArrayAssign): array { diff --git a/rules/CodeQuality/ValueObject/KeyAndExpr.php b/rules/CodeQuality/ValueObject/KeyAndExpr.php deleted file mode 100644 index ec107c8f006..00000000000 --- a/rules/CodeQuality/ValueObject/KeyAndExpr.php +++ /dev/null @@ -1,47 +0,0 @@ -keyExpr = $keyExpr; - $this->expr = $expr; - $this->comments = $comments; - } - public function getKeyExpr(): ?Expr - { - return $this->keyExpr; - } - public function getExpr(): Expr - { - return $this->expr; - } - /** - * @return Comment[] - */ - public function getComments(): array - { - return $this->comments; - } -} diff --git a/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php b/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php index ba9ce83eee2..73055c06f70 100644 --- a/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php +++ b/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php @@ -15,7 +15,6 @@ use PhpParser\NodeVisitor; use Rector\Php\PhpVersionProvider; use Rector\Rector\AbstractRector; -use Rector\ValueObject\PhpVersion; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -27,14 +26,9 @@ final class RemovePhpVersionIdCheckRector extends AbstractRector * @readonly */ private PhpVersionProvider $phpVersionProvider; - /** - * @var PhpVersion::*|null - */ - private $phpVersion; public function __construct(PhpVersionProvider $phpVersionProvider) { $this->phpVersionProvider = $phpVersionProvider; - $this->phpVersion = $this->phpVersionProvider->provide(); } public function getRuleDefinition(): RuleDefinition { @@ -75,7 +69,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node) { - $this->phpVersion ??= $this->phpVersionProvider->provide(); if (!$node->cond instanceof BinaryOp) { return null; } @@ -126,7 +119,7 @@ private function refactorSmallerLeft(Smaller $smaller): ?int if (!$value instanceof Int_) { return null; } - if ($this->phpVersion >= $value->value) { + if ($this->phpVersionProvider->provide() >= $value->value) { return NodeVisitor::REMOVE_NODE; } return null; @@ -140,7 +133,7 @@ private function refactorSmallerRight(Smaller $smaller, If_ $if) if (!$value instanceof Int_) { return null; } - if ($this->phpVersion < $value->value) { + if ($this->phpVersionProvider->provide() < $value->value) { return null; } if ($if->stmts === []) { @@ -157,7 +150,7 @@ private function refactorGreaterOrEqualLeft(GreaterOrEqual $greaterOrEqual, If_ if (!$value instanceof Int_) { return null; } - if ($this->phpVersion < $value->value) { + if ($this->phpVersionProvider->provide() < $value->value) { return null; } if ($if->stmts === []) { @@ -174,7 +167,7 @@ private function refactorGreaterOrEqualRight(GreaterOrEqual $greaterOrEqual): ?i if (!$value instanceof Int_) { return null; } - if ($this->phpVersion >= $value->value) { + if ($this->phpVersionProvider->provide() >= $value->value) { return NodeVisitor::REMOVE_NODE; } return null; @@ -201,7 +194,7 @@ private function refactorGreaterLeft(Greater $greater, If_ $if) if (!$value instanceof Int_) { return null; } - if ($this->phpVersion < $value->value) { + if ($this->phpVersionProvider->provide() < $value->value) { return null; } if ($if->stmts === []) { @@ -218,7 +211,7 @@ private function refactorGreaterRight(Greater $greater): ?int if (!$value instanceof Int_) { return null; } - if ($this->phpVersion >= $value->value) { + if ($this->phpVersionProvider->provide() >= $value->value) { return NodeVisitor::REMOVE_NODE; } return null; diff --git a/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php b/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php index d26b4df9c1a..45522e0b55b 100644 --- a/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php +++ b/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\Php55\Rector\String_; -use Deprecated; use PhpParser\Node; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Name\FullyQualified; @@ -26,11 +25,6 @@ final class StringClassNameToClassConstantRector extends AbstractRector implemen * @readonly */ private ReflectionProvider $reflectionProvider; - /** - * @var string - */ - #[Deprecated(message: 'since 2.2.12. Default behavior now.')] - public const SHOULD_KEEP_PRE_SLASH = 'should_keep_pre_slash'; /** * @var string[] */ diff --git a/rules/Php81/Enum/AttributeName.php b/rules/Php81/Enum/AttributeName.php index 66104059075..18bcf598d98 100644 --- a/rules/Php81/Enum/AttributeName.php +++ b/rules/Php81/Enum/AttributeName.php @@ -5,12 +5,6 @@ final class AttributeName { - /** - * Available since PHP 8.1 - * @see https://php.watch/versions/8.1/ReturnTypeWillChange - * @var string - */ - public const RETURN_TYPE_WILL_CHANGE = 'ReturnTypeWillChange'; /** * @var string */ diff --git a/rules/TypeDeclarationDocblocks/TypeResolver/ConstantArrayTypeGeneralizer.php b/rules/TypeDeclarationDocblocks/TypeResolver/ConstantArrayTypeGeneralizer.php index db4d1d46fc5..c7ac3294eed 100644 --- a/rules/TypeDeclarationDocblocks/TypeResolver/ConstantArrayTypeGeneralizer.php +++ b/rules/TypeDeclarationDocblocks/TypeResolver/ConstantArrayTypeGeneralizer.php @@ -23,10 +23,9 @@ final class ConstantArrayTypeGeneralizer */ private TypeNormalizer $typeNormalizer; /** - * @var int - * * Using 10-level array @return docblocks makes code very hard to read, * lets limit it to reasonable level + * @var int */ private const MAX_NESTING = 3; private int $currentNesting = 0; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 877c1394108..e63da1e2086 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 = '09a140b0ceb3c01e17ee8340fda470f607417816'; + public const PACKAGE_VERSION = '067194ef92ab62106d6fed017745a8b634c7dc24'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 01:44:35'; + public const RELEASE_DATE = '2026-08-25 01:53:51'; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 30433fd33a3..50204097129 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07::getLoader(); +return ComposerAutoloaderInitac057519d542f6268293961514769bf4::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 5a3c70945e5..50765ddea7d 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1139,7 +1139,6 @@ 'Rector\\CodeQuality\\TypeResolver\\AssignVariableTypeResolver' => $baseDir . '/rules/CodeQuality/TypeResolver/AssignVariableTypeResolver.php', 'Rector\\CodeQuality\\ValueObject\\ComparedExprAndValueExpr' => $baseDir . '/rules/CodeQuality/ValueObject/ComparedExprAndValueExpr.php', 'Rector\\CodeQuality\\ValueObject\\DefinedPropertyWithType' => $baseDir . '/rules/CodeQuality/ValueObject/DefinedPropertyWithType.php', - 'Rector\\CodeQuality\\ValueObject\\KeyAndExpr' => $baseDir . '/rules/CodeQuality/ValueObject/KeyAndExpr.php', 'Rector\\CodingStyle\\ClassNameImport\\AliasUsesResolver' => $baseDir . '/rules/CodingStyle/ClassNameImport/AliasUsesResolver.php', 'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\AliasClassNameImportSkipVoter' => $baseDir . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/AliasClassNameImportSkipVoter.php', 'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\ClassLikeNameClassNameImportSkipVoter' => $baseDir . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ClassLikeNameClassNameImportSkipVoter.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 83e875e27eb..e56dc43f890 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07 +class ComposerAutoloaderInitac057519d542f6268293961514769bf4 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitac057519d542f6268293961514769bf4', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitac057519d542f6268293961514769bf4', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitac057519d542f6268293961514769bf4::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInitac057519d542f6268293961514769bf4::$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 0693a964abb..4d2f856045f 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07 +class ComposerStaticInitac057519d542f6268293961514769bf4 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -1364,7 +1364,6 @@ class ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07 'Rector\\CodeQuality\\TypeResolver\\AssignVariableTypeResolver' => __DIR__ . '/../..' . '/rules/CodeQuality/TypeResolver/AssignVariableTypeResolver.php', 'Rector\\CodeQuality\\ValueObject\\ComparedExprAndValueExpr' => __DIR__ . '/../..' . '/rules/CodeQuality/ValueObject/ComparedExprAndValueExpr.php', 'Rector\\CodeQuality\\ValueObject\\DefinedPropertyWithType' => __DIR__ . '/../..' . '/rules/CodeQuality/ValueObject/DefinedPropertyWithType.php', - 'Rector\\CodeQuality\\ValueObject\\KeyAndExpr' => __DIR__ . '/../..' . '/rules/CodeQuality/ValueObject/KeyAndExpr.php', 'Rector\\CodingStyle\\ClassNameImport\\AliasUsesResolver' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/AliasUsesResolver.php', 'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\AliasClassNameImportSkipVoter' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/AliasClassNameImportSkipVoter.php', 'Rector\\CodingStyle\\ClassNameImport\\ClassNameImportSkipVoter\\ClassLikeNameClassNameImportSkipVoter' => __DIR__ . '/../..' . '/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/ClassLikeNameClassNameImportSkipVoter.php', @@ -3071,9 +3070,9 @@ class ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit02b20d7ba3cad62a06164aeaf0abca07::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitac057519d542f6268293961514769bf4::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitac057519d542f6268293961514769bf4::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitac057519d542f6268293961514769bf4::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 21f2892123e..7108d7478af 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07', 'RectorPrefix202608\ComposerAutoloaderInit02b20d7ba3cad62a06164aeaf0abca07'); +humbug_phpscoper_expose_class('ComposerAutoloaderInitac057519d542f6268293961514769bf4', 'RectorPrefix202608\ComposerAutoloaderInitac057519d542f6268293961514769bf4'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); From e0ebe6e83255e4e23b10cc61d918c5e0e65b4787 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 07:00:48 +0000 Subject: [PATCH 029/169] Updated Rector to commit d6aa6e3bfe4e8f637e1e963f6a3997891a07955f https://github.com/rectorphp/rector-src/commit/d6aa6e3bfe4e8f637e1e963f6a3997891a07955f [DI] Use entropy autodiscover() over registerTagged() for order-independent service collections (#8370) --- src/Application/VersionResolver.php | 4 +- .../LazyContainerFactory.php | 53 ++----------------- 2 files changed, 6 insertions(+), 51 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index e63da1e2086..8f93f048cdf 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 = '067194ef92ab62106d6fed017745a8b634c7dc24'; + public const PACKAGE_VERSION = 'd6aa6e3bfe4e8f637e1e963f6a3997891a07955f'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 01:53:51'; + public const RELEASE_DATE = '2026-08-25 08:58:09'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 7474c99e6bc..16779b06dba 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -33,19 +33,6 @@ use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\PlainValueParser; use Rector\Caching\Cache; use Rector\Caching\CacheFactory; -use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; -use Rector\ChangesReporting\Output\ConsoleOutputFormatter; -use Rector\ChangesReporting\Output\GitHubOutputFormatter; -use Rector\ChangesReporting\Output\GitlabOutputFormatter; -use Rector\ChangesReporting\Output\JsonOutputFormatter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\AliasClassNameImportSkipVoter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\ClassLikeNameClassNameImportSkipVoter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\FullyQualifiedNameClassNameImportSkipVoter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\OriginalNameImportSkipVoter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\ReservedClassNameImportSkipVoter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\ShortClassImportSkipVoter; -use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\UsesClassNameImportSkipVoter; -use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; use Rector\Config\RectorConfig; use Rector\Configuration\ConfigurationRuleFilter; use Rector\Configuration\RenamedClassesDataCollector; @@ -71,25 +58,9 @@ use Rector\NodeNameResolver\NodeNameResolver\PropertyNameResolver; use Rector\NodeNameResolver\NodeNameResolver\UseNameResolver; use Rector\NodeNameResolver\NodeNameResolver\VariableNameResolver; -use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface; use Rector\NodeTypeResolver\DependencyInjection\PHPStanServicesFactory; use Rector\NodeTypeResolver\NodeTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\CastTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\ClassAndInterfaceTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\ClassConstFetchTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\IdentifierTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\NameTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\NewTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\ParamTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\PropertyFetchTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\PropertyTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\ScalarTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\StaticCallMethodCallTypeResolver; -use Rector\NodeTypeResolver\NodeTypeResolver\TraitTypeResolver; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; -use Rector\Php80\AttributeDecorator\DoctrineConverterAttributeDecorator; -use Rector\Php80\AttributeDecorator\SensioParamConverterAttributeDecorator; -use Rector\Php80\Contract\ConverterAttributeDecoratorInterface; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayAnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayItemNodeAnnotationToAttributeMapper; @@ -192,10 +163,6 @@ final class LazyContainerFactory * @var array> */ private const PHPDOC_TYPE_MAPPER_CLASSES = [IdentifierPhpDocTypeMapper::class, IntersectionPhpDocTypeMapper::class, NullablePhpDocTypeMapper::class, UnionPhpDocTypeMapper::class]; - /** - * @var array> - */ - private const CLASS_NAME_IMPORT_SKIPPER_CLASSES = [AliasClassNameImportSkipVoter::class, ClassLikeNameClassNameImportSkipVoter::class, FullyQualifiedNameClassNameImportSkipVoter::class, UsesClassNameImportSkipVoter::class, ReservedClassNameImportSkipVoter::class, ShortClassImportSkipVoter::class, OriginalNameImportSkipVoter::class]; /** * @var array> */ @@ -208,22 +175,10 @@ final class LazyContainerFactory * @var array */ private const PUBLIC_PHPSTAN_SERVICE_TYPES = [ScopeFactory::class, TypeNodeResolver::class, NodeScopeResolver::class, ReflectionProvider::class, PhpVersionFactory::class]; - /** - * @var array> - */ - private const OUTPUT_FORMATTER_CLASSES = [ConsoleOutputFormatter::class, JsonOutputFormatter::class, GitlabOutputFormatter::class, GitHubOutputFormatter::class]; - /** - * @var array> - */ - private const NODE_TYPE_RESOLVER_CLASSES = [CastTypeResolver::class, StaticCallMethodCallTypeResolver::class, ClassAndInterfaceTypeResolver::class, IdentifierTypeResolver::class, NameTypeResolver::class, NewTypeResolver::class, ParamTypeResolver::class, PropertyFetchTypeResolver::class, ClassConstFetchTypeResolver::class, PropertyTypeResolver::class, ScalarTypeResolver::class, TraitTypeResolver::class]; /** * @var array> */ private const PHP_PARSER_NODE_MAPPER_CLASSES = [FullyQualifiedNodeMapper::class, IdentifierNodeMapper::class, IntersectionTypeNodeMapper::class, NameNodeMapper::class, NullableTypeNodeMapper::class, StringNodeMapper::class, UnionTypeNodeMapper::class, ExprNodeMapper::class]; - /** - * @var array> - */ - private const CONVERTER_ATTRIBUTE_DECORATOR_CLASSES = [SensioParamConverterAttributeDecorator::class, DoctrineConverterAttributeDecorator::class]; /** * @api used as next rectorConfig factory */ @@ -309,7 +264,7 @@ private function registerTypeMappers(RectorConfig $rectorConfig): void private function registerNodeNameResolvers(RectorConfig $rectorConfig): void { // node name resolvers - $this->registerTagged($rectorConfig, self::CONVERTER_ATTRIBUTE_DECORATOR_CLASSES, ConverterAttributeDecoratorInterface::class); + $rectorConfig->autodiscover(__DIR__ . '/../../rules/Php80/AttributeDecorator'); } private function registerRectorAutowiring(RectorConfig $rectorConfig): void { @@ -327,9 +282,9 @@ private function registerTaggedServices(RectorConfig $rectorConfig): void $this->registerTagged($rectorConfig, self::TYPE_MAPPER_CLASSES, TypeMapperInterface::class); $this->registerTagged($rectorConfig, self::PHPDOC_TYPE_MAPPER_CLASSES, PhpDocTypeMapperInterface::class); $this->registerTagged($rectorConfig, self::NODE_NAME_RESOLVER_CLASSES, NodeNameResolverInterface::class); - $this->registerTagged($rectorConfig, self::NODE_TYPE_RESOLVER_CLASSES, NodeTypeResolverInterface::class); - $this->registerTagged($rectorConfig, self::OUTPUT_FORMATTER_CLASSES, OutputFormatterInterface::class); - $this->registerTagged($rectorConfig, self::CLASS_NAME_IMPORT_SKIPPER_CLASSES, ClassNameImportSkipVoterInterface::class); + $rectorConfig->autodiscover(__DIR__ . '/../NodeTypeResolver/NodeTypeResolver'); + $rectorConfig->autodiscover(__DIR__ . '/../ChangesReporting/Output'); + $rectorConfig->autodiscover(__DIR__ . '/../../rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter'); $rectorConfig->singleton(SymfonyStyle::class, static function (RectorConfig $rectorConfig): SymfonyStyle { $symfonyStyleFactory = $rectorConfig->make(SymfonyStyleFactory::class); return $symfonyStyleFactory->create(); From cd8119a141aaae0b17428dab8632cbe4abd9e4d7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 07:09:38 +0000 Subject: [PATCH 030/169] Updated Rector to commit 0fbd6788e5cb87ab8939e32d6c5521eeb0b5feba https://github.com/rectorphp/rector-src/commit/0fbd6788e5cb87ab8939e32d6c5521eeb0b5feba [DI] Convert two more order-independent collections to autodiscover (#8371) --- src/Application/VersionResolver.php | 4 +-- .../LazyContainerFactory.php | 28 ++----------------- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 8f93f048cdf..1924404d612 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 = 'd6aa6e3bfe4e8f637e1e963f6a3997891a07955f'; + public const PACKAGE_VERSION = '0fbd6788e5cb87ab8939e32d6c5521eeb0b5feba'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 08:58:09'; + public const RELEASE_DATE = '2026-08-25 09:07:14'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 16779b06dba..93fb0b9509f 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -46,18 +46,7 @@ use Rector\Console\Style\SymfonyStyleFactory; use Rector\Contract\PhpParser\DecoratingNodeVisitorInterface; use Rector\NodeDecorator\CreatedByRuleDecorator; -use Rector\NodeNameResolver\Contract\NodeNameResolverInterface; use Rector\NodeNameResolver\NodeNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\ClassConstFetchNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\ClassConstNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\ClassNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\FuncCallNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\FunctionNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\NameNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\ParamNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\PropertyNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\UseNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\VariableNameResolver; use Rector\NodeTypeResolver\DependencyInjection\PHPStanServicesFactory; use Rector\NodeTypeResolver\NodeTypeResolver; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; @@ -124,12 +113,7 @@ use Rector\Rector\AbstractRector; use Rector\Skipper\Skipper\Skipper; use Rector\Skipper\Skipper\UsedSkipCollector; -use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; use Rector\StaticTypeMapper\Contract\PhpParser\PhpParserNodeMapperInterface; -use Rector\StaticTypeMapper\PhpDocParser\IdentifierPhpDocTypeMapper; -use Rector\StaticTypeMapper\PhpDocParser\IntersectionPhpDocTypeMapper; -use Rector\StaticTypeMapper\PhpDocParser\NullablePhpDocTypeMapper; -use Rector\StaticTypeMapper\PhpDocParser\UnionPhpDocTypeMapper; use Rector\StaticTypeMapper\PhpParser\ExprNodeMapper; use Rector\StaticTypeMapper\PhpParser\FullyQualifiedNodeMapper; use Rector\StaticTypeMapper\PhpParser\IdentifierNodeMapper; @@ -143,10 +127,6 @@ use RectorPrefix202608\Webmozart\Assert\Assert; final class LazyContainerFactory { - /** - * @var array> - */ - private const NODE_NAME_RESOLVER_CLASSES = [ClassConstFetchNameResolver::class, ClassConstNameResolver::class, ClassNameResolver::class, FuncCallNameResolver::class, FunctionNameResolver::class, NameNameResolver::class, ParamNameResolver::class, PropertyNameResolver::class, UseNameResolver::class, VariableNameResolver::class]; /** * @var array> */ @@ -159,10 +139,6 @@ final class LazyContainerFactory * @var array> */ private const DECORATING_NODE_VISITOR_CLASSES = [ArgNodeVisitor::class, ClosureWithVariadicParametersNodeVisitor::class, PhpVersionConditionNodeVisitor::class, AssignedToNodeVisitor::class, ByRefReturnNodeVisitor::class, ByRefVariableNodeVisitor::class, ContextNodeVisitor::class, GlobalVariableNodeVisitor::class, NameNodeVisitor::class, StaticVariableNodeVisitor::class, PropertyOrClassConstDefaultNodeVisitor::class, ParamDefaultNodeVisitor::class, ClassConstFetchNodeVisitor::class, CallLikeThisBoundClosureArgsNodeVisitor::class, ArgNotAcceptingClosureNodeVisitor::class]; - /** - * @var array> - */ - private const PHPDOC_TYPE_MAPPER_CLASSES = [IdentifierPhpDocTypeMapper::class, IntersectionPhpDocTypeMapper::class, NullablePhpDocTypeMapper::class, UnionPhpDocTypeMapper::class]; /** * @var array> */ @@ -280,8 +256,8 @@ private function registerTaggedServices(RectorConfig $rectorConfig): void // PHP 8.0 attributes $this->registerTagged($rectorConfig, self::ANNOTATION_TO_ATTRIBUTE_MAPPER_CLASSES, AnnotationToAttributeMapperInterface::class); $this->registerTagged($rectorConfig, self::TYPE_MAPPER_CLASSES, TypeMapperInterface::class); - $this->registerTagged($rectorConfig, self::PHPDOC_TYPE_MAPPER_CLASSES, PhpDocTypeMapperInterface::class); - $this->registerTagged($rectorConfig, self::NODE_NAME_RESOLVER_CLASSES, NodeNameResolverInterface::class); + $rectorConfig->autodiscover(__DIR__ . '/../StaticTypeMapper/PhpDocParser'); + $rectorConfig->autodiscover(__DIR__ . '/../NodeNameResolver/NodeNameResolver'); $rectorConfig->autodiscover(__DIR__ . '/../NodeTypeResolver/NodeTypeResolver'); $rectorConfig->autodiscover(__DIR__ . '/../ChangesReporting/Output'); $rectorConfig->autodiscover(__DIR__ . '/../../rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter'); From 0627ab5f7d79aa5359e968c5c59a3b03408eefa2 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 07:27:43 +0000 Subject: [PATCH 031/169] Updated Rector to commit e18cbc277fe50680c9d800d89db1945d0abc63c5 https://github.com/rectorphp/rector-src/commit/e18cbc277fe50680c9d800d89db1945d0abc63c5 [DI] Autodiscover AnnotationToAttributeMapper via mutually exclusive candidates (#8375) --- src/Application/VersionResolver.php | 4 ++-- src/DependencyInjection/LazyContainerFactory.php | 11 +---------- .../StringAnnotationToAttributeMapper.php | 7 ++++++- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 1924404d612..6e66a0ff196 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 = '0fbd6788e5cb87ab8939e32d6c5521eeb0b5feba'; + public const PACKAGE_VERSION = 'e18cbc277fe50680c9d800d89db1945d0abc63c5'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 09:07:14'; + public const RELEASE_DATE = '2026-08-25 09:24:53'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 93fb0b9509f..122b7f9dc0a 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -53,13 +53,8 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayAnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayItemNodeAnnotationToAttributeMapper; -use Rector\PhpAttribute\AnnotationToAttributeMapper\ClassConstFetchAnnotationToAttributeMapper; -use Rector\PhpAttribute\AnnotationToAttributeMapper\ConstExprNodeAnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\CurlyListNodeAnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\DoctrineAnnotationAnnotationToAttributeMapper; -use Rector\PhpAttribute\AnnotationToAttributeMapper\StringAnnotationToAttributeMapper; -use Rector\PhpAttribute\AnnotationToAttributeMapper\StringNodeAnnotationToAttributeMapper; -use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PhpParser\Comparing\NodeComparator; use Rector\PhpParser\Node\NodeFactory; @@ -131,10 +126,6 @@ final class LazyContainerFactory * @var array> */ private const BASE_PHP_DOC_NODE_VISITORS = [ArrayTypePhpDocNodeVisitor::class, CallableTypePhpDocNodeVisitor::class, IntersectionTypeNodePhpDocNodeVisitor::class, TemplatePhpDocNodeVisitor::class, UnionTypeNodePhpDocNodeVisitor::class]; - /** - * @var array> - */ - private const ANNOTATION_TO_ATTRIBUTE_MAPPER_CLASSES = [ArrayAnnotationToAttributeMapper::class, ArrayItemNodeAnnotationToAttributeMapper::class, ClassConstFetchAnnotationToAttributeMapper::class, ConstExprNodeAnnotationToAttributeMapper::class, CurlyListNodeAnnotationToAttributeMapper::class, DoctrineAnnotationAnnotationToAttributeMapper::class, StringAnnotationToAttributeMapper::class, StringNodeAnnotationToAttributeMapper::class]; /** * @var array> */ @@ -254,7 +245,7 @@ private function registerRectorAutowiring(RectorConfig $rectorConfig): void private function registerTaggedServices(RectorConfig $rectorConfig): void { // PHP 8.0 attributes - $this->registerTagged($rectorConfig, self::ANNOTATION_TO_ATTRIBUTE_MAPPER_CLASSES, AnnotationToAttributeMapperInterface::class); + $rectorConfig->autodiscover(__DIR__ . '/../PhpAttribute/AnnotationToAttributeMapper'); $this->registerTagged($rectorConfig, self::TYPE_MAPPER_CLASSES, TypeMapperInterface::class); $rectorConfig->autodiscover(__DIR__ . '/../StaticTypeMapper/PhpDocParser'); $rectorConfig->autodiscover(__DIR__ . '/../NodeNameResolver/NodeNameResolver'); diff --git a/src/PhpAttribute/AnnotationToAttributeMapper/StringAnnotationToAttributeMapper.php b/src/PhpAttribute/AnnotationToAttributeMapper/StringAnnotationToAttributeMapper.php index 79fbbe7618d..1f2cc86ddaa 100644 --- a/src/PhpAttribute/AnnotationToAttributeMapper/StringAnnotationToAttributeMapper.php +++ b/src/PhpAttribute/AnnotationToAttributeMapper/StringAnnotationToAttributeMapper.php @@ -16,7 +16,12 @@ final class StringAnnotationToAttributeMapper implements AnnotationToAttributeMa */ public function isCandidate($value): bool { - return is_string($value); + if (!is_string($value)) { + return \false; + } + // an unquoted "Class::CONST" reference is handled by the class const fetch mapper; + // excluding it here keeps the two mappers mutually exclusive, so match order no longer matters + return strpos($value, '::') === \false || strncmp($value, '"', strlen('"')) === 0; } /** * @param string $value From 8bf51d2bbed81457ec71507b6135152252340aad Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 07:29:22 +0000 Subject: [PATCH 032/169] Updated Rector to commit e8e1c7a6858ea97de4b5d52e56858088923ef30c https://github.com/rectorphp/rector-src/commit/e8e1c7a6858ea97de4b5d52e56858088923ef30c [Cleanup] Remove write-only CallLikeThisBoundClosureArgsNodeVisitor and its unread attribute (#8373) --- src/Application/VersionResolver.php | 4 +- .../LazyContainerFactory.php | 3 +- ...ikeExpectsThisBoundClosureArgsAnalyzer.php | 76 ------------------- src/NodeTypeResolver/Node/AttributeKey.php | 4 - ...allLikeThisBoundClosureArgsNodeVisitor.php | 44 ----------- vendor/composer/autoload_classmap.php | 2 - vendor/composer/autoload_static.php | 2 - vendor/composer/installed.json | 14 ++-- vendor/composer/installed.php | 2 +- .../entropy/src/Container/Container.php | 42 ++++++++++ 10 files changed, 53 insertions(+), 140 deletions(-) delete mode 100644 src/NodeAnalyzer/CallLikeExpectsThisBoundClosureArgsAnalyzer.php delete mode 100644 src/PhpParser/NodeVisitor/CallLikeThisBoundClosureArgsNodeVisitor.php diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 6e66a0ff196..64d7a0590a8 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 = 'e18cbc277fe50680c9d800d89db1945d0abc63c5'; + public const PACKAGE_VERSION = 'e8e1c7a6858ea97de4b5d52e56858088923ef30c'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 09:24:53'; + public const RELEASE_DATE = '2026-08-25 09:26:40'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 122b7f9dc0a..8d7beb31169 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -63,7 +63,6 @@ use Rector\PhpParser\NodeVisitor\AssignedToNodeVisitor; use Rector\PhpParser\NodeVisitor\ByRefReturnNodeVisitor; use Rector\PhpParser\NodeVisitor\ByRefVariableNodeVisitor; -use Rector\PhpParser\NodeVisitor\CallLikeThisBoundClosureArgsNodeVisitor; use Rector\PhpParser\NodeVisitor\ClassConstFetchNodeVisitor; use Rector\PhpParser\NodeVisitor\ClosureWithVariadicParametersNodeVisitor; use Rector\PhpParser\NodeVisitor\ContextNodeVisitor; @@ -129,7 +128,7 @@ final class LazyContainerFactory /** * @var array> */ - private const DECORATING_NODE_VISITOR_CLASSES = [ArgNodeVisitor::class, ClosureWithVariadicParametersNodeVisitor::class, PhpVersionConditionNodeVisitor::class, AssignedToNodeVisitor::class, ByRefReturnNodeVisitor::class, ByRefVariableNodeVisitor::class, ContextNodeVisitor::class, GlobalVariableNodeVisitor::class, NameNodeVisitor::class, StaticVariableNodeVisitor::class, PropertyOrClassConstDefaultNodeVisitor::class, ParamDefaultNodeVisitor::class, ClassConstFetchNodeVisitor::class, CallLikeThisBoundClosureArgsNodeVisitor::class, ArgNotAcceptingClosureNodeVisitor::class]; + private const DECORATING_NODE_VISITOR_CLASSES = [ArgNodeVisitor::class, ClosureWithVariadicParametersNodeVisitor::class, PhpVersionConditionNodeVisitor::class, AssignedToNodeVisitor::class, ByRefReturnNodeVisitor::class, ByRefVariableNodeVisitor::class, ContextNodeVisitor::class, GlobalVariableNodeVisitor::class, NameNodeVisitor::class, StaticVariableNodeVisitor::class, PropertyOrClassConstDefaultNodeVisitor::class, ParamDefaultNodeVisitor::class, ClassConstFetchNodeVisitor::class, ArgNotAcceptingClosureNodeVisitor::class]; /** * @var array> */ diff --git a/src/NodeAnalyzer/CallLikeExpectsThisBoundClosureArgsAnalyzer.php b/src/NodeAnalyzer/CallLikeExpectsThisBoundClosureArgsAnalyzer.php deleted file mode 100644 index fae2e1cc928..00000000000 --- a/src/NodeAnalyzer/CallLikeExpectsThisBoundClosureArgsAnalyzer.php +++ /dev/null @@ -1,76 +0,0 @@ -reflectionResolver = $reflectionResolver; - } - /** - * @return Arg[] - */ - public function getArgsUsingThisBoundClosure(CallLike $callLike): array - { - if ($callLike->isFirstClassCallable() || $callLike->getArgs() === []) { - return []; - } - $callArgs = $callLike->getArgs(); - $hasClosureArg = (bool) array_filter($callArgs, fn(Arg $arg): bool => $arg->value instanceof Closure); - if (!$hasClosureArg) { - return []; - } - $argsUsingThisBoundClosure = []; - $reflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($callLike); - if ($reflection === null) { - return []; - } - $scope = $callLike->getAttribute(AttributeKey::SCOPE); - if ($scope === null) { - return []; - } - $parametersAcceptor = ParametersAcceptorSelectorVariantsWrapper::select($reflection, $callLike, $scope); - $parameters = $parametersAcceptor->getParameters(); - foreach ($callArgs as $index => $arg) { - if (!$arg->value instanceof Closure) { - continue; - } - if ((($nullsafeVariable1 = $arg->name) ? $nullsafeVariable1->name : null) !== null) { - foreach ($parameters as $parameter) { - if (!$parameter instanceof ExtendedParameterReflection) { - continue; - } - $hasObjectBinding = (bool) $parameter->getClosureThisType(); - if ($hasObjectBinding && $arg->name->name === $parameter->getName()) { - $argsUsingThisBoundClosure[] = $arg; - } - } - continue; - } - if (!is_string(($nullsafeVariable2 = $arg->name) ? $nullsafeVariable2->name : null)) { - $parameter = $parameters[$index] ?? null; - if (!$parameter instanceof ExtendedParameterReflection) { - continue; - } - $hasObjectBinding = (bool) $parameter->getClosureThisType(); - if ($hasObjectBinding) { - $argsUsingThisBoundClosure[] = $arg; - } - } - } - return $argsUsingThisBoundClosure; - } -} diff --git a/src/NodeTypeResolver/Node/AttributeKey.php b/src/NodeTypeResolver/Node/AttributeKey.php index 24df3a1ea5d..7301afb415c 100644 --- a/src/NodeTypeResolver/Node/AttributeKey.php +++ b/src/NodeTypeResolver/Node/AttributeKey.php @@ -246,10 +246,6 @@ final class AttributeKey * @var string */ public const PHP_VERSION_CONDITIONED = 'php_version_conditioned'; - /** - * @var string - */ - public const IS_CLOSURE_USES_THIS = 'has_this_closure'; /** * @var string */ diff --git a/src/PhpParser/NodeVisitor/CallLikeThisBoundClosureArgsNodeVisitor.php b/src/PhpParser/NodeVisitor/CallLikeThisBoundClosureArgsNodeVisitor.php deleted file mode 100644 index 646653591b4..00000000000 --- a/src/PhpParser/NodeVisitor/CallLikeThisBoundClosureArgsNodeVisitor.php +++ /dev/null @@ -1,44 +0,0 @@ -callLikeExpectsThisBindedClosureArgsAnalyzer = $callLikeExpectsThisBindedClosureArgsAnalyzer; - } - public function enterNode(Node $node): ?Node - { - if (!$node instanceof MethodCall && !$node instanceof StaticCall && !$node instanceof FuncCall) { - return null; - } - if ($node->isFirstClassCallable()) { - return null; - } - $args = $this->callLikeExpectsThisBindedClosureArgsAnalyzer->getArgsUsingThisBoundClosure($node); - if ($args === []) { - return null; - } - foreach ($args as $arg) { - if ($arg->value instanceof Closure && !$arg->hasAttribute(AttributeKey::IS_CLOSURE_USES_THIS)) { - $arg->value->setAttribute(AttributeKey::IS_CLOSURE_USES_THIS, \true); - } - } - return $node; - } -} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 50765ddea7d..d0af8fa343e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1644,7 +1644,6 @@ 'Rector\\NodeAnalyzer\\BinaryOpAnalyzer' => $baseDir . '/src/NodeAnalyzer/BinaryOpAnalyzer.php', 'Rector\\NodeAnalyzer\\CallAnalyzer' => $baseDir . '/src/NodeAnalyzer/CallAnalyzer.php', 'Rector\\NodeAnalyzer\\CallLikeArgumentNameAdder' => $baseDir . '/src/NodeAnalyzer/CallLikeArgumentNameAdder.php', - 'Rector\\NodeAnalyzer\\CallLikeExpectsThisBoundClosureArgsAnalyzer' => $baseDir . '/src/NodeAnalyzer/CallLikeExpectsThisBoundClosureArgsAnalyzer.php', 'Rector\\NodeAnalyzer\\ClassAnalyzer' => $baseDir . '/src/NodeAnalyzer/ClassAnalyzer.php', 'Rector\\NodeAnalyzer\\CoalesceAnalyzer' => $vendorDir . '/rector/rector-downgrade-php/src/NodeAnalyzer/CoalesceAnalyzer.php', 'Rector\\NodeAnalyzer\\CompactFuncCallAnalyzer' => $baseDir . '/src/NodeAnalyzer/CompactFuncCallAnalyzer.php', @@ -2201,7 +2200,6 @@ 'Rector\\PhpParser\\NodeVisitor\\AssignedToNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ByRefReturnNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ByRefVariableNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ByRefVariableNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\CallLikeThisBoundClosureArgsNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/CallLikeThisBoundClosureArgsNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ClassConstFetchNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ClosureWithVariadicParametersNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ContextNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ContextNodeVisitor.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 4d2f856045f..a66cb3ea252 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1869,7 +1869,6 @@ class ComposerStaticInitac057519d542f6268293961514769bf4 'Rector\\NodeAnalyzer\\BinaryOpAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/BinaryOpAnalyzer.php', 'Rector\\NodeAnalyzer\\CallAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/CallAnalyzer.php', 'Rector\\NodeAnalyzer\\CallLikeArgumentNameAdder' => __DIR__ . '/../..' . '/src/NodeAnalyzer/CallLikeArgumentNameAdder.php', - 'Rector\\NodeAnalyzer\\CallLikeExpectsThisBoundClosureArgsAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/CallLikeExpectsThisBoundClosureArgsAnalyzer.php', 'Rector\\NodeAnalyzer\\ClassAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/ClassAnalyzer.php', 'Rector\\NodeAnalyzer\\CoalesceAnalyzer' => __DIR__ . '/..' . '/rector/rector-downgrade-php/src/NodeAnalyzer/CoalesceAnalyzer.php', 'Rector\\NodeAnalyzer\\CompactFuncCallAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/CompactFuncCallAnalyzer.php', @@ -2426,7 +2425,6 @@ class ComposerStaticInitac057519d542f6268293961514769bf4 'Rector\\PhpParser\\NodeVisitor\\AssignedToNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ByRefReturnNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ByRefVariableNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ByRefVariableNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\CallLikeThisBoundClosureArgsNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/CallLikeThisBoundClosureArgsNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ClassConstFetchNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ClosureWithVariadicParametersNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ContextNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ContextNodeVisitor.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e39537fa2e0..66702ce8187 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -390,17 +390,17 @@ }, { "name": "entropy\/entropy", - "version": "0.4.9", - "version_normalized": "0.4.9.0", + "version": "0.4.10", + "version_normalized": "0.4.10.0", "source": { "type": "git", "url": "https:\/\/github.com\/TomasVotruba\/entropy.git", - "reference": "856fea65681d3fe0fb17b947ae0eacef895dd407" + "reference": "697ad55bc7a2522c4eab8746160ec899d09f88c1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/856fea65681d3fe0fb17b947ae0eacef895dd407", - "reference": "856fea65681d3fe0fb17b947ae0eacef895dd407", + "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/697ad55bc7a2522c4eab8746160ec899d09f88c1", + "reference": "697ad55bc7a2522c4eab8746160ec899d09f88c1", "shasum": "" }, "require": { @@ -422,7 +422,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-22T21:35:13+00:00", + "time": "2026-08-25T07:22:55+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -437,7 +437,7 @@ "description": "Entropy framework", "support": { "issues": "https:\/\/github.com\/TomasVotruba\/entropy\/issues", - "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.9" + "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.10" }, "install-path": "..\/entropy\/entropy" }, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 5b239b87a3e..92466724195 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.9', 'version' => '0.4.9.0', 'reference' => '856fea65681d3fe0fb17b947ae0eacef895dd407', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'd07935945a8d93026f0a52fd84a94f58c4c96bc6', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.10', 'version' => '0.4.10.0', 'reference' => '697ad55bc7a2522c4eab8746160ec899d09f88c1', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'd07935945a8d93026f0a52fd84a94f58c4c96bc6', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/entropy/entropy/src/Container/Container.php b/vendor/entropy/entropy/src/Container/Container.php index 2cbacc0dad1..101da8bc7a0 100644 --- a/vendor/entropy/entropy/src/Container/Container.php +++ b/vendor/entropy/entropy/src/Container/Container.php @@ -45,6 +45,12 @@ class Container * @var array */ private array $registeredClasses = []; + /** + * Once booted, the service graph is frozen: no further register()/service() is accepted, so any + * collection resolved afterwards via findByContract() is complete and order-independent. Call + * reopen() to register again (e.g. a reused container that re-imports a fresh config). + */ + private bool $isBooted = \false; /** * Callbacks run once, right after a matching instance is built, keyed by the type they apply to. * @var array> @@ -99,6 +105,7 @@ public function autodiscover(string $directory): void */ public function service(string $class, callable $factory): void { + $this->assertNotBooted($class); if (isset($this->serviceFactories[$class])) { // avoid service override throw new RegisterServiceException(sprintf('Service for "%s" class is already registered', $class)); @@ -119,8 +126,33 @@ public function register(string $class): void if (isset($this->serviceFactories[$class])) { return; } + // re-registering an already-known class changes no collection, so allow it even after boot + if (isset($this->registeredClasses[$class])) { + return; + } + $this->assertNotBooted($class); $this->registeredClasses[$class] = \true; } + /** + * Freeze the service graph. After this, register()/service() of a new class is refused, so every + * collection resolved via findByContract() from now on is complete regardless of resolution order. + */ + public function boot(): void + { + $this->isBooted = \true; + } + /** + * Re-open the graph for registration after a boot(). Meant for a reused container that discards its + * previous config and imports a fresh one (e.g. the test harness), not for production wiring. + */ + public function reopen(): void + { + $this->isBooted = \false; + } + public function isBooted(): bool + { + return $this->isBooted; + } /** * Register a callback run once, right after an instance of $class (or a subtype) is built. * Useful for setter injection that would otherwise create a dependency cycle. Draining is @@ -245,6 +277,16 @@ private function resolveDependenciesFromParameterReflections(ReflectionMethod $r } return $dependencies; } + /** + * @param class-string $class + */ + private function assertNotBooted(string $class): void + { + if (!$this->isBooted) { + return; + } + throw new RegisterServiceException(sprintf('Class "%s" cannot be registered after the container was booted. Register every service before ' . 'boot(), so contract collections resolve completely. Call reopen() first if you must register again.', $class)); + } private function warmUpInstanceServices(string $contractClass): void { // warm up both factory-backed services and bare-registered classes of the contract From 06dfa5f618475185282808aa73fc6bf974f951ba Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 08:08:10 +0000 Subject: [PATCH 033/169] Updated Rector to commit ba9c1c16950c23bb0bac646e6219873aa5ab43ba https://github.com/rectorphp/rector-src/commit/ba9c1c16950c23bb0bac646e6219873aa5ab43ba [DI] Autodiscover TypeMapper via most-specific match (#8372) --- src/Application/VersionResolver.php | 4 +- .../LazyContainerFactory.php | 32 +------------ .../PHPStanStaticTypeMapper.php | 45 ++++++++++--------- 3 files changed, 28 insertions(+), 53 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 64d7a0590a8..df57fc7423e 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 = 'e8e1c7a6858ea97de4b5d52e56858088923ef30c'; + public const PACKAGE_VERSION = 'ba9c1c16950c23bb0bac646e6219873aa5ab43ba'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 09:26:40'; + public const RELEASE_DATE = '2026-08-25 10:05:23'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 8d7beb31169..2155f64bf5a 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -72,37 +72,11 @@ use Rector\PhpParser\NodeVisitor\PhpVersionConditionNodeVisitor; use Rector\PhpParser\NodeVisitor\PropertyOrClassConstDefaultNodeVisitor; use Rector\PhpParser\NodeVisitor\StaticVariableNodeVisitor; -use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\AccessoryArrayTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\AccessoryStringTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\ArrayTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\BooleanTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\CallableTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\ClassStringTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\ClosureTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\ConditionalTypeForParameterMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\ConditionalTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\ConstantArrayTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\FloatTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\HasMethodTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\HasPropertyTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\IntegerTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\IntersectionTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\IterableTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\MixedTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\NeverTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\NullTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\ObjectTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\ObjectWithoutClassTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\ParentStaticTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\ResourceTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\StaticTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\StrictMixedTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\StringTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\TypeWithClassNameTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeMapper\VoidTypeMapper; use Rector\PostRector\Application\PostFileProcessor; use Rector\Rector\AbstractRector; use Rector\Skipper\Skipper\Skipper; @@ -129,10 +103,6 @@ final class LazyContainerFactory * @var array> */ private const DECORATING_NODE_VISITOR_CLASSES = [ArgNodeVisitor::class, ClosureWithVariadicParametersNodeVisitor::class, PhpVersionConditionNodeVisitor::class, AssignedToNodeVisitor::class, ByRefReturnNodeVisitor::class, ByRefVariableNodeVisitor::class, ContextNodeVisitor::class, GlobalVariableNodeVisitor::class, NameNodeVisitor::class, StaticVariableNodeVisitor::class, PropertyOrClassConstDefaultNodeVisitor::class, ParamDefaultNodeVisitor::class, ClassConstFetchNodeVisitor::class, ArgNotAcceptingClosureNodeVisitor::class]; - /** - * @var array> - */ - private const TYPE_MAPPER_CLASSES = [AccessoryArrayTypeMapper::class, AccessoryStringTypeMapper::class, ConstantArrayTypeMapper::class, ArrayTypeMapper::class, BooleanTypeMapper::class, CallableTypeMapper::class, ClassStringTypeMapper::class, ClosureTypeMapper::class, ConditionalTypeForParameterMapper::class, ConditionalTypeMapper::class, FloatTypeMapper::class, HasMethodTypeMapper::class, HasPropertyTypeMapper::class, IntegerTypeMapper::class, IntersectionTypeMapper::class, IterableTypeMapper::class, MixedTypeMapper::class, NeverTypeMapper::class, NullTypeMapper::class, ObjectTypeMapper::class, ObjectWithoutClassTypeMapper::class, ParentStaticTypeMapper::class, ResourceTypeMapper::class, StaticTypeMapper::class, StrictMixedTypeMapper::class, StringTypeMapper::class, TypeWithClassNameTypeMapper::class, UnionTypeMapper::class, VoidTypeMapper::class]; /** * @var array> */ @@ -245,7 +215,7 @@ private function registerTaggedServices(RectorConfig $rectorConfig): void { // PHP 8.0 attributes $rectorConfig->autodiscover(__DIR__ . '/../PhpAttribute/AnnotationToAttributeMapper'); - $this->registerTagged($rectorConfig, self::TYPE_MAPPER_CLASSES, TypeMapperInterface::class); + $rectorConfig->autodiscover(__DIR__ . '/../PHPStanStaticTypeMapper/TypeMapper'); $rectorConfig->autodiscover(__DIR__ . '/../StaticTypeMapper/PhpDocParser'); $rectorConfig->autodiscover(__DIR__ . '/../NodeNameResolver/NodeNameResolver'); $rectorConfig->autodiscover(__DIR__ . '/../NodeTypeResolver/NodeTypeResolver'); diff --git a/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php b/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php index 330a18b4e88..f0510df03bb 100644 --- a/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php +++ b/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php @@ -29,13 +29,11 @@ public function __construct(array $typeMappers) } public function mapToPHPStanPhpDocTypeNode(Type $type): TypeNode { - foreach ($this->typeMappers as $typeMapper) { - if (!$this->doesTypeMatch($type, $typeMapper)) { - continue; - } - return $typeMapper->mapToPHPStanPhpDocTypeNode($type); + $typeMapper = $this->matchTypeMapper($type); + if (!$typeMapper instanceof TypeMapperInterface) { + throw new NotImplementedYetException(__METHOD__ . ' for ' . get_class($type)); } - throw new NotImplementedYetException(__METHOD__ . ' for ' . get_class($type)); + return $typeMapper->mapToPHPStanPhpDocTypeNode($type); } /** * @param TypeKind::* $typeKind @@ -43,26 +41,33 @@ public function mapToPHPStanPhpDocTypeNode(Type $type): TypeNode */ public function mapToPhpParserNode(Type $type, string $typeKind) { - foreach ($this->typeMappers as $typeMapper) { - if (!$this->doesTypeMatch($type, $typeMapper)) { - continue; - } - return $typeMapper->mapToPhpParserNode($type, $typeKind); + $typeMapper = $this->matchTypeMapper($type); + if (!$typeMapper instanceof TypeMapperInterface) { + throw new NotImplementedYetException(__METHOD__ . ' for ' . get_class($type)); } - throw new NotImplementedYetException(__METHOD__ . ' for ' . get_class($type)); + return $typeMapper->mapToPhpParserNode($type, $typeKind); } /** - * @param TypeMapperInterface $typeMapper + * Match the most specific mapper: when a type is handled by both a mapper for a parent + * class and one for its subclass, the subclass mapper wins, regardless of registration order. + * + * @return TypeMapperInterface|null */ - private function doesTypeMatch(Type $type, TypeMapperInterface $typeMapper): bool + private function matchTypeMapper(Type $type): ?TypeMapperInterface { - $found = \false; - foreach ($typeMapper->getNodeClasses() as $nodeClass) { - if ($type instanceof $nodeClass) { - $found = \true; - break; + $matchedTypeMapper = null; + $matchedNodeClass = null; + foreach ($this->typeMappers as $typeMapper) { + foreach ($typeMapper->getNodeClasses() as $nodeClass) { + if (!$type instanceof $nodeClass) { + continue; + } + if ($matchedNodeClass === null || is_a($nodeClass, $matchedNodeClass, \true)) { + $matchedNodeClass = $nodeClass; + $matchedTypeMapper = $typeMapper; + } } } - return $found; + return $matchedTypeMapper; } } From 61a62fa0770e714e27393931ec33932c490f9748 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 08:13:17 +0000 Subject: [PATCH 034/169] Updated Rector to commit 28b18dbfd617c7b1aee26bb43d8403a000bab6a9 https://github.com/rectorphp/rector-src/commit/28b18dbfd617c7b1aee26bb43d8403a000bab6a9 [DI] Autodiscover PhpParserNodeMapper via most-specific match (#8374) --- src/Application/VersionResolver.php | 4 ++-- .../LazyContainerFactory.php | 15 +-------------- .../Mapper/PhpParserNodeMapper.php | 17 ++++++++++++++--- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index df57fc7423e..9143022e17d 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 = 'ba9c1c16950c23bb0bac646e6219873aa5ab43ba'; + public const PACKAGE_VERSION = '28b18dbfd617c7b1aee26bb43d8403a000bab6a9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 10:05:23'; + public const RELEASE_DATE = '2026-08-25 10:11:07'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 2155f64bf5a..b009ebd031d 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -81,15 +81,6 @@ use Rector\Rector\AbstractRector; use Rector\Skipper\Skipper\Skipper; use Rector\Skipper\Skipper\UsedSkipCollector; -use Rector\StaticTypeMapper\Contract\PhpParser\PhpParserNodeMapperInterface; -use Rector\StaticTypeMapper\PhpParser\ExprNodeMapper; -use Rector\StaticTypeMapper\PhpParser\FullyQualifiedNodeMapper; -use Rector\StaticTypeMapper\PhpParser\IdentifierNodeMapper; -use Rector\StaticTypeMapper\PhpParser\IntersectionTypeNodeMapper; -use Rector\StaticTypeMapper\PhpParser\NameNodeMapper; -use Rector\StaticTypeMapper\PhpParser\NullableTypeNodeMapper; -use Rector\StaticTypeMapper\PhpParser\StringNodeMapper; -use Rector\StaticTypeMapper\PhpParser\UnionTypeNodeMapper; use RectorPrefix202608\Symfony\Component\Console\Application; use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; use RectorPrefix202608\Webmozart\Assert\Assert; @@ -111,10 +102,6 @@ final class LazyContainerFactory * @var array */ private const PUBLIC_PHPSTAN_SERVICE_TYPES = [ScopeFactory::class, TypeNodeResolver::class, NodeScopeResolver::class, ReflectionProvider::class, PhpVersionFactory::class]; - /** - * @var array> - */ - private const PHP_PARSER_NODE_MAPPER_CLASSES = [FullyQualifiedNodeMapper::class, IdentifierNodeMapper::class, IntersectionTypeNodeMapper::class, NameNodeMapper::class, NullableTypeNodeMapper::class, StringNodeMapper::class, UnionTypeNodeMapper::class, ExprNodeMapper::class]; /** * @api used as next rectorConfig factory */ @@ -207,7 +194,7 @@ private function registerRectorAutowiring(RectorConfig $rectorConfig): void $rectorConfig->afterResolving(AbstractRector::class, static function (AbstractRector $rector) use ($rectorConfig): void { $rector->autowire($rectorConfig->get(NodeNameResolver::class), $rectorConfig->get(NodeTypeResolver::class), $rectorConfig->get(SimpleCallableNodeTraverser::class), $rectorConfig->get(NodeFactory::class), $rectorConfig->get(Skipper::class), $rectorConfig->get(NodeComparator::class), $rectorConfig->get(CurrentFileProvider::class), $rectorConfig->get(CreatedByRuleDecorator::class), $rectorConfig->get(ChangedNodeScopeRefresher::class), $rectorConfig->get(CommentsMerger::class)); }); - $this->registerTagged($rectorConfig, self::PHP_PARSER_NODE_MAPPER_CLASSES, PhpParserNodeMapperInterface::class); + $rectorConfig->autodiscover(__DIR__ . '/../StaticTypeMapper/PhpParser'); $this->registerTagged($rectorConfig, self::PHP_DOC_NODE_DECORATOR_CLASSES, PhpDocNodeDecoratorInterface::class); $this->registerTagged($rectorConfig, self::BASE_PHP_DOC_NODE_VISITORS, BasePhpDocNodeVisitorInterface::class); } diff --git a/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php b/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php index 7fd828ebe92..79e80f22904 100644 --- a/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php +++ b/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php @@ -23,12 +23,23 @@ public function __construct(array $phpParserNodeMappers) } public function mapToPHPStanType(Node $node): Type { + $matchedNodeMapper = null; + $matchedNodeType = null; foreach ($this->phpParserNodeMappers as $phpParserNodeMapper) { - if (!is_a($node, $phpParserNodeMapper->getNodeType())) { + $nodeType = $phpParserNodeMapper->getNodeType(); + if (!$node instanceof $nodeType) { continue; } - return $phpParserNodeMapper->mapToPHPStan($node); + // pick the most specific mapper: a mapper for a child node wins over one for its + // parent node, regardless of registration order + if ($matchedNodeType === null || is_a($nodeType, $matchedNodeType, \true)) { + $matchedNodeType = $nodeType; + $matchedNodeMapper = $phpParserNodeMapper; + } + } + if (!$matchedNodeMapper instanceof PhpParserNodeMapperInterface) { + throw new NotImplementedYetException(get_class($node)); } - throw new NotImplementedYetException(get_class($node)); + return $matchedNodeMapper->mapToPHPStan($node); } } From 1c05d8dd164780d8cf2edc3896ddae7887b4b353 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 15:43:10 +0000 Subject: [PATCH 035/169] Updated Rector to commit 28b18dbfd617c7b1aee26bb43d8403a000bab6a9 --- vendor/composer/installed.json | 40 ++++++------- vendor/composer/installed.php | 2 +- .../entropy/src/Container/Container.php | 42 -------------- .../src/GeneratedConfig.php | 2 +- .../config/sets/symfony/composer-based.php | 12 ++++ vendor/sebastian/diff/ChangeLog.md | 14 +++++ vendor/sebastian/diff/composer.json | 4 +- vendor/sebastian/diff/src/Parser.php | 57 +++++++++++++++++-- 8 files changed, 102 insertions(+), 71 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 66702ce8187..5534354866d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -390,17 +390,17 @@ }, { "name": "entropy\/entropy", - "version": "0.4.10", - "version_normalized": "0.4.10.0", + "version": "0.4.12", + "version_normalized": "0.4.12.0", "source": { "type": "git", "url": "https:\/\/github.com\/TomasVotruba\/entropy.git", - "reference": "697ad55bc7a2522c4eab8746160ec899d09f88c1" + "reference": "fa763e4fc4271658e9a7e1f41279ed2a4911765c" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/697ad55bc7a2522c4eab8746160ec899d09f88c1", - "reference": "697ad55bc7a2522c4eab8746160ec899d09f88c1", + "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/fa763e4fc4271658e9a7e1f41279ed2a4911765c", + "reference": "fa763e4fc4271658e9a7e1f41279ed2a4911765c", "shasum": "" }, "require": { @@ -422,7 +422,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-25T07:22:55+00:00", + "time": "2026-08-25T15:38:26+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -437,7 +437,7 @@ "description": "Entropy framework", "support": { "issues": "https:\/\/github.com\/TomasVotruba\/entropy\/issues", - "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.10" + "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.12" }, "install-path": "..\/entropy\/entropy" }, @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "d07935945a8d93026f0a52fd84a94f58c4c96bc6" + "reference": "5221bca688e11fa9ffed3879676f262d3e9651a8" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/d07935945a8d93026f0a52fd84a94f58c4c96bc6", - "reference": "d07935945a8d93026f0a52fd84a94f58c4c96bc6", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/5221bca688e11fa9ffed3879676f262d3e9651a8", + "reference": "5221bca688e11fa9ffed3879676f262d3e9651a8", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-24T21:08:28+00:00", + "time": "2026-08-25T15:34:52+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1792,27 +1792,27 @@ }, { "name": "sebastian\/diff", - "version": "9.0.0", - "version_normalized": "9.0.0.0", + "version": "9.0.1", + "version_normalized": "9.0.1.0", "source": { "type": "git", "url": "https:\/\/github.com\/sebastianbergmann\/diff.git", - "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226" + "reference": "a2df6626c1baf31d5a88674882a3072f151b5a26" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/sebastianbergmann\/diff\/zipball\/a3fb6a298a265ff487a91bbea46e03cd01dbb226", - "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226", + "url": "https:\/\/api.github.com\/repos\/sebastianbergmann\/diff\/zipball\/a2df6626c1baf31d5a88674882a3072f151b5a26", + "reference": "a2df6626c1baf31d5a88674882a3072f151b5a26", "shasum": "" }, "require": { "php": ">=8.4" }, "require-dev": { - "phpunit\/phpunit": "^13.2", - "symfony\/process": "^7.4.13" + "phpunit\/phpunit": "^13.3.1", + "symfony\/process": "^7.4.17" }, - "time": "2026-06-05T03:04:51+00:00", + "time": "2026-08-25T15:38:55+00:00", "type": "library", "extra": { "branch-alias": { @@ -1850,7 +1850,7 @@ "support": { "issues": "https:\/\/github.com\/sebastianbergmann\/diff\/issues", "security": "https:\/\/github.com\/sebastianbergmann\/diff\/security\/policy", - "source": "https:\/\/github.com\/sebastianbergmann\/diff\/tree\/9.0.0" + "source": "https:\/\/github.com\/sebastianbergmann\/diff\/tree\/9.0.1" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 92466724195..66f817b4e63 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.10', 'version' => '0.4.10.0', 'reference' => '697ad55bc7a2522c4eab8746160ec899d09f88c1', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'd07935945a8d93026f0a52fd84a94f58c4c96bc6', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.0', 'version' => '9.0.0.0', 'reference' => 'a3fb6a298a265ff487a91bbea46e03cd01dbb226', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '5221bca688e11fa9ffed3879676f262d3e9651a8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/entropy/entropy/src/Container/Container.php b/vendor/entropy/entropy/src/Container/Container.php index 101da8bc7a0..2cbacc0dad1 100644 --- a/vendor/entropy/entropy/src/Container/Container.php +++ b/vendor/entropy/entropy/src/Container/Container.php @@ -45,12 +45,6 @@ class Container * @var array */ private array $registeredClasses = []; - /** - * Once booted, the service graph is frozen: no further register()/service() is accepted, so any - * collection resolved afterwards via findByContract() is complete and order-independent. Call - * reopen() to register again (e.g. a reused container that re-imports a fresh config). - */ - private bool $isBooted = \false; /** * Callbacks run once, right after a matching instance is built, keyed by the type they apply to. * @var array> @@ -105,7 +99,6 @@ public function autodiscover(string $directory): void */ public function service(string $class, callable $factory): void { - $this->assertNotBooted($class); if (isset($this->serviceFactories[$class])) { // avoid service override throw new RegisterServiceException(sprintf('Service for "%s" class is already registered', $class)); @@ -126,33 +119,8 @@ public function register(string $class): void if (isset($this->serviceFactories[$class])) { return; } - // re-registering an already-known class changes no collection, so allow it even after boot - if (isset($this->registeredClasses[$class])) { - return; - } - $this->assertNotBooted($class); $this->registeredClasses[$class] = \true; } - /** - * Freeze the service graph. After this, register()/service() of a new class is refused, so every - * collection resolved via findByContract() from now on is complete regardless of resolution order. - */ - public function boot(): void - { - $this->isBooted = \true; - } - /** - * Re-open the graph for registration after a boot(). Meant for a reused container that discards its - * previous config and imports a fresh one (e.g. the test harness), not for production wiring. - */ - public function reopen(): void - { - $this->isBooted = \false; - } - public function isBooted(): bool - { - return $this->isBooted; - } /** * Register a callback run once, right after an instance of $class (or a subtype) is built. * Useful for setter injection that would otherwise create a dependency cycle. Draining is @@ -277,16 +245,6 @@ private function resolveDependenciesFromParameterReflections(ReflectionMethod $r } return $dependencies; } - /** - * @param class-string $class - */ - private function assertNotBooted(string $class): void - { - if (!$this->isBooted) { - return; - } - throw new RegisterServiceException(sprintf('Class "%s" cannot be registered after the container was booted. Register every service before ' . 'boot(), so contract collections resolve completely. Call reopen() first if you must register again.', $class)); - } private function warmUpInstanceServices(string $contractClass): void { // warm up both factory-backed services and bare-registered classes of the contract diff --git a/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/extension-installer/src/GeneratedConfig.php index 9294d26c9dd..fe6856ced8c 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main d079359')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 5221bca')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php index eff9bf5d8c4..5f627705392 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php @@ -900,6 +900,11 @@ // @see https://github.com/symfony/symfony/blob/7.4/UPGRADE-7.2.md#mailer 'Symfony\Component\Mailer\Test\TransportFactoryTestCase' => 'Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase', ], 'symfony/mailer', '>=7.2'); + // symfony/notifier 7.2 + $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameClassRector::class, [ + // @see https://github.com/symfony/symfony/blob/7.4/UPGRADE-7.2.md#notifier + 'Symfony\Component\Mailer\Test\TransportFactoryTestCase' => 'Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase', + ], 'symfony/notifier', '>=7.2'); // symfony/serializer 7.2 $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameClassRector::class, [ // @see https://github.com/symfony/symfony/blob/7.2/UPGRADE-7.2.md#serializer @@ -907,6 +912,13 @@ ], 'symfony/serializer', '>=7.2'); // symfony/translation 7.2 $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameClassRector::class, ['Symfony\Component\Translation\Test\ProviderFactoryTestCase' => 'Symfony\Component\Translation\Test\AbstractProviderFactoryTestCase'], 'symfony/translation', '>=7.2'); + // symfony/type-info 7.2 + $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameMethodRector::class, [ + // @see https://github.com/symfony/symfony/blob/7.4/UPGRADE-7.2.md#typeinfo + new MethodCallRename('Symfony\Component\TypeInfo\Type', 'isA', 'isIdentifiedBy'), + // @see https://github.com/symfony/symfony/blob/7.4/UPGRADE-7.2.md#typeinfo + new MethodCallRename('Symfony\Component\TypeInfo\Type', 'is', 'isSatisfiedBy'), + ], 'symfony/type-info', '>=7.2'); // symfony/console 7.4 $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameMethodRector::class, [new MethodCallRename('Symfony\Component\Console\Application', 'add', 'addCommand')], 'symfony/console', '>=7.4'); // symfony/framework-bundle 7.4 diff --git a/vendor/sebastian/diff/ChangeLog.md b/vendor/sebastian/diff/ChangeLog.md index 5e9fe25996b..d86f075a76e 100644 --- a/vendor/sebastian/diff/ChangeLog.md +++ b/vendor/sebastian/diff/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [9.0.1] - 2026-08-25 + +### Fixed + +* Parser drops lines that look like file headers + ## [9.0.0] - 2026-06-05 ### Changed @@ -53,6 +59,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component is no longer supported on PHP 8.3 +## [7.0.1] - 2026-08-25 + +### Fixed + +* Parser drops lines that look like file headers + ## [7.0.0] - 2025-02-07 ### Removed @@ -208,12 +220,14 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component is no longer supported on PHP 5.6 +[9.0.1]: https://github.com/sebastianbergmann/diff/compare/9.0.0...9.0.1 [9.0.0]: https://github.com/sebastianbergmann/diff/compare/8.3.0...9.0.0 [8.3.0]: https://github.com/sebastianbergmann/diff/compare/8.2.1...8.3.0 [8.2.1]: https://github.com/sebastianbergmann/diff/compare/8.2.0...8.2.1 [8.2.0]: https://github.com/sebastianbergmann/diff/compare/8.1.0...8.2.0 [8.1.0]: https://github.com/sebastianbergmann/diff/compare/8.0.0...8.1.0 [8.0.0]: https://github.com/sebastianbergmann/diff/compare/7.0...8.0.0 +[7.0.1]: https://github.com/sebastianbergmann/diff/compare/7.0.0...7.0.1 [7.0.0]: https://github.com/sebastianbergmann/diff/compare/6.0.2...7.0.0 [6.0.2]: https://github.com/sebastianbergmann/diff/compare/6.0.1...6.0.2 [6.0.1]: https://github.com/sebastianbergmann/diff/compare/6.0.0...6.0.1 diff --git a/vendor/sebastian/diff/composer.json b/vendor/sebastian/diff/composer.json index a0f6af34d84..e0812d0997f 100644 --- a/vendor/sebastian/diff/composer.json +++ b/vendor/sebastian/diff/composer.json @@ -35,8 +35,8 @@ "php": ">=8.4" }, "require-dev": { - "phpunit\/phpunit": "^13.2", - "symfony\/process": "^7.4.13" + "phpunit\/phpunit": "^13.3.1", + "symfony\/process": "^7.4.17" }, "autoload": { "classmap": [ diff --git a/vendor/sebastian/diff/src/Parser.php b/vendor/sebastian/diff/src/Parser.php index 67640a0b6aa..70beb1d25d3 100644 --- a/vendor/sebastian/diff/src/Parser.php +++ b/vendor/sebastian/diff/src/Parser.php @@ -22,12 +22,36 @@ */ final class Parser { + /** + * @var string + */ + private const LINE_BREAK = '(\r\n|\r|\n)'; + /** + * @var string + */ + private const FROM_FILE_HEADER = '#^---\h+"?(?P[^\v\t"]+)#'; + /** + * @var string + */ + private const TO_FILE_HEADER = '#^\+\+\+\h+"?(?P[^\v\t"]+)#'; + /** + * @var string + */ + private const METADATA_HEADER = '/^(?:diff --git |index [\da-f.]+|(?:---|\+\+\+) [ab]\/)/'; + /** + * @var string + */ + private const CHUNK_HEADER = '/^@@\s+-(?P\d+)(?:,\s*(?P\d+))?\s+\+(?P\d+)(?:,\s*(?P\d+))?\s+@@/'; + /** + * @var string + */ + private const CHUNK_LINE = '/^(?P[+ -])?(?P.*)/'; /** * @return list */ public function parse(string $string): array { - $lines = preg_split('(\r\n|\r|\n)', $string); + $lines = preg_split(self::LINE_BREAK, $string); if ($lines === \false) { return []; } @@ -38,13 +62,36 @@ public function parse(string $string): array $diffs = []; $diff = null; $collected = []; + $fromLinesLeft = 0; + $toLinesLeft = 0; for ($i = 0; $i < $lineCount; $i++) { if (!isset($lines[$i])) { continue; } $line = $lines[$i]; $nextLine = $lines[$i + 1] ?? null; - if ($nextLine !== null && preg_match('#^---\h+"?(?P[^\v\t"]+)#', $line, $fromMatch) === 1 && preg_match('#^\+\+\+\h+"?(?P[^\v\t"]+)#', $nextLine, $toMatch) === 1) { + if ($fromLinesLeft > 0 || $toLinesLeft > 0) { + $marker = $line === '' ? ' ' : $line[0]; + if ($marker === ' ' || $marker === '+' || $marker === '-' || $marker === '\\') { + $collected[] = $line; + if ($marker !== '+' && $marker !== '\\') { + $fromLinesLeft--; + } + if ($marker !== '-' && $marker !== '\\') { + $toLinesLeft--; + } + continue; + } + $fromLinesLeft = 0; + $toLinesLeft = 0; + } + if (preg_match(self::CHUNK_HEADER, $line, $chunkMatch, PREG_UNMATCHED_AS_NULL) === 1) { + $fromLinesLeft = isset($chunkMatch['startrange']) ? max(0, (int) $chunkMatch['startrange']) : 1; + $toLinesLeft = isset($chunkMatch['endrange']) ? max(0, (int) $chunkMatch['endrange']) : 1; + $collected[] = $line; + continue; + } + if ($nextLine !== null && preg_match(self::FROM_FILE_HEADER, $line, $fromMatch) === 1 && preg_match(self::TO_FILE_HEADER, $nextLine, $toMatch) === 1) { if ($diff !== null) { $this->parseFileDiff($diff, $collected); $diffs[] = $diff; @@ -54,7 +101,7 @@ public function parse(string $string): array $i++; continue; } - if (preg_match('/^(?:diff --git |index [\da-f.]+|[+-]{3} [ab])/', $line) === 1) { + if (preg_match(self::METADATA_HEADER, $line) === 1) { continue; } $collected[] = $line; @@ -74,13 +121,13 @@ private function parseFileDiff(Diff $diff, array $lines): void $chunk = null; $diffLines = []; foreach ($lines as $line) { - if (preg_match('/^@@\s+-(?P\d+)(?:,\s*(?P\d+))?\s+\+(?P\d+)(?:,\s*(?P\d+))?\s+@@/', $line, $match, PREG_UNMATCHED_AS_NULL) === 1) { + if (preg_match(self::CHUNK_HEADER, $line, $match, PREG_UNMATCHED_AS_NULL) === 1) { $chunk = new Chunk((int) $match['start'], isset($match['startrange']) ? max(0, (int) $match['startrange']) : 1, (int) $match['end'], isset($match['endrange']) ? max(0, (int) $match['endrange']) : 1); $chunks[] = $chunk; $diffLines = []; continue; } - if (preg_match('/^(?P[+ -])?(?P.*)/', $line, $match) === 1) { + if (preg_match(self::CHUNK_LINE, $line, $match) === 1) { $type = Line::UNCHANGED; if ($match['type'] === '+') { $type = Line::ADDED; From e23008532d8235c8aedbd0e757fb81dfd04b93c6 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 15:45:44 +0000 Subject: [PATCH 036/169] Updated Rector to commit f331ab2476c008177dea30be421c8661a9069553 https://github.com/rectorphp/rector-src/commit/f331ab2476c008177dea30be421c8661a9069553 Require entropy ^0.4.12 for restored afterResolving() hook (#8378) --- src/Application/VersionResolver.php | 4 ++-- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 10 +++++----- vendor/composer/autoload_static.php | 8 ++++---- vendor/scoper-autoload.php | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 9143022e17d..cb72fcca402 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 = '28b18dbfd617c7b1aee26bb43d8403a000bab6a9'; + public const PACKAGE_VERSION = 'f331ab2476c008177dea30be421c8661a9069553'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 10:11:07'; + public const RELEASE_DATE = '2026-08-25 15:42:53'; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 50204097129..89299030e74 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitac057519d542f6268293961514769bf4::getLoader(); +return ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index e56dc43f890..a73a9dccae3 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitac057519d542f6268293961514769bf4 +class ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitac057519d542f6268293961514769bf4', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitac057519d542f6268293961514769bf4', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitac057519d542f6268293961514769bf4::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitde06eaa12aa21c2f652809601c70a851::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitac057519d542f6268293961514769bf4::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$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 a66cb3ea252..dcd8ff3ce5c 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitac057519d542f6268293961514769bf4 +class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -3068,9 +3068,9 @@ class ComposerStaticInitac057519d542f6268293961514769bf4 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitac057519d542f6268293961514769bf4::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitac057519d542f6268293961514769bf4::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitac057519d542f6268293961514769bf4::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 7108d7478af..2ae90e31434 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInitac057519d542f6268293961514769bf4', 'RectorPrefix202608\ComposerAutoloaderInitac057519d542f6268293961514769bf4'); +humbug_phpscoper_expose_class('ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851', 'RectorPrefix202608\ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); From 2ab02da312d40a3d12c307cfe062a88be3dfb620 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 15:51:34 +0000 Subject: [PATCH 037/169] Updated Rector to commit f331ab2476c008177dea30be421c8661a9069553 --- vendor/composer/installed.json | 8 ++-- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../config/sets/symfony/composer-based.php | 5 +++ .../CommandConfigureToAttributeRector.php | 41 ++++++++++++++++++- 5 files changed, 51 insertions(+), 7 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 5534354866d..f4aa10f86d5 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "5221bca688e11fa9ffed3879676f262d3e9651a8" + "reference": "dc8927af746ade4d703916d3f3a6312c06728945" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/5221bca688e11fa9ffed3879676f262d3e9651a8", - "reference": "5221bca688e11fa9ffed3879676f262d3e9651a8", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/dc8927af746ade4d703916d3f3a6312c06728945", + "reference": "dc8927af746ade4d703916d3f3a6312c06728945", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-25T15:34:52+00:00", + "time": "2026-08-25T15:46:34+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 66f817b4e63..c231687f19e 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '5221bca688e11fa9ffed3879676f262d3e9651a8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dc8927af746ade4d703916d3f3a6312c06728945', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 fe6856ced8c..9b8595871a7 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 5221bca')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main dc8927a')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php index 5f627705392..70f64110009 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php @@ -919,6 +919,11 @@ // @see https://github.com/symfony/symfony/blob/7.4/UPGRADE-7.2.md#typeinfo new MethodCallRename('Symfony\Component\TypeInfo\Type', 'is', 'isSatisfiedBy'), ], 'symfony/type-info', '>=7.2'); + // symfony/dependency-injection 7.3 + $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameMethodRector::class, [ + // @see https://github.com/symfony/symfony/blob/7.4/UPGRADE-7.3.md#dependencyinjection + new MethodCallRename('Symfony\Component\DependencyInjection\ContainerBuilder', 'getAutoconfiguredAttributes', 'getAttributeAutoconfigurators'), + ], 'symfony/dependency-injection', '>=7.3'); // symfony/console 7.4 $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameMethodRector::class, [new MethodCallRename('Symfony\Component\Console\Application', 'add', 'addCommand')], 'symfony/console', '>=7.4'); // symfony/framework-bundle 7.4 diff --git a/vendor/rector/rector-symfony/rules/Symfony61/Rector/Class_/CommandConfigureToAttributeRector.php b/vendor/rector/rector-symfony/rules/Symfony61/Rector/Class_/CommandConfigureToAttributeRector.php index 7df554d5f56..47136d8417a 100644 --- a/vendor/rector/rector-symfony/rules/Symfony61/Rector/Class_/CommandConfigureToAttributeRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony61/Rector/Class_/CommandConfigureToAttributeRector.php @@ -7,11 +7,16 @@ use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ClassConstFetch; +use PhpParser\Node\Expr\ConstFetch; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\Name; +use PhpParser\Node\Scalar; +use PhpParser\Node\Scalar\InterpolatedString; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; @@ -155,10 +160,12 @@ public function refactor(Node $node): ?Node } $asCommandAttribute->args = $attributeArgs; } + $hasChanged = $attributeArgs !== []; // remove left overs foreach ((array) $configureClassMethod->stmts as $key => $stmt) { if ($this->isExpressionVariableThis($stmt)) { unset($configureClassMethod->stmts[$key]); + $hasChanged = \true; } } // remove now empty configure() method, only a possible parent::configure() call left @@ -166,10 +173,15 @@ public function refactor(Node $node): ?Node foreach ($node->stmts as $key => $classStmt) { if ($classStmt === $configureClassMethod) { unset($node->stmts[$key]); + $hasChanged = \true; break; } } } + // nothing could be extracted (e.g. only non-constant values), leave the class untouched + if (!$hasChanged) { + return null; + } return $node; } private function isEmptyConfigureClassMethod(ClassMethod $classMethod): bool @@ -214,11 +226,38 @@ private function findAndRemoveMethodExpr(ClassMethod $classMethod, string $metho if (!$this->isName($node->name, $methodName)) { return null; } - $expr = $node->getArgs()[0]->value; + $argValue = $node->getArgs()[0]->value; + // attribute arguments must be constant expressions; + // a runtime value (e.g. $this->description) cannot be inlined, so leave the call in place + if (!$this->isPermittedAttributeValue($argValue)) { + return null; + } + $expr = $argValue; return $node->var; }); return $expr; } + private function isPermittedAttributeValue(Expr $expr): bool + { + if ($expr instanceof Scalar) { + return !$expr instanceof InterpolatedString; + } + if ($expr instanceof ConstFetch || $expr instanceof ClassConstFetch) { + return \true; + } + if ($expr instanceof Array_) { + foreach ($expr->items as $item) { + if ($item->key instanceof Expr && !$this->isPermittedAttributeValue($item->key)) { + return \false; + } + if (!$this->isPermittedAttributeValue($item->value)) { + return \false; + } + } + return \true; + } + return \false; + } private function isExpressionVariableThis(Stmt $stmt): bool { if (!$stmt instanceof Expression) { From 7991519ff005aa189f5d8a466959080e66203911 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 16:00:26 +0000 Subject: [PATCH 038/169] Updated Rector to commit f331ab2476c008177dea30be421c8661a9069553 --- vendor/composer/installed.json | 8 ++--- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- ...tanceofAssertForNullableArgumentRector.php | 35 +++++++++++++++++++ 4 files changed, 41 insertions(+), 6 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index f4aa10f86d5..37467b31172 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "0f24ff481b99c26ddbe122e1d66437e1cfa4ddea" + "reference": "e2d2cfb4ae526362d072a733daf25411673d6139" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/0f24ff481b99c26ddbe122e1d66437e1cfa4ddea", - "reference": "0f24ff481b99c26ddbe122e1d66437e1cfa4ddea", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/e2d2cfb4ae526362d072a733daf25411673d6139", + "reference": "e2d2cfb4ae526362d072a733daf25411673d6139", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-23T10:07:51+00:00", + "time": "2026-08-25T15:57:10+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index c231687f19e..0158d5a888d 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '0f24ff481b99c26ddbe122e1d66437e1cfa4ddea', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dc8927af746ade4d703916d3f3a6312c06728945', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => 'e2d2cfb4ae526362d072a733daf25411673d6139', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dc8927af746ade4d703916d3f3a6312c06728945', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 9b8595871a7..80fd03fa4a4 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 0f24ff4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main dc8927a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e2d2cfb'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main dc8927a')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/AddInstanceofAssertForNullableArgumentRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/AddInstanceofAssertForNullableArgumentRector.php index 6acc622973a..e8a820348e3 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/AddInstanceofAssertForNullableArgumentRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/AddInstanceofAssertForNullableArgumentRector.php @@ -8,6 +8,7 @@ use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Foreach_; use PhpParser\NodeVisitor; use PHPStan\Type\ObjectType; @@ -136,6 +137,15 @@ public function refactor(Node $node): ?Node $variableNameToTypeCollection = $this->nullableObjectAssignCollector->collect($node); $next = 0; foreach ($node->stmts as $key => $stmt) { + // already asserted in a previous run? drop the variable to keep the rule idempotent + $assertedVariableName = $this->matchAssertInstanceOfVariableName($stmt); + if (is_string($assertedVariableName)) { + $alreadyAssertedVariableNameToType = $variableNameToTypeCollection->matchByVariableName($assertedVariableName); + if ($alreadyAssertedVariableNameToType instanceof VariableNameToType) { + $variableNameToTypeCollection->remove($alreadyAssertedVariableNameToType); + } + continue; + } // has callable on nullable variable of already collected name? $matchedNullableVariableNameToType = $this->matchedNullableArgumentNameToType($stmt, $variableNameToTypeCollection); if (!$matchedNullableVariableNameToType instanceof VariableNameToType) { @@ -197,4 +207,29 @@ private function matchedNullableArgumentNameToType(Stmt $stmt, VariableNameToTyp }); return $matchedNullableVariableNameToType; } + private function matchAssertInstanceOfVariableName(Stmt $stmt): ?string + { + if (!$stmt instanceof Expression) { + return null; + } + if (!$stmt->expr instanceof MethodCall) { + return null; + } + $methodCall = $stmt->expr; + if (!$this->isName($methodCall->name, 'assertInstanceOf')) { + return null; + } + $args = $methodCall->getArgs(); + if (!isset($args[1])) { + return null; + } + if (!$args[1]->value instanceof Variable) { + return null; + } + $variableName = $this->getName($args[1]->value); + if (!is_string($variableName)) { + return null; + } + return $variableName; + } } From da25a9a93a4fb42707470b60b1ed4406d3ee84c2 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 18:42:34 +0000 Subject: [PATCH 039/169] Updated Rector to commit 2445b7c06d717375154d81eb953992a7ef0ede01 https://github.com/rectorphp/rector-src/commit/2445b7c06d717375154d81eb953992a7ef0ede01 [PhpParser] Merge decorating node visitors 14 to 8 for faster traversal (#8380) --- src/Application/VersionResolver.php | 4 +- .../LazyContainerFactory.php | 18 +-- src/PhpParser/NodeVisitor/ArgNodeVisitor.php | 32 ------ ...leNodeVisitor.php => ByRefNodeVisitor.php} | 45 +++++++- .../NodeVisitor/ByRefReturnNodeVisitor.php | 52 --------- ....php => CallLikeReflectionNodeVisitor.php} | 57 ++++++++-- .../ClassConstFetchNodeVisitor.php | 26 ----- ...osureWithVariadicParametersNodeVisitor.php | 60 ---------- ...isitor.php => DefaultValueNodeVisitor.php} | 14 ++- .../NodeVisitor/GlobalVariableNodeVisitor.php | 81 -------------- .../LocalVariableScopeNodeVisitor.php | 105 ++++++++++++++++++ ...eVisitor.php => NameAndArgNodeVisitor.php} | 23 +++- .../NodeVisitor/ParamDefaultNodeVisitor.php | 26 ----- .../NodeVisitor/StaticVariableNodeVisitor.php | 81 -------------- vendor/composer/autoload_classmap.php | 16 +-- vendor/composer/autoload_static.php | 16 +-- 16 files changed, 243 insertions(+), 413 deletions(-) delete mode 100644 src/PhpParser/NodeVisitor/ArgNodeVisitor.php rename src/PhpParser/NodeVisitor/{ByRefVariableNodeVisitor.php => ByRefNodeVisitor.php} (67%) delete mode 100644 src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php rename src/PhpParser/NodeVisitor/{ArgNotAcceptingClosureNodeVisitor.php => CallLikeReflectionNodeVisitor.php} (55%) delete mode 100644 src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php delete mode 100644 src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php rename src/PhpParser/NodeVisitor/{PropertyOrClassConstDefaultNodeVisitor.php => DefaultValueNodeVisitor.php} (63%) delete mode 100644 src/PhpParser/NodeVisitor/GlobalVariableNodeVisitor.php create mode 100644 src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php rename src/PhpParser/NodeVisitor/{NameNodeVisitor.php => NameAndArgNodeVisitor.php} (50%) delete mode 100644 src/PhpParser/NodeVisitor/ParamDefaultNodeVisitor.php delete mode 100644 src/PhpParser/NodeVisitor/StaticVariableNodeVisitor.php diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index cb72fcca402..f9ddb185a99 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 = 'f331ab2476c008177dea30be421c8661a9069553'; + public const PACKAGE_VERSION = '2445b7c06d717375154d81eb953992a7ef0ede01'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 15:42:53'; + public const RELEASE_DATE = '2026-08-25 20:38:26'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index b009ebd031d..f0936c012b5 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -58,20 +58,14 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PhpParser\Comparing\NodeComparator; use Rector\PhpParser\Node\NodeFactory; -use Rector\PhpParser\NodeVisitor\ArgNodeVisitor; -use Rector\PhpParser\NodeVisitor\ArgNotAcceptingClosureNodeVisitor; use Rector\PhpParser\NodeVisitor\AssignedToNodeVisitor; -use Rector\PhpParser\NodeVisitor\ByRefReturnNodeVisitor; -use Rector\PhpParser\NodeVisitor\ByRefVariableNodeVisitor; -use Rector\PhpParser\NodeVisitor\ClassConstFetchNodeVisitor; -use Rector\PhpParser\NodeVisitor\ClosureWithVariadicParametersNodeVisitor; +use Rector\PhpParser\NodeVisitor\ByRefNodeVisitor; +use Rector\PhpParser\NodeVisitor\CallLikeReflectionNodeVisitor; use Rector\PhpParser\NodeVisitor\ContextNodeVisitor; -use Rector\PhpParser\NodeVisitor\GlobalVariableNodeVisitor; -use Rector\PhpParser\NodeVisitor\NameNodeVisitor; -use Rector\PhpParser\NodeVisitor\ParamDefaultNodeVisitor; +use Rector\PhpParser\NodeVisitor\DefaultValueNodeVisitor; +use Rector\PhpParser\NodeVisitor\LocalVariableScopeNodeVisitor; +use Rector\PhpParser\NodeVisitor\NameAndArgNodeVisitor; use Rector\PhpParser\NodeVisitor\PhpVersionConditionNodeVisitor; -use Rector\PhpParser\NodeVisitor\PropertyOrClassConstDefaultNodeVisitor; -use Rector\PhpParser\NodeVisitor\StaticVariableNodeVisitor; use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\ArrayTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\ConditionalTypeForParameterMapper; @@ -93,7 +87,7 @@ final class LazyContainerFactory /** * @var array> */ - private const DECORATING_NODE_VISITOR_CLASSES = [ArgNodeVisitor::class, ClosureWithVariadicParametersNodeVisitor::class, PhpVersionConditionNodeVisitor::class, AssignedToNodeVisitor::class, ByRefReturnNodeVisitor::class, ByRefVariableNodeVisitor::class, ContextNodeVisitor::class, GlobalVariableNodeVisitor::class, NameNodeVisitor::class, StaticVariableNodeVisitor::class, PropertyOrClassConstDefaultNodeVisitor::class, ParamDefaultNodeVisitor::class, ClassConstFetchNodeVisitor::class, ArgNotAcceptingClosureNodeVisitor::class]; + private const DECORATING_NODE_VISITOR_CLASSES = [CallLikeReflectionNodeVisitor::class, PhpVersionConditionNodeVisitor::class, AssignedToNodeVisitor::class, ByRefNodeVisitor::class, ContextNodeVisitor::class, LocalVariableScopeNodeVisitor::class, NameAndArgNodeVisitor::class, DefaultValueNodeVisitor::class]; /** * @var array> */ diff --git a/src/PhpParser/NodeVisitor/ArgNodeVisitor.php b/src/PhpParser/NodeVisitor/ArgNodeVisitor.php deleted file mode 100644 index 7801368e3da..00000000000 --- a/src/PhpParser/NodeVisitor/ArgNodeVisitor.php +++ /dev/null @@ -1,32 +0,0 @@ -name instanceof Name) { - return null; - } - // has no args - if ($node->isFirstClassCallable()) { - return null; - } - $funcCallName = $node->name->toString(); - foreach ($node->getArgs() as $arg) { - $arg->value->setAttribute(AttributeKey::FROM_FUNC_CALL_NAME, $funcCallName); - } - return null; - } -} diff --git a/src/PhpParser/NodeVisitor/ByRefVariableNodeVisitor.php b/src/PhpParser/NodeVisitor/ByRefNodeVisitor.php similarity index 67% rename from src/PhpParser/NodeVisitor/ByRefVariableNodeVisitor.php rename to src/PhpParser/NodeVisitor/ByRefNodeVisitor.php index 048f858fbdc..c733690068e 100644 --- a/src/PhpParser/NodeVisitor/ByRefVariableNodeVisitor.php +++ b/src/PhpParser/NodeVisitor/ByRefNodeVisitor.php @@ -9,11 +9,19 @@ use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\Variable; use PhpParser\Node\FunctionLike; +use PhpParser\Node\Stmt\Class_; +use PhpParser\Node\Stmt\Return_; +use PhpParser\NodeVisitor; use PhpParser\NodeVisitorAbstract; use Rector\Contract\PhpParser\DecoratingNodeVisitorInterface; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; -final class ByRefVariableNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface +use Rector\PhpParser\NodeTraverser\SimpleNodeTraverser; +/** + * Marks by-ref returns (IS_BYREF_RETURN / IS_INSIDE_BYREF_FUNCTION_LIKE) and by-ref variables + * (IS_BYREF_VAR) from a single FunctionLike entry, sharing the one node subscription. + */ +final class ByRefNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface { /** * @readonly @@ -32,12 +40,42 @@ public function enterNode(Node $node): ?Node if (!$node instanceof FunctionLike) { return null; } - $byRefVariableNames = $this->resolveClosureUseIsByRefAttribute($node, []); - $byRefVariableNames = $this->resolveParamIsByRefAttribute($node, $byRefVariableNames); $stmts = $node->getStmts(); if ($stmts === null) { return null; } + $this->decorateByRefReturn($node, $stmts); + $this->decorateByRefVariables($node, $stmts); + return null; + } + /** + * @param Node\Stmt[] $stmts + */ + private function decorateByRefReturn(FunctionLike $functionLike, array $stmts): void + { + if (!$functionLike->returnsByRef()) { + return; + } + SimpleNodeTraverser::decorateWithAttributeValue($stmts, AttributeKey::IS_INSIDE_BYREF_FUNCTION_LIKE, \true); + $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmts, static function (Node $node) { + // avoid nested functions or classes + if ($node instanceof Class_ || $node instanceof FunctionLike) { + return NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN; + } + if (!$node instanceof Return_) { + return null; + } + $node->setAttribute(AttributeKey::IS_BYREF_RETURN, \true); + return $node; + }); + } + /** + * @param Node\Stmt[] $stmts + */ + private function decorateByRefVariables(FunctionLike $functionLike, array $stmts): void + { + $byRefVariableNames = $this->resolveClosureUseIsByRefAttribute($functionLike, []); + $byRefVariableNames = $this->resolveParamIsByRefAttribute($functionLike, $byRefVariableNames); $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmts, function (Node $subNode) use (&$byRefVariableNames): ?\PhpParser\Node\Expr\Variable { if ($subNode instanceof Closure) { $byRefVariableNames = $this->resolveClosureUseIsByRefAttribute($subNode, $byRefVariableNames); @@ -52,7 +90,6 @@ public function enterNode(Node $node): ?Node $subNode->setAttribute(AttributeKey::IS_BYREF_VAR, \true); return $subNode; }); - return null; } /** * @param string[] $byRefVariableNames diff --git a/src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php b/src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php deleted file mode 100644 index afdb7bc7cdc..00000000000 --- a/src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php +++ /dev/null @@ -1,52 +0,0 @@ -simpleCallableNodeTraverser = $simpleCallableNodeTraverser; - } - public function enterNode(Node $node): ?Node - { - if (!$node instanceof FunctionLike) { - return null; - } - if (!$node->returnsByRef()) { - return null; - } - $stmts = $node->getStmts(); - if ($stmts === null) { - return null; - } - SimpleNodeTraverser::decorateWithAttributeValue($stmts, AttributeKey::IS_INSIDE_BYREF_FUNCTION_LIKE, \true); - $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmts, static function (Node $node) { - // avoid nested functions or classes - if ($node instanceof Class_ || $node instanceof FunctionLike) { - return NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN; - } - if (!$node instanceof Return_) { - return null; - } - $node->setAttribute(AttributeKey::IS_BYREF_RETURN, \true); - return $node; - }); - return null; - } -} diff --git a/src/PhpParser/NodeVisitor/ArgNotAcceptingClosureNodeVisitor.php b/src/PhpParser/NodeVisitor/CallLikeReflectionNodeVisitor.php similarity index 55% rename from src/PhpParser/NodeVisitor/ArgNotAcceptingClosureNodeVisitor.php rename to src/PhpParser/NodeVisitor/CallLikeReflectionNodeVisitor.php index 60b6a0f69c6..ceeb9a5caa7 100644 --- a/src/PhpParser/NodeVisitor/ArgNotAcceptingClosureNodeVisitor.php +++ b/src/PhpParser/NodeVisitor/CallLikeReflectionNodeVisitor.php @@ -6,12 +6,17 @@ use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ArrowFunction; use PhpParser\Node\Expr\CallLike; +use PhpParser\Node\Expr\Closure; use PhpParser\Node\Identifier; use PhpParser\NodeVisitorAbstract; use PHPStan\Reflection\FunctionReflection; use PHPStan\Reflection\MethodReflection; +use PHPStan\Reflection\Native\NativeFunctionReflection; use PHPStan\Reflection\ParameterReflection; +use PHPStan\Reflection\ParametersAcceptorSelector; +use PHPStan\Type\CallableType; use PHPStan\Type\ObjectType; use Rector\Contract\PhpParser\DecoratingNodeVisitorInterface; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -19,12 +24,12 @@ use Rector\PHPStan\ScopeFetcher; use Rector\Reflection\ReflectionResolver; /** - * Mark array arguments passed to a parameter that cannot hold a Closure, - * e.g. "array" or "string|array|null", so an array callable is kept as is - * - * @see https://github.com/rectorphp/rector/issues/9563 + * Decorates call args using the resolved function-like reflection, resolved once per call: + * - Closure/arrow-fn args passed to a variadic callable parameter (HAS_CLOSURE_WITH_VARIADIC_ARGS) + * - array args passed to a parameter that cannot hold a Closure, so an array callable is kept as is + * (IS_ARG_NOT_ACCEPTING_CLOSURE), see https://github.com/rectorphp/rector/issues/9563 */ -final class ArgNotAcceptingClosureNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface +final class CallLikeReflectionNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface { /** * @readonly @@ -43,14 +48,49 @@ public function enterNode(Node $node): ?Node return null; } $args = $node->getArgs(); - if (!array_any($args, static fn(Arg $arg): bool => $arg->value instanceof Array_)) { + if ($args === []) { return null; } $functionLikeReflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($node); + $this->decorateClosureWithVariadicArgs($args, $functionLikeReflection); + $this->decorateArgNotAcceptingClosure($node, $args, $functionLikeReflection); + return null; + } + /** + * @param Arg[] $args + * @param \PHPStan\Reflection\MethodReflection|\PHPStan\Reflection\FunctionReflection|null $functionLikeReflection + */ + private function decorateClosureWithVariadicArgs(array $args, $functionLikeReflection): void + { + foreach ($args as $arg) { + if (!$arg->value instanceof Closure && !$arg->value instanceof ArrowFunction) { + continue; + } + if ($functionLikeReflection instanceof NativeFunctionReflection) { + $parametersAcceptors = ParametersAcceptorSelector::combineAcceptors($functionLikeReflection->getVariants()); + foreach ($parametersAcceptors->getParameters() as $extendedParameterReflection) { + if ($extendedParameterReflection->getType() instanceof CallableType && $extendedParameterReflection->getType()->isVariadic()) { + $arg->value->setAttribute(AttributeKey::HAS_CLOSURE_WITH_VARIADIC_ARGS, \true); + } + } + return; + } + $arg->value->setAttribute(AttributeKey::HAS_CLOSURE_WITH_VARIADIC_ARGS, \true); + } + } + /** + * @param Arg[] $args + * @param \PHPStan\Reflection\MethodReflection|\PHPStan\Reflection\FunctionReflection|null $functionLikeReflection + */ + private function decorateArgNotAcceptingClosure(CallLike $callLike, array $args, $functionLikeReflection): void + { if (!$functionLikeReflection instanceof FunctionReflection && !$functionLikeReflection instanceof MethodReflection) { - return null; + return; + } + if (!array_any($args, static fn(Arg $arg): bool => $arg->value instanceof Array_)) { + return; } - $parameterReflections = ParametersAcceptorSelectorVariantsWrapper::select($functionLikeReflection, $node, ScopeFetcher::fetch($node))->getParameters(); + $parameterReflections = ParametersAcceptorSelectorVariantsWrapper::select($functionLikeReflection, $callLike, ScopeFetcher::fetch($callLike))->getParameters(); $closureObjectType = new ObjectType('Closure'); foreach ($args as $position => $arg) { if (!$arg->value instanceof Array_) { @@ -65,7 +105,6 @@ public function enterNode(Node $node): ?Node } $arg->value->setAttribute(AttributeKey::IS_ARG_NOT_ACCEPTING_CLOSURE, \true); } - return $node; } /** * @param ParameterReflection[] $parameterReflections diff --git a/src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php b/src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php deleted file mode 100644 index 301fc12caf9..00000000000 --- a/src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php +++ /dev/null @@ -1,26 +0,0 @@ -name instanceof Identifier) { - return null; - } - $node->class->setAttribute(AttributeKey::CLASS_CONST_FETCH_NAME, $node->name->toString()); - return null; - } -} diff --git a/src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php b/src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php deleted file mode 100644 index d63db2e5908..00000000000 --- a/src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php +++ /dev/null @@ -1,60 +0,0 @@ -reflectionResolver = $reflectionResolver; - } - public function enterNode(Node $node): ?Node - { - if (!$node instanceof CallLike) { - return null; - } - if ($node->isFirstClassCallable()) { - return null; - } - if ($node->getArgs() === []) { - return null; - } - $methodReflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($node); - foreach ($node->getArgs() as $arg) { - if (!$arg->value instanceof Closure && !$arg->value instanceof ArrowFunction) { - continue; - } - if ($methodReflection instanceof NativeFunctionReflection) { - $parametersAcceptors = ParametersAcceptorSelector::combineAcceptors($methodReflection->getVariants()); - foreach ($parametersAcceptors->getParameters() as $extendedParameterReflection) { - if ($extendedParameterReflection->getType() instanceof CallableType && $extendedParameterReflection->getType()->isVariadic()) { - $arg->value->setAttribute(AttributeKey::HAS_CLOSURE_WITH_VARIADIC_ARGS, \true); - } - } - return null; - } - $arg->value->setAttribute(AttributeKey::HAS_CLOSURE_WITH_VARIADIC_ARGS, \true); - } - return null; - } -} diff --git a/src/PhpParser/NodeVisitor/PropertyOrClassConstDefaultNodeVisitor.php b/src/PhpParser/NodeVisitor/DefaultValueNodeVisitor.php similarity index 63% rename from src/PhpParser/NodeVisitor/PropertyOrClassConstDefaultNodeVisitor.php rename to src/PhpParser/NodeVisitor/DefaultValueNodeVisitor.php index fdfa1743b7d..64d1bbbcbeb 100644 --- a/src/PhpParser/NodeVisitor/PropertyOrClassConstDefaultNodeVisitor.php +++ b/src/PhpParser/NodeVisitor/DefaultValueNodeVisitor.php @@ -5,16 +5,27 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Param; use PhpParser\Node\Stmt\ClassConst; use PhpParser\Node\Stmt\Property; use PhpParser\NodeVisitorAbstract; use Rector\Contract\PhpParser\DecoratingNodeVisitorInterface; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpParser\NodeTraverser\SimpleNodeTraverser; -final class PropertyOrClassConstDefaultNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface +/** + * Marks default-value subtrees of params, properties and class constants, so later rules can tell + * a value node stands in a default position (IS_PARAM_DEFAULT / IS_DEFAULT_PROPERTY_VALUE / IS_CLASS_CONST_VALUE). + */ +final class DefaultValueNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface { public function enterNode(Node $node): ?Node { + if ($node instanceof Param) { + if ($node->default instanceof Expr) { + SimpleNodeTraverser::decorateWithAttributeValue($node->default, AttributeKey::IS_PARAM_DEFAULT, \true); + } + return null; + } if ($node instanceof Property) { foreach ($node->props as $propertyItem) { $default = $propertyItem->default; @@ -23,6 +34,7 @@ public function enterNode(Node $node): ?Node } SimpleNodeTraverser::decorateWithAttributeValue($default, AttributeKey::IS_DEFAULT_PROPERTY_VALUE, \true); } + return null; } if ($node instanceof ClassConst) { foreach ($node->consts as $const) { diff --git a/src/PhpParser/NodeVisitor/GlobalVariableNodeVisitor.php b/src/PhpParser/NodeVisitor/GlobalVariableNodeVisitor.php deleted file mode 100644 index a2e8ae58895..00000000000 --- a/src/PhpParser/NodeVisitor/GlobalVariableNodeVisitor.php +++ /dev/null @@ -1,81 +0,0 @@ -simpleCallableNodeTraverser = $simpleCallableNodeTraverser; - } - public function enterNode(Node $node): ?Node - { - if (!NodeGroup::isStmtAwareNode($node)) { - return null; - } - Assert::propertyExists($node, 'stmts'); - if ($node->stmts === null) { - return null; - } - /** @var string[] $globalVariableNames */ - $globalVariableNames = []; - foreach ($node->stmts as $stmt) { - if (!$stmt instanceof Global_) { - $this->setIsGlobalVarAttribute($stmt, $globalVariableNames); - continue; - } - foreach ($stmt->vars as $variable) { - if ($variable instanceof Variable && !$variable->name instanceof Expr) { - $variable->setAttribute(AttributeKey::IS_GLOBAL_VAR, \true); - /** @var string $variableName */ - $variableName = $variable->name; - $globalVariableNames[] = $variableName; - } - } - } - return null; - } - /** - * @param string[] $globalVariableNames - */ - private function setIsGlobalVarAttribute(Stmt $stmt, array $globalVariableNames): void - { - if ($globalVariableNames === []) { - return; - } - $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmt, static function (Node $subNode) use ($globalVariableNames) { - if ($subNode instanceof Class_) { - return NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN; - } - if (!$subNode instanceof Variable) { - return null; - } - if ($subNode->name instanceof Expr) { - return null; - } - if (!in_array($subNode->name, $globalVariableNames, \true)) { - return null; - } - $subNode->setAttribute(AttributeKey::IS_GLOBAL_VAR, \true); - return $subNode; - }); - } -} diff --git a/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php b/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php new file mode 100644 index 00000000000..22810e5124f --- /dev/null +++ b/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php @@ -0,0 +1,105 @@ +simpleCallableNodeTraverser = $simpleCallableNodeTraverser; + } + public function enterNode(Node $node): ?Node + { + if (!NodeGroup::isStmtAwareNode($node)) { + return null; + } + Assert::propertyExists($node, 'stmts'); + if ($node->stmts === null) { + return null; + } + /** @var string[] $globalVariableNames */ + $globalVariableNames = []; + /** @var string[] $staticVariableNames */ + $staticVariableNames = []; + foreach ($node->stmts as $stmt) { + if ($stmt instanceof Global_) { + foreach ($stmt->vars as $variable) { + if ($variable instanceof Variable && !$variable->name instanceof Expr) { + $variable->setAttribute(AttributeKey::IS_GLOBAL_VAR, \true); + /** @var string $variableName */ + $variableName = $variable->name; + $globalVariableNames[] = $variableName; + } + } + continue; + } + if ($stmt instanceof Static_) { + foreach ($stmt->vars as $staticVar) { + $staticVariableName = $staticVar->var->name; + if (!is_string($staticVariableName)) { + continue; + } + $staticVar->var->setAttribute(AttributeKey::IS_STATIC_VAR, \true); + $staticVariableNames[] = $staticVariableName; + } + continue; + } + $this->decorateScopedVariableUses($stmt, $globalVariableNames, $staticVariableNames); + } + return null; + } + /** + * @param string[] $globalVariableNames + * @param string[] $staticVariableNames + */ + private function decorateScopedVariableUses(Stmt $stmt, array $globalVariableNames, array $staticVariableNames): void + { + if ($globalVariableNames === [] && $staticVariableNames === []) { + return; + } + $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmt, static function (Node $subNode) use ($globalVariableNames, $staticVariableNames) { + if ($subNode instanceof Class_) { + return NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN; + } + if (!$subNode instanceof Variable) { + return null; + } + if ($subNode->name instanceof Expr) { + return null; + } + $isDecorated = \false; + if (in_array($subNode->name, $globalVariableNames, \true)) { + $subNode->setAttribute(AttributeKey::IS_GLOBAL_VAR, \true); + $isDecorated = \true; + } + if (in_array($subNode->name, $staticVariableNames, \true)) { + $subNode->setAttribute(AttributeKey::IS_STATIC_VAR, \true); + $isDecorated = \true; + } + return $isDecorated ? $subNode : null; + }); + } +} diff --git a/src/PhpParser/NodeVisitor/NameNodeVisitor.php b/src/PhpParser/NodeVisitor/NameAndArgNodeVisitor.php similarity index 50% rename from src/PhpParser/NodeVisitor/NameNodeVisitor.php rename to src/PhpParser/NodeVisitor/NameAndArgNodeVisitor.php index db556268b1b..3a8cadd0291 100644 --- a/src/PhpParser/NodeVisitor/NameNodeVisitor.php +++ b/src/PhpParser/NodeVisitor/NameAndArgNodeVisitor.php @@ -4,20 +4,32 @@ namespace Rector\PhpParser\NodeVisitor; use PhpParser\Node; +use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\ConstFetch; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\New_; use PhpParser\Node\Expr\StaticCall; +use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\NodeVisitorAbstract; use Rector\Contract\PhpParser\DecoratingNodeVisitorInterface; use Rector\NodeTypeResolver\Node\AttributeKey; -final class NameNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface +/** + * Marks call/name context attributes on the name or class node, plus the func-call name on its + * arg values, so later rules can tell how a name is used without re-resolving the parent. + */ +final class NameAndArgNodeVisitor extends NodeVisitorAbstract implements DecoratingNodeVisitorInterface { public function enterNode(Node $node): ?Node { if ($node instanceof FuncCall && $node->name instanceof Name) { $node->name->setAttribute(AttributeKey::IS_FUNCCALL_NAME, \true); + if (!$node->isFirstClassCallable()) { + $funcCallName = $node->name->toString(); + foreach ($node->getArgs() as $arg) { + $arg->value->setAttribute(AttributeKey::FROM_FUNC_CALL_NAME, $funcCallName); + } + } return null; } if ($node instanceof ConstFetch) { @@ -28,13 +40,14 @@ public function enterNode(Node $node): ?Node $node->class->setAttribute(AttributeKey::IS_NEW_INSTANCE_NAME, \true); return null; } - if (!$node instanceof StaticCall) { + if ($node instanceof StaticCall && $node->class instanceof Name) { + $node->class->setAttribute(AttributeKey::IS_STATICCALL_CLASS_NAME, \true); return null; } - if (!$node->class instanceof Name) { - return null; + // pass value metadata to class node + if ($node instanceof ClassConstFetch && $node->name instanceof Identifier) { + $node->class->setAttribute(AttributeKey::CLASS_CONST_FETCH_NAME, $node->name->toString()); } - $node->class->setAttribute(AttributeKey::IS_STATICCALL_CLASS_NAME, \true); return null; } } diff --git a/src/PhpParser/NodeVisitor/ParamDefaultNodeVisitor.php b/src/PhpParser/NodeVisitor/ParamDefaultNodeVisitor.php deleted file mode 100644 index 7fd7a909dbd..00000000000 --- a/src/PhpParser/NodeVisitor/ParamDefaultNodeVisitor.php +++ /dev/null @@ -1,26 +0,0 @@ -default instanceof Expr) { - return null; - } - SimpleNodeTraverser::decorateWithAttributeValue($node->default, AttributeKey::IS_PARAM_DEFAULT, \true); - return null; - } -} diff --git a/src/PhpParser/NodeVisitor/StaticVariableNodeVisitor.php b/src/PhpParser/NodeVisitor/StaticVariableNodeVisitor.php deleted file mode 100644 index d5ec5a2f066..00000000000 --- a/src/PhpParser/NodeVisitor/StaticVariableNodeVisitor.php +++ /dev/null @@ -1,81 +0,0 @@ -simpleCallableNodeTraverser = $simpleCallableNodeTraverser; - } - public function enterNode(Node $node): ?Node - { - if (!NodeGroup::isStmtAwareNode($node)) { - return null; - } - Assert::propertyExists($node, 'stmts'); - if ($node->stmts === null) { - return null; - } - /** @var string[] $staticVariableNames */ - $staticVariableNames = []; - foreach ($node->stmts as $stmt) { - if (!$stmt instanceof Static_) { - $this->setIsStaticVarAttribute($stmt, $staticVariableNames); - continue; - } - foreach ($stmt->vars as $staticVar) { - $staticVariableName = $staticVar->var->name; - if (!is_string($staticVariableName)) { - continue; - } - $staticVar->var->setAttribute(AttributeKey::IS_STATIC_VAR, \true); - $staticVariableNames[] = $staticVariableName; - } - } - return null; - } - /** - * @param string[] $staticVariableNames - */ - private function setIsStaticVarAttribute(Stmt $stmt, array $staticVariableNames): void - { - if ($staticVariableNames === []) { - return; - } - $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmt, static function (Node $subNode) use ($staticVariableNames) { - if ($subNode instanceof Class_) { - return NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN; - } - if (!$subNode instanceof Variable) { - return null; - } - if ($subNode->name instanceof Expr) { - return null; - } - if (!in_array($subNode->name, $staticVariableNames, \true)) { - return null; - } - $subNode->setAttribute(AttributeKey::IS_STATIC_VAR, \true); - return $subNode; - }); - } -} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index d0af8fa343e..d7d1b8d7529 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2195,21 +2195,15 @@ 'Rector\\PhpParser\\NodeTransformer' => $baseDir . '/src/PhpParser/NodeTransformer.php', 'Rector\\PhpParser\\NodeTraverser\\RectorNodeTraverser' => $baseDir . '/src/PhpParser/NodeTraverser/RectorNodeTraverser.php', 'Rector\\PhpParser\\NodeTraverser\\SimpleNodeTraverser' => $baseDir . '/src/PhpParser/NodeTraverser/SimpleNodeTraverser.php', - 'Rector\\PhpParser\\NodeVisitor\\ArgNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ArgNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ArgNotAcceptingClosureNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ArgNotAcceptingClosureNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\AssignedToNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ByRefReturnNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ByRefVariableNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ByRefVariableNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ClassConstFetchNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ClosureWithVariadicParametersNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\ByRefNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ByRefNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\CallLikeReflectionNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/CallLikeReflectionNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ContextNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ContextNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\GlobalVariableNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/GlobalVariableNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\NameNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/NameNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ParamDefaultNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/ParamDefaultNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\DefaultValueNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/DefaultValueNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\LocalVariableScopeNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\NameAndArgNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/NameAndArgNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\PhpDocInfoRemovingNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/PhpDocInfoRemovingNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\PhpVersionConditionNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/PhpVersionConditionNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\PropertyOrClassConstDefaultNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/PropertyOrClassConstDefaultNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\StaticVariableNodeVisitor' => $baseDir . '/src/PhpParser/NodeVisitor/StaticVariableNodeVisitor.php', 'Rector\\PhpParser\\Node\\AssignAndBinaryMap' => $baseDir . '/src/PhpParser/Node/AssignAndBinaryMap.php', 'Rector\\PhpParser\\Node\\BetterNodeFinder' => $baseDir . '/src/PhpParser/Node/BetterNodeFinder.php', 'Rector\\PhpParser\\Node\\FileNode' => $baseDir . '/src/PhpParser/Node/FileNode.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index dcd8ff3ce5c..b8b5f68ae09 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2420,21 +2420,15 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\PhpParser\\NodeTransformer' => __DIR__ . '/../..' . '/src/PhpParser/NodeTransformer.php', 'Rector\\PhpParser\\NodeTraverser\\RectorNodeTraverser' => __DIR__ . '/../..' . '/src/PhpParser/NodeTraverser/RectorNodeTraverser.php', 'Rector\\PhpParser\\NodeTraverser\\SimpleNodeTraverser' => __DIR__ . '/../..' . '/src/PhpParser/NodeTraverser/SimpleNodeTraverser.php', - 'Rector\\PhpParser\\NodeVisitor\\ArgNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ArgNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ArgNotAcceptingClosureNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ArgNotAcceptingClosureNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\AssignedToNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ByRefReturnNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ByRefReturnNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ByRefVariableNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ByRefVariableNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ClassConstFetchNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ClassConstFetchNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ClosureWithVariadicParametersNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ClosureWithVariadicParametersNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\ByRefNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ByRefNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\CallLikeReflectionNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/CallLikeReflectionNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\ContextNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ContextNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\GlobalVariableNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/GlobalVariableNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\NameNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/NameNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\ParamDefaultNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/ParamDefaultNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\DefaultValueNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/DefaultValueNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\LocalVariableScopeNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php', + 'Rector\\PhpParser\\NodeVisitor\\NameAndArgNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/NameAndArgNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\PhpDocInfoRemovingNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/PhpDocInfoRemovingNodeVisitor.php', 'Rector\\PhpParser\\NodeVisitor\\PhpVersionConditionNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/PhpVersionConditionNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\PropertyOrClassConstDefaultNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/PropertyOrClassConstDefaultNodeVisitor.php', - 'Rector\\PhpParser\\NodeVisitor\\StaticVariableNodeVisitor' => __DIR__ . '/../..' . '/src/PhpParser/NodeVisitor/StaticVariableNodeVisitor.php', 'Rector\\PhpParser\\Node\\AssignAndBinaryMap' => __DIR__ . '/../..' . '/src/PhpParser/Node/AssignAndBinaryMap.php', 'Rector\\PhpParser\\Node\\BetterNodeFinder' => __DIR__ . '/../..' . '/src/PhpParser/Node/BetterNodeFinder.php', 'Rector\\PhpParser\\Node\\FileNode' => __DIR__ . '/../..' . '/src/PhpParser/Node/FileNode.php', From d4783489136abbb15619f369b94444bb3b16748c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 25 Aug 2026 18:44:43 +0000 Subject: [PATCH 040/169] Updated Rector to commit a1d9964c8bc3474081a57848d0abfefd87027aa9 https://github.com/rectorphp/rector-src/commit/a1d9964c8bc3474081a57848d0abfefd87027aa9 [BetterPhpDocParser] inject phpdoc node decorators explicitly to keep required order (#8379) --- src/Application/VersionResolver.php | 4 ++-- .../ArrayItemClassNameDecorator.php | 2 +- .../ConstExprClassNameDecorator.php | 2 +- .../DoctrineAnnotationDecorator.php | 10 +++++---- .../PhpDocTagGenericUsesDecorator.php | 2 +- .../PhpDocParser/BetterPhpDocParser.php | 21 ++++++++++++------- .../LazyContainerFactory.php | 10 --------- .../PhpNestedAttributeGroupFactory.php | 2 +- vendor/composer/autoload_classmap.php | 8 +++---- vendor/composer/autoload_static.php | 8 +++---- 10 files changed, 33 insertions(+), 36 deletions(-) rename src/BetterPhpDocParser/{PhpDocParser => NodeDecorator}/ArrayItemClassNameDecorator.php (97%) rename src/BetterPhpDocParser/{PhpDocParser => NodeDecorator}/ConstExprClassNameDecorator.php (97%) rename src/BetterPhpDocParser/{PhpDocParser => NodeDecorator}/DoctrineAnnotationDecorator.php (97%) rename src/BetterPhpDocParser/{PhpDocParser => NodeDecorator}/PhpDocTagGenericUsesDecorator.php (98%) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f9ddb185a99..94e813e80a2 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 = '2445b7c06d717375154d81eb953992a7ef0ede01'; + public const PACKAGE_VERSION = 'a1d9964c8bc3474081a57848d0abfefd87027aa9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 20:38:26'; + public const RELEASE_DATE = '2026-08-25 20:42:20'; /** * @var int */ diff --git a/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php b/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php similarity index 97% rename from src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php rename to src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php index 04a13e5b538..a630b5e74a7 100644 --- a/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php +++ b/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php @@ -1,7 +1,7 @@ classAnnotationMatcher = $classAnnotationMatcher; $this->staticDoctrineAnnotationParser = $staticDoctrineAnnotationParser; diff --git a/src/BetterPhpDocParser/PhpDocParser/PhpDocTagGenericUsesDecorator.php b/src/BetterPhpDocParser/NodeDecorator/PhpDocTagGenericUsesDecorator.php similarity index 98% rename from src/BetterPhpDocParser/PhpDocParser/PhpDocTagGenericUsesDecorator.php rename to src/BetterPhpDocParser/NodeDecorator/PhpDocTagGenericUsesDecorator.php index 7d3b6fffe3f..7a48fafae3e 100644 --- a/src/BetterPhpDocParser/PhpDocParser/PhpDocTagGenericUsesDecorator.php +++ b/src/BetterPhpDocParser/NodeDecorator/PhpDocTagGenericUsesDecorator.php @@ -1,7 +1,7 @@ \r\n|\n){2,}#'; /** - * @param PhpDocNodeDecoratorInterface[] $phpDocNodeDecorators + * @var PhpDocNodeDecoratorInterface[] + * @readonly */ - public function __construct(ParserConfig $parserConfig, TypeParser $typeParser, ConstExprParser $constExprParser, TokenIteratorFactory $tokenIteratorFactory, array $phpDocNodeDecorators, PrivatesAccessor $privatesAccessor) + private array $phpDocNodeDecorators; + public function __construct(ParserConfig $parserConfig, TypeParser $typeParser, ConstExprParser $constExprParser, TokenIteratorFactory $tokenIteratorFactory, ConstExprClassNameDecorator $constExprClassNameDecorator, DoctrineAnnotationDecorator $doctrineAnnotationDecorator, ArrayItemClassNameDecorator $arrayItemClassNameDecorator, PhpDocTagGenericUsesDecorator $phpDocTagGenericUsesDecorator, PrivatesAccessor $privatesAccessor) { $this->tokenIteratorFactory = $tokenIteratorFactory; - $this->phpDocNodeDecorators = $phpDocNodeDecorators; $this->privatesAccessor = $privatesAccessor; + // The decorator order below is significant; keep it as is. DoctrineAnnotationDecorator must + // run before ArrayItemClassNameDecorator, which resolves class names inside the array items the + // former produces. A wrong order silently drops annotation class usages and strips their imports. + // They are injected explicitly, not autodiscovered, so the order stays under our control. + $this->phpDocNodeDecorators = [$constExprClassNameDecorator, $doctrineAnnotationDecorator, $arrayItemClassNameDecorator, $phpDocTagGenericUsesDecorator]; parent::__construct( // ParserConfig $parserConfig, diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index f0936c012b5..384d0d2a490 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -18,16 +18,11 @@ use Rector\Application\Provider\CurrentFileProvider; use Rector\BetterPhpDocParser\Comment\CommentsMerger; use Rector\BetterPhpDocParser\Contract\BasePhpDocNodeVisitorInterface; -use Rector\BetterPhpDocParser\Contract\PhpDocParser\PhpDocNodeDecoratorInterface; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\ArrayTypePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\CallableTypePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\IntersectionTypeNodePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\TemplatePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\UnionTypeNodePhpDocNodeVisitor; -use Rector\BetterPhpDocParser\PhpDocParser\ArrayItemClassNameDecorator; -use Rector\BetterPhpDocParser\PhpDocParser\ConstExprClassNameDecorator; -use Rector\BetterPhpDocParser\PhpDocParser\DoctrineAnnotationDecorator; -use Rector\BetterPhpDocParser\PhpDocParser\PhpDocTagGenericUsesDecorator; use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser; use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\ArrayParser; use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\PlainValueParser; @@ -88,10 +83,6 @@ final class LazyContainerFactory * @var array> */ private const DECORATING_NODE_VISITOR_CLASSES = [CallLikeReflectionNodeVisitor::class, PhpVersionConditionNodeVisitor::class, AssignedToNodeVisitor::class, ByRefNodeVisitor::class, ContextNodeVisitor::class, LocalVariableScopeNodeVisitor::class, NameAndArgNodeVisitor::class, DefaultValueNodeVisitor::class]; - /** - * @var array> - */ - private const PHP_DOC_NODE_DECORATOR_CLASSES = [ConstExprClassNameDecorator::class, DoctrineAnnotationDecorator::class, ArrayItemClassNameDecorator::class, PhpDocTagGenericUsesDecorator::class]; /** * @var array */ @@ -189,7 +180,6 @@ private function registerRectorAutowiring(RectorConfig $rectorConfig): void $rector->autowire($rectorConfig->get(NodeNameResolver::class), $rectorConfig->get(NodeTypeResolver::class), $rectorConfig->get(SimpleCallableNodeTraverser::class), $rectorConfig->get(NodeFactory::class), $rectorConfig->get(Skipper::class), $rectorConfig->get(NodeComparator::class), $rectorConfig->get(CurrentFileProvider::class), $rectorConfig->get(CreatedByRuleDecorator::class), $rectorConfig->get(ChangedNodeScopeRefresher::class), $rectorConfig->get(CommentsMerger::class)); }); $rectorConfig->autodiscover(__DIR__ . '/../StaticTypeMapper/PhpParser'); - $this->registerTagged($rectorConfig, self::PHP_DOC_NODE_DECORATOR_CLASSES, PhpDocNodeDecoratorInterface::class); $this->registerTagged($rectorConfig, self::BASE_PHP_DOC_NODE_VISITORS, BasePhpDocNodeVisitorInterface::class); } private function registerTaggedServices(RectorConfig $rectorConfig): void diff --git a/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php b/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php index 416976f35a5..1e5e6209a5c 100644 --- a/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php +++ b/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php @@ -13,10 +13,10 @@ use PhpParser\Node\Stmt\Nop; use PhpParser\Node\Stmt\Use_; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; +use Rector\BetterPhpDocParser\NodeDecorator\DoctrineAnnotationDecorator; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\TokenIteratorFactory; -use Rector\BetterPhpDocParser\PhpDocParser\DoctrineAnnotationDecorator; use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser; use Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\CurlyListNode; use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey; diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index d7d1b8d7529..b8230b75d02 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -958,6 +958,10 @@ 'Rector\\BetterPhpDocParser\\Contract\\PhpDocParser\\PhpDocNodeDecoratorInterface' => $baseDir . '/src/BetterPhpDocParser/Contract/PhpDocParser/PhpDocNodeDecoratorInterface.php', 'Rector\\BetterPhpDocParser\\DataProvider\\CurrentTokenIteratorProvider' => $baseDir . '/src/BetterPhpDocParser/DataProvider/CurrentTokenIteratorProvider.php', 'Rector\\BetterPhpDocParser\\Guard\\NewPhpDocFromPHPStanTypeGuard' => $baseDir . '/src/BetterPhpDocParser/Guard/NewPhpDocFromPHPStanTypeGuard.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\ArrayItemClassNameDecorator' => $baseDir . '/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\ConstExprClassNameDecorator' => $baseDir . '/src/BetterPhpDocParser/NodeDecorator/ConstExprClassNameDecorator.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\DoctrineAnnotationDecorator' => $baseDir . '/src/BetterPhpDocParser/NodeDecorator/DoctrineAnnotationDecorator.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\PhpDocTagGenericUsesDecorator' => $baseDir . '/src/BetterPhpDocParser/NodeDecorator/PhpDocTagGenericUsesDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocInfo\\PhpDocInfo' => $baseDir . '/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php', 'Rector\\BetterPhpDocParser\\PhpDocInfo\\PhpDocInfoFactory' => $baseDir . '/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfoFactory.php', 'Rector\\BetterPhpDocParser\\PhpDocInfo\\TokenIteratorFactory' => $baseDir . '/src/BetterPhpDocParser/PhpDocInfo/TokenIteratorFactory.php', @@ -972,12 +976,8 @@ 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\IntersectionTypeNodePhpDocNodeVisitor' => $baseDir . '/src/BetterPhpDocParser/PhpDocNodeVisitor/IntersectionTypeNodePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\TemplatePhpDocNodeVisitor' => $baseDir . '/src/BetterPhpDocParser/PhpDocNodeVisitor/TemplatePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\UnionTypeNodePhpDocNodeVisitor' => $baseDir . '/src/BetterPhpDocParser/PhpDocNodeVisitor/UnionTypeNodePhpDocNodeVisitor.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\ArrayItemClassNameDecorator' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\BetterPhpDocParser' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\ClassAnnotationMatcher' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\ConstExprClassNameDecorator' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/ConstExprClassNameDecorator.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\DoctrineAnnotationDecorator' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\PhpDocTagGenericUsesDecorator' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/PhpDocTagGenericUsesDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\StaticDoctrineAnnotationParser' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\StaticDoctrineAnnotationParser\\ArrayParser' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/ArrayParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\StaticDoctrineAnnotationParser\\PlainValueParser' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index b8b5f68ae09..86c8fada810 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1183,6 +1183,10 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\BetterPhpDocParser\\Contract\\PhpDocParser\\PhpDocNodeDecoratorInterface' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/Contract/PhpDocParser/PhpDocNodeDecoratorInterface.php', 'Rector\\BetterPhpDocParser\\DataProvider\\CurrentTokenIteratorProvider' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/DataProvider/CurrentTokenIteratorProvider.php', 'Rector\\BetterPhpDocParser\\Guard\\NewPhpDocFromPHPStanTypeGuard' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/Guard/NewPhpDocFromPHPStanTypeGuard.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\ArrayItemClassNameDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\ConstExprClassNameDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/NodeDecorator/ConstExprClassNameDecorator.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\DoctrineAnnotationDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/NodeDecorator/DoctrineAnnotationDecorator.php', + 'Rector\\BetterPhpDocParser\\NodeDecorator\\PhpDocTagGenericUsesDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/NodeDecorator/PhpDocTagGenericUsesDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocInfo\\PhpDocInfo' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php', 'Rector\\BetterPhpDocParser\\PhpDocInfo\\PhpDocInfoFactory' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfoFactory.php', 'Rector\\BetterPhpDocParser\\PhpDocInfo\\TokenIteratorFactory' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocInfo/TokenIteratorFactory.php', @@ -1197,12 +1201,8 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\IntersectionTypeNodePhpDocNodeVisitor' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocNodeVisitor/IntersectionTypeNodePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\TemplatePhpDocNodeVisitor' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocNodeVisitor/TemplatePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\UnionTypeNodePhpDocNodeVisitor' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocNodeVisitor/UnionTypeNodePhpDocNodeVisitor.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\ArrayItemClassNameDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\BetterPhpDocParser' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\ClassAnnotationMatcher' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\ConstExprClassNameDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/ConstExprClassNameDecorator.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\DoctrineAnnotationDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php', - 'Rector\\BetterPhpDocParser\\PhpDocParser\\PhpDocTagGenericUsesDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/PhpDocTagGenericUsesDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\StaticDoctrineAnnotationParser' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\StaticDoctrineAnnotationParser\\ArrayParser' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/ArrayParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\StaticDoctrineAnnotationParser\\PlainValueParser' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php', From 57ae283c0fbfd3719daca4e41c0e85cc05005555 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 07:53:17 +0000 Subject: [PATCH 041/169] Updated Rector to commit 22353e27b3db321a03c66b55d233ec413c4820e9 https://github.com/rectorphp/rector-src/commit/22353e27b3db321a03c66b55d233ec413c4820e9 [TypeDeclarationDocblocks] Skip contradicting @param array when local call type conflicts with default value (#8381) --- .../NodeDocblockTypeDecorator.php | 3 ++- .../ClassMethodArrayDocblockParamFromLocalCallsRector.php | 8 ++++++++ src/Application/VersionResolver.php | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php b/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php index 65667bed3cd..163ce7a055f 100644 --- a/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php +++ b/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php @@ -127,6 +127,7 @@ private function isArrayMixed(Type $type): bool if (!$type->getItemType() instanceof MixedType) { return \false; } - return $type->getKeyType() instanceof IntegerType; + // both plain "mixed[]" (integer key) and a fully mixed-keyed array carry no useful value + return $type->getKeyType() instanceof IntegerType || $type->getKeyType() instanceof MixedType; } } diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php index 6eafb32aa37..b640f37864c 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php @@ -4,6 +4,7 @@ namespace Rector\TypeDeclarationDocblocks\Rector\Class_; use PhpParser\Node; +use PhpParser\Node\Expr; use PhpParser\Node\Param; use PhpParser\Node\Stmt\Class_; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; @@ -130,6 +131,13 @@ public function refactor(Node $node): ?Node } // in case of array type declaration, null cannot be passed or is already casted $resolvedParameterType = TypeCombinator::removeNull($resolvedParameterType); + // the param default value must always be accepted; a locally inferred, flow-narrowed type such as + // "non-empty-array" would otherwise contradict an "= []" default - unite with the default type so + // the resulting @param never conflicts with the method signature + if ($param->default instanceof Expr) { + $defaultType = $this->nodeTypeResolver->getType($param->default); + $resolvedParameterType = TypeCombinator::union($resolvedParameterType, $defaultType); + } $hasClassMethodChanged = $this->nodeDocblockTypeDecorator->decorateGenericIterableParamType($resolvedParameterType, $classMethodPhpDocInfo, $classMethod, $param, $parameterName); if ($hasClassMethodChanged) { $hasChanged = \true; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 94e813e80a2..95cd721ffa0 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 = 'a1d9964c8bc3474081a57848d0abfefd87027aa9'; + public const PACKAGE_VERSION = '22353e27b3db321a03c66b55d233ec413c4820e9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-25 20:42:20'; + public const RELEASE_DATE = '2026-08-26 09:50:36'; /** * @var int */ From 578c86307c328ea59c742e90e762c0643fe82670 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 09:05:43 +0000 Subject: [PATCH 042/169] Updated Rector to commit 22353e27b3db321a03c66b55d233ec413c4820e9 --- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/composer/installed.json | 8 +- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../config/sets/symfony/composer-based.php | 7 +- ...ebLinkStringRelationsToConstantsRector.php | 97 +++++++++++++++++++ 7 files changed, 108 insertions(+), 10 deletions(-) create mode 100644 vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index b8230b75d02..b45626aa022 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2477,6 +2477,7 @@ 'Rector\\Symfony\\Symfony43\\Rector\\StmtsAwareInterface\\TwigBundleFilesystemLoaderToTwigRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony43/Rector/StmtsAwareInterface/TwigBundleFilesystemLoaderToTwigRector.php', 'Rector\\Symfony\\Symfony44\\Rector\\ClassMethod\\ConsoleExecuteReturnIntRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php', 'Rector\\Symfony\\Symfony44\\Rector\\MethodCall\\AuthorizationCheckerIsGrantedExtractorRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/AuthorizationCheckerIsGrantedExtractorRector.php', + 'Rector\\Symfony\\Symfony44\\Rector\\MethodCall\\WebLinkStringRelationsToConstantsRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php', 'Rector\\Symfony\\Symfony51\\Rector\\ClassMethod\\CommandConstantReturnCodeRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony51/Rector/ClassMethod/CommandConstantReturnCodeRector.php', 'Rector\\Symfony\\Symfony51\\Rector\\ClassMethod\\RouteCollectionBuilderToRoutingConfiguratorRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony51/Rector/ClassMethod/RouteCollectionBuilderToRoutingConfiguratorRector.php', 'Rector\\Symfony\\Symfony51\\Rector\\Class_\\LogoutHandlerToLogoutEventSubscriberRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony51/Rector/Class_/LogoutHandlerToLogoutEventSubscriberRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 86c8fada810..11d1b614e12 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2702,6 +2702,7 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\Symfony\\Symfony43\\Rector\\StmtsAwareInterface\\TwigBundleFilesystemLoaderToTwigRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony43/Rector/StmtsAwareInterface/TwigBundleFilesystemLoaderToTwigRector.php', 'Rector\\Symfony\\Symfony44\\Rector\\ClassMethod\\ConsoleExecuteReturnIntRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php', 'Rector\\Symfony\\Symfony44\\Rector\\MethodCall\\AuthorizationCheckerIsGrantedExtractorRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/AuthorizationCheckerIsGrantedExtractorRector.php', + 'Rector\\Symfony\\Symfony44\\Rector\\MethodCall\\WebLinkStringRelationsToConstantsRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php', 'Rector\\Symfony\\Symfony51\\Rector\\ClassMethod\\CommandConstantReturnCodeRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony51/Rector/ClassMethod/CommandConstantReturnCodeRector.php', 'Rector\\Symfony\\Symfony51\\Rector\\ClassMethod\\RouteCollectionBuilderToRoutingConfiguratorRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony51/Rector/ClassMethod/RouteCollectionBuilderToRoutingConfiguratorRector.php', 'Rector\\Symfony\\Symfony51\\Rector\\Class_\\LogoutHandlerToLogoutEventSubscriberRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony51/Rector/Class_/LogoutHandlerToLogoutEventSubscriberRector.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 37467b31172..fe23ae584fe 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "dc8927af746ade4d703916d3f3a6312c06728945" + "reference": "556739f78edf8e312530e3b0cbd19619c1d9f91e" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/dc8927af746ade4d703916d3f3a6312c06728945", - "reference": "dc8927af746ade4d703916d3f3a6312c06728945", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/556739f78edf8e312530e3b0cbd19619c1d9f91e", + "reference": "556739f78edf8e312530e3b0cbd19619c1d9f91e", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-25T15:46:34+00:00", + "time": "2026-08-26T09:02:27+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 0158d5a888d..5a91af13e24 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => 'e2d2cfb4ae526362d072a733daf25411673d6139', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dc8927af746ade4d703916d3f3a6312c06728945', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => 'e2d2cfb4ae526362d072a733daf25411673d6139', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '556739f78edf8e312530e3b0cbd19619c1d9f91e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 80fd03fa4a4..5f796e647a2 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e2d2cfb'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main dc8927a')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e2d2cfb'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 556739f')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php index 70f64110009..73b6f04456b 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php @@ -78,6 +78,7 @@ use Rector\Symfony\Symfony43\Rector\StmtsAwareInterface\TwigBundleFilesystemLoaderToTwigRector; use Rector\Symfony\Symfony44\Rector\ClassMethod\ConsoleExecuteReturnIntRector; use Rector\Symfony\Symfony44\Rector\MethodCall\AuthorizationCheckerIsGrantedExtractorRector; +use Rector\Symfony\Symfony44\Rector\MethodCall\WebLinkStringRelationsToConstantsRector; use Rector\Symfony\Symfony51\Rector\Class_\LogoutHandlerToLogoutEventSubscriberRector; use Rector\Symfony\Symfony51\Rector\Class_\LogoutSuccessHandlerToLogoutEventSubscriberRector; use Rector\Symfony\Symfony51\Rector\ClassMethod\CommandConstantReturnCodeRector; @@ -197,6 +198,8 @@ ConsoleExecuteReturnIntRector::class, // symfony/security-core 4.4 AuthorizationCheckerIsGrantedExtractorRector::class, + // symfony/web-link 4.4 + WebLinkStringRelationsToConstantsRector::class, // symfony/console 5.1 CommandConstantReturnCodeRector::class, // symfony/framework-bundle 5.1 @@ -525,8 +528,6 @@ ], 'symfony/http-kernel', '>=4.4'); // symfony/templating 4.4 $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameClassRector::class, ['Symfony\Component\Templating\EngineInterface' => 'Twig\Environment'], 'symfony/templating', '>=4.4'); - // symfony/web-link 4.4 - $rectorConfig->ruleWithConfigurationComposerVersionBound(ReplaceArgumentDefaultValueRector::class, [new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'alternate', 'Symfony\Component\WebLink\Link::REL_ALTERNATE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'author', 'Symfony\Component\WebLink\Link::REL_AUTHOR'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'help', 'Symfony\Component\WebLink\Link::REL_HELP'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'icon', 'Symfony\Component\WebLink\Link::REL_ICON'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'license', 'Symfony\Component\WebLink\Link::REL_LICENSE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'search', 'Symfony\Component\WebLink\Link::REL_SEARCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'stylesheet', 'Symfony\Component\WebLink\Link::REL_STYLESHEET'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'next', 'Symfony\Component\WebLink\Link::REL_NEXT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'prev', 'Symfony\Component\WebLink\Link::REL_PREV'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'preload', 'Symfony\Component\WebLink\Link::REL_PRELOAD'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'dns-prefetch', 'Symfony\Component\WebLink\Link::REL_DNS_PREFETCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'preconnect', 'Symfony\Component\WebLink\Link::REL_PRECONNECT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'prefetch', 'Symfony\Component\WebLink\Link::REL_PREFETCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'prerender', 'Symfony\Component\WebLink\Link::REL_PRERENDER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'mercure', 'Symfony\Component\WebLink\Link::REL_MERCURE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'alternate', 'Symfony\Component\WebLink\Link::REL_ALTERNATE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'author', 'Symfony\Component\WebLink\Link::REL_AUTHOR'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'help', 'Symfony\Component\WebLink\Link::REL_HELP'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'icon', 'Symfony\Component\WebLink\Link::REL_ICON'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'license', 'Symfony\Component\WebLink\Link::REL_LICENSE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'search', 'Symfony\Component\WebLink\Link::REL_SEARCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'stylesheet', 'Symfony\Component\WebLink\Link::REL_STYLESHEET'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'next', 'Symfony\Component\WebLink\Link::REL_NEXT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'prev', 'Symfony\Component\WebLink\Link::REL_PREV'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'preload', 'Symfony\Component\WebLink\Link::REL_PRELOAD'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'dns-prefetch', 'Symfony\Component\WebLink\Link::REL_DNS_PREFETCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'preconnect', 'Symfony\Component\WebLink\Link::REL_PRECONNECT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'prefetch', 'Symfony\Component\WebLink\Link::REL_PREFETCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'prerender', 'Symfony\Component\WebLink\Link::REL_PRERENDER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withRel', 0, 'mercure', 'Symfony\Component\WebLink\Link::REL_MERCURE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'alternate', 'Symfony\Component\WebLink\Link::REL_ALTERNATE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'author', 'Symfony\Component\WebLink\Link::REL_AUTHOR'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'help', 'Symfony\Component\WebLink\Link::REL_HELP'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'icon', 'Symfony\Component\WebLink\Link::REL_ICON'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'license', 'Symfony\Component\WebLink\Link::REL_LICENSE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'search', 'Symfony\Component\WebLink\Link::REL_SEARCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'stylesheet', 'Symfony\Component\WebLink\Link::REL_STYLESHEET'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'next', 'Symfony\Component\WebLink\Link::REL_NEXT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'prev', 'Symfony\Component\WebLink\Link::REL_PREV'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'preload', 'Symfony\Component\WebLink\Link::REL_PRELOAD'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'dns-prefetch', 'Symfony\Component\WebLink\Link::REL_DNS_PREFETCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'preconnect', 'Symfony\Component\WebLink\Link::REL_PRECONNECT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'prefetch', 'Symfony\Component\WebLink\Link::REL_PREFETCH'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'prerender', 'Symfony\Component\WebLink\Link::REL_PRERENDER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', 'withoutRel', 0, 'mercure', 'Symfony\Component\WebLink\Link::REL_MERCURE')], 'symfony/web-link', '>=4.4'); // symfony/console 5.0 $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameMethodRector::class, [new MethodCallRename('Symfony\Component\Console\Application', 'renderException', 'renderThrowable'), new MethodCallRename('Symfony\Component\Console\Application', 'doRenderException', 'doRenderThrowable')], 'symfony/console', '>=5.0'); // symfony/console 5.0 @@ -859,8 +860,6 @@ 'Symfony\Component\Messenger\Transport\InMemoryTransport' => 'Symfony\Component\Messenger\Transport\InMemory\InMemoryTransport', 'Symfony\Component\Messenger\Transport\InMemoryTransportFactory' => 'Symfony\Component\Messenger\Transport\InMemory\InMemoryTransportFactory', ], 'symfony/messenger', '>=6.3'); - // symfony/web-link 6.3 - $rectorConfig->ruleWithConfigurationComposerVersionBound(ReplaceArgumentDefaultValueRector::class, [new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'about', 'Symfony\Component\WebLink\Link::REL_ABOUT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'acl', 'Symfony\Component\WebLink\Link::REL_ACL'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'amphtml', 'Symfony\Component\WebLink\Link::REL_AMPHTML'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'appendix', 'Symfony\Component\WebLink\Link::REL_APPENDIX'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'apple-touch-icon', 'Symfony\Component\WebLink\Link::REL_APPLE_TOUCH_ICON'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'apple-touch-startup-image', 'Symfony\Component\WebLink\Link::REL_APPLE_TOUCH_STARTUP_IMAGE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'archives', 'Symfony\Component\WebLink\Link::REL_ARCHIVES'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'blocked-by', 'Symfony\Component\WebLink\Link::REL_BLOCKED_BY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'bookmark', 'Symfony\Component\WebLink\Link::REL_BOOKMARK'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'canonical', 'Symfony\Component\WebLink\Link::REL_CANONICAL'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'chapter', 'Symfony\Component\WebLink\Link::REL_CHAPTER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'cite-as', 'Symfony\Component\WebLink\Link::REL_CITE_AS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'collection', 'Symfony\Component\WebLink\Link::REL_COLLECTION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'contents', 'Symfony\Component\WebLink\Link::REL_CONTENTS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'convertedfrom', 'Symfony\Component\WebLink\Link::REL_CONVERTEDFROM'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'copyright', 'Symfony\Component\WebLink\Link::REL_COPYRIGHT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'create-form', 'Symfony\Component\WebLink\Link::REL_CREATE_FORM'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'current', 'Symfony\Component\WebLink\Link::REL_CURRENT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'describedby', 'Symfony\Component\WebLink\Link::REL_DESCRIBEDBY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'describes', 'Symfony\Component\WebLink\Link::REL_DESCRIBES'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'disclosure', 'Symfony\Component\WebLink\Link::REL_DISCLOSURE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'duplicate', 'Symfony\Component\WebLink\Link::REL_DUPLICATE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'edit', 'Symfony\Component\WebLink\Link::REL_EDIT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'edit-form', 'Symfony\Component\WebLink\Link::REL_EDIT_FORM'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'edit-media', 'Symfony\Component\WebLink\Link::REL_EDIT_MEDIA'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'enclosure', 'Symfony\Component\WebLink\Link::REL_ENCLOSURE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'external', 'Symfony\Component\WebLink\Link::REL_EXTERNAL'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'first', 'Symfony\Component\WebLink\Link::REL_FIRST'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'glossary', 'Symfony\Component\WebLink\Link::REL_GLOSSARY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'hosts', 'Symfony\Component\WebLink\Link::REL_HOSTS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'hub', 'Symfony\Component\WebLink\Link::REL_HUB'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'index', 'Symfony\Component\WebLink\Link::REL_INDEX'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalafter', 'Symfony\Component\WebLink\Link::REL_INTERVALAFTER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalbefore', 'Symfony\Component\WebLink\Link::REL_INTERVALBEFORE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalcontains', 'Symfony\Component\WebLink\Link::REL_INTERVALCONTAINS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervaldisjoint', 'Symfony\Component\WebLink\Link::REL_INTERVALDISJOINT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalduring', 'Symfony\Component\WebLink\Link::REL_INTERVALDURING'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalequals', 'Symfony\Component\WebLink\Link::REL_INTERVALEQUALS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalfinishedby', 'Symfony\Component\WebLink\Link::REL_INTERVALFINISHEDBY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalfinishes', 'Symfony\Component\WebLink\Link::REL_INTERVALFINISHES'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalin', 'Symfony\Component\WebLink\Link::REL_INTERVALIN'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalmeets', 'Symfony\Component\WebLink\Link::REL_INTERVALMEETS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalmetby', 'Symfony\Component\WebLink\Link::REL_INTERVALMETBY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervaloverlappedby', 'Symfony\Component\WebLink\Link::REL_INTERVALOVERLAPPEDBY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervaloverlaps', 'Symfony\Component\WebLink\Link::REL_INTERVALOVERLAPS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalstartedby', 'Symfony\Component\WebLink\Link::REL_INTERVALSTARTEDBY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'intervalstarts', 'Symfony\Component\WebLink\Link::REL_INTERVALSTARTS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'item', 'Symfony\Component\WebLink\Link::REL_ITEM'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'last', 'Symfony\Component\WebLink\Link::REL_LAST'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'latest-version', 'Symfony\Component\WebLink\Link::REL_LATEST_VERSION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'linkset', 'Symfony\Component\WebLink\Link::REL_LINKSET'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'lrdd', 'Symfony\Component\WebLink\Link::REL_LRDD'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'manifest', 'Symfony\Component\WebLink\Link::REL_MANIFEST'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'mask-icon', 'Symfony\Component\WebLink\Link::REL_MASK_ICON'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'media-feed', 'Symfony\Component\WebLink\Link::REL_MEDIA_FEED'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'memento', 'Symfony\Component\WebLink\Link::REL_MEMENTO'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'micropub', 'Symfony\Component\WebLink\Link::REL_MICROPUB'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'modulepreload', 'Symfony\Component\WebLink\Link::REL_MODULEPRELOAD'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'monitor', 'Symfony\Component\WebLink\Link::REL_MONITOR'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'monitor-group', 'Symfony\Component\WebLink\Link::REL_MONITOR_GROUP'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'next-archive', 'Symfony\Component\WebLink\Link::REL_NEXT_ARCHIVE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'nofollow', 'Symfony\Component\WebLink\Link::REL_NOFOLLOW'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'noopener', 'Symfony\Component\WebLink\Link::REL_NOOPENER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'noreferrer', 'Symfony\Component\WebLink\Link::REL_NOREFERRER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'opener', 'Symfony\Component\WebLink\Link::REL_OPENER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'openid2.local_id', 'Symfony\Component\WebLink\Link::REL_OPENID_2_LOCAL_ID'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'openid2.provider', 'Symfony\Component\WebLink\Link::REL_OPENID_2_PROVIDER'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'original', 'Symfony\Component\WebLink\Link::REL_ORIGINAL'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'p3pv1', 'Symfony\Component\WebLink\Link::REL_P_3_PV_1'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'payment', 'Symfony\Component\WebLink\Link::REL_PAYMENT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'pingback', 'Symfony\Component\WebLink\Link::REL_PINGBACK'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'predecessor-version', 'Symfony\Component\WebLink\Link::REL_PREDECESSOR_VERSION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'preview', 'Symfony\Component\WebLink\Link::REL_PREVIEW'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'previous', 'Symfony\Component\WebLink\Link::REL_PREVIOUS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'prev-archive', 'Symfony\Component\WebLink\Link::REL_PREV_ARCHIVE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'privacy-policy', 'Symfony\Component\WebLink\Link::REL_PRIVACY_POLICY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'profile', 'Symfony\Component\WebLink\Link::REL_PROFILE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'publication', 'Symfony\Component\WebLink\Link::REL_PUBLICATION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'related', 'Symfony\Component\WebLink\Link::REL_RELATED'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'restconf', 'Symfony\Component\WebLink\Link::REL_RESTCONF'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'replies', 'Symfony\Component\WebLink\Link::REL_REPLIES'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'ruleinput', 'Symfony\Component\WebLink\Link::REL_RULEINPUT'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'section', 'Symfony\Component\WebLink\Link::REL_SECTION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'self', 'Symfony\Component\WebLink\Link::REL_SELF'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'service', 'Symfony\Component\WebLink\Link::REL_SERVICE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'service-desc', 'Symfony\Component\WebLink\Link::REL_SERVICE_DESC'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'service-doc', 'Symfony\Component\WebLink\Link::REL_SERVICE_DOC'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'service-meta', 'Symfony\Component\WebLink\Link::REL_SERVICE_META'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'siptrunkingcapability', 'Symfony\Component\WebLink\Link::REL_SIPTRUNKINGCAPABILITY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'sponsored', 'Symfony\Component\WebLink\Link::REL_SPONSORED'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'start', 'Symfony\Component\WebLink\Link::REL_START'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'status', 'Symfony\Component\WebLink\Link::REL_STATUS'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'subsection', 'Symfony\Component\WebLink\Link::REL_SUBSECTION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'successor-version', 'Symfony\Component\WebLink\Link::REL_SUCCESSOR_VERSION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'sunset', 'Symfony\Component\WebLink\Link::REL_SUNSET'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'tag', 'Symfony\Component\WebLink\Link::REL_TAG'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'terms-of-service', 'Symfony\Component\WebLink\Link::REL_TERMS_OF_SERVICE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'timegate', 'Symfony\Component\WebLink\Link::REL_TIMEGATE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'timemap', 'Symfony\Component\WebLink\Link::REL_TIMEMAP'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'type', 'Symfony\Component\WebLink\Link::REL_TYPE'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'ugc', 'Symfony\Component\WebLink\Link::REL_UGC'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'up', 'Symfony\Component\WebLink\Link::REL_UP'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'version-history', 'Symfony\Component\WebLink\Link::REL_VERSION_HISTORY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'via', 'Symfony\Component\WebLink\Link::REL_VIA'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'webmention', 'Symfony\Component\WebLink\Link::REL_WEBMENTION'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'working-copy', 'Symfony\Component\WebLink\Link::REL_WORKING_COPY'), new ReplaceArgumentDefaultValue('Symfony\Component\WebLink\Link', '__construct', 0, 'working-copy-of', 'Symfony\Component\WebLink\Link::REL_WORKING_COPY_OF')], 'symfony/web-link', '>=6.3'); // symfony/error-handler 6.4 $rectorConfig->ruleWithConfigurationComposerVersionBound(RenameClassRector::class, ['Symfony\Component\HttpKernel\Debug\FileLinkFormatter' => 'Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter'], 'symfony/error-handler', '>=6.4'); // symfony/form 6.4 diff --git a/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php new file mode 100644 index 00000000000..ee017480f17 --- /dev/null +++ b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php @@ -0,0 +1,97 @@ + 'REL_OPENID_2_LOCAL_ID', 'openid2.provider' => 'REL_OPENID_2_PROVIDER', 'p3pv1' => 'REL_P_3_PV_1']; + public function __construct(ReflectionProvider $reflectionProvider) + { + $this->reflectionProvider = $reflectionProvider; + } + public function provideComposerPackageConstraint(): ComposerPackageConstraint + { + return new ComposerPackageConstraint('symfony/web-link', '>= 4.4'); + } + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Change string link relations in WebLink to use Link constants', [new CodeSample(<<<'CODE_SAMPLE' +use Symfony\Component\WebLink\Link; + +$link = (new Link('preload', 'https://...'))->withRel('next'); +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use Symfony\Component\WebLink\Link; + +$link = (new Link(Link::REL_PRELOAD, 'https://...'))->withRel(Link::REL_NEXT); +CODE_SAMPLE +)]); + } + public function getNodeTypes(): array + { + return [MethodCall::class, New_::class]; + } + /** + * @param MethodCall|New_ $node + */ + public function refactor(Node $node): ?Node + { + if ($node instanceof MethodCall) { + if (!$this->isObjectType($node->var, new ObjectType('Symfony\Component\WebLink\Link'))) { + return null; + } + if (!$this->isNames($node->name, ['withRel', 'withoutRel'])) { + return null; + } + } elseif ($node instanceof New_) { + if (!$this->isObjectType($node->class, new ObjectType('Symfony\Component\WebLink\Link'))) { + return null; + } + } + $args = $node->getArgs(); + if (!isset($args[0])) { + return null; + } + $valueNode = $args[0]->value; + if (!$valueNode instanceof String_) { + return null; + } + $constFetch = $this->createConstantFetch($valueNode->value); + if (!$constFetch) { + return null; + } + $args[0]->value = $constFetch; + return $node; + } + private function createConstantFetch(string $relation): ?Node + { + $constName = self::EXACT_MAP[$relation] ?? 'REL_' . strtoupper(str_replace('-', '_', $relation)); + if (!$this->reflectionProvider->hasClass('Symfony\Component\WebLink\Link')) { + return null; + } + $classReflection = $this->reflectionProvider->getClass('Symfony\Component\WebLink\Link'); + if (!$classReflection->hasConstant($constName)) { + return null; + } + return $this->nodeFactory->createClassConstFetch('Symfony\Component\WebLink\Link', $constName); + } +} From 420570f2e2ef1ecd748bd7a4a9053921af99d1cb Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 14:02:07 +0000 Subject: [PATCH 043/169] Updated Rector to commit 53a764b165b2e18c221229919d4051a82960245f https://github.com/rectorphp/rector-src/commit/53a764b165b2e18c221229919d4051a82960245f [Naming] Skip valid singular name with "ous" suffix on RenameForeachValueVariableToMatchExprVariableRector (#8382) --- .../ExpectedNameResolver/InflectorSingularResolver.php | 8 +++++--- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php b/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php index 86b6f471c47..42d586e1425 100644 --- a/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php +++ b/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php @@ -79,10 +79,12 @@ private function singularizeCamelParts(string $currentName): string $camelCases = Strings::matchAll($currentName, self::CAMELCASE_REGEX); $resolvedName = ''; foreach ($camelCases as $camelCase) { - if (in_array($camelCase[self::CAMELCASE], ['is', 'has', 'cms', 'this'], \true)) { - $value = $camelCase[self::CAMELCASE]; + $camelCaseValue = (string) $camelCase[self::CAMELCASE]; + // words ending in "ous" are adjectives, not plurals, e.g. "anonymous", "previous" + if (in_array($camelCaseValue, ['is', 'has', 'cms', 'this'], \true) || substr_compare($camelCaseValue, 'ous', -strlen('ous')) === 0) { + $value = $camelCaseValue; } else { - $value = $this->inflector->singularize((string) $camelCase[self::CAMELCASE]); + $value = $this->inflector->singularize($camelCaseValue); } $resolvedName .= $value; } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 95cd721ffa0..cc211aae836 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 = '22353e27b3db321a03c66b55d233ec413c4820e9'; + public const PACKAGE_VERSION = '53a764b165b2e18c221229919d4051a82960245f'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-26 09:50:36'; + public const RELEASE_DATE = '2026-08-26 15:59:16'; /** * @var int */ From 215f7cf9164f9e11e1d822b1ceb41cc7d4f7606e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 17:38:41 +0000 Subject: [PATCH 044/169] Updated Rector to commit 53a764b165b2e18c221229919d4051a82960245f --- vendor/composer/installed.json | 8 ++--- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../AssertTrueFalseToSpecificMethodRector.php | 34 ++++++++++++++++++- 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index fe23ae584fe..94f44d85b35 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "e2d2cfb4ae526362d072a733daf25411673d6139" + "reference": "8a896f714f4062edd1a34aa2ef1dd61d1e146836" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/e2d2cfb4ae526362d072a733daf25411673d6139", - "reference": "e2d2cfb4ae526362d072a733daf25411673d6139", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/8a896f714f4062edd1a34aa2ef1dd61d1e146836", + "reference": "8a896f714f4062edd1a34aa2ef1dd61d1e146836", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-25T15:57:10+00:00", + "time": "2026-08-26T17:29:42+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 5a91af13e24..6ad03b3baee 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => 'e2d2cfb4ae526362d072a733daf25411673d6139', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '556739f78edf8e312530e3b0cbd19619c1d9f91e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '8a896f714f4062edd1a34aa2ef1dd61d1e146836', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '556739f78edf8e312530e3b0cbd19619c1d9f91e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 5f796e647a2..2189fae0980 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e2d2cfb'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 556739f')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 8a896f7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 556739f')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertTrueFalseToSpecificMethodRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertTrueFalseToSpecificMethodRector.php index 4fe49f0b315..6e68517048a 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertTrueFalseToSpecificMethodRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertTrueFalseToSpecificMethodRector.php @@ -34,7 +34,7 @@ final class AssertTrueFalseToSpecificMethodRector extends AbstractRector /** * @var array> */ - private const FUNCTION_NAME_WITH_ASSERT_METHOD_NAMES = ['is_readable' => ['is_readable', 'assertIsReadable', 'assertNotIsReadable'], 'array_key_exists' => ['array_key_exists', 'assertArrayHasKey', 'assertArrayNotHasKey'], 'array_search' => ['array_search', 'assertContains', 'assertNotContains'], 'in_array' => ['in_array', 'assertContains', 'assertNotContains'], 'empty' => ['empty', 'assertEmpty', 'assertNotEmpty'], 'file_exists' => ['file_exists', 'assertFileExists', 'assertFileNotExists'], 'is_dir' => ['is_dir', 'assertDirectoryExists', 'assertDirectoryNotExists'], 'is_infinite' => ['is_infinite', 'assertInfinite', 'assertFinite'], 'is_null' => ['is_null', 'assertNull', 'assertNotNull'], 'is_writable' => ['is_writable', 'assertIsWritable', 'assertNotIsWritable'], 'is_nan' => ['is_nan', 'assertNan', ''], 'is_a' => ['is_a', 'assertInstanceOf', 'assertNotInstanceOf'], 'str_contains' => ['str_contains', 'assertStringContainsString', 'assertStringNotContainsString']]; + private const FUNCTION_NAME_WITH_ASSERT_METHOD_NAMES = ['is_readable' => ['is_readable', 'assertIsReadable', 'assertNotIsReadable'], 'array_key_exists' => ['array_key_exists', 'assertArrayHasKey', 'assertArrayNotHasKey'], 'array_search' => ['array_search', 'assertContains', 'assertNotContains'], 'in_array' => ['in_array', 'assertContains', 'assertNotContains'], 'empty' => ['empty', 'assertEmpty', 'assertNotEmpty'], 'file_exists' => ['file_exists', 'assertFileExists', 'assertFileNotExists'], 'is_dir' => ['is_dir', 'assertDirectoryExists', 'assertDirectoryNotExists'], 'is_infinite' => ['is_infinite', 'assertInfinite', 'assertFinite'], 'is_null' => ['is_null', 'assertNull', 'assertNotNull'], 'is_writable' => ['is_writable', 'assertIsWritable', 'assertNotIsWritable'], 'is_nan' => ['is_nan', 'assertNan', ''], 'is_a' => ['is_a', 'assertInstanceOf', 'assertNotInstanceOf'], 'str_contains' => ['str_contains', 'assertStringContainsString', 'assertStringNotContainsString'], 'is_array' => ['is_array', 'assertIsArray', 'assertIsNotArray'], 'is_bool' => ['is_bool', 'assertIsBool', 'assertIsNotBool'], 'is_callable' => ['is_callable', 'assertIsCallable', 'assertIsNotCallable'], 'is_float' => ['is_float', 'assertIsFloat', 'assertIsNotFloat'], 'is_int' => ['is_int', 'assertIsInt', 'assertIsNotInt'], 'is_iterable' => ['is_iterable', 'assertIsIterable', 'assertIsNotIterable'], 'is_numeric' => ['is_numeric', 'assertIsNumeric', 'assertIsNotNumeric'], 'is_object' => ['is_object', 'assertIsObject', 'assertIsNotObject'], 'is_scalar' => ['is_scalar', 'assertIsScalar', 'assertIsNotScalar'], 'is_string' => ['is_string', 'assertIsString', 'assertIsNotString']]; /** * Some assert methods were renamed in newer PHPUnit versions * @var array @@ -79,6 +79,9 @@ public function refactor(Node $node): ?Node if ($firstArgumentName === null || !array_key_exists($firstArgumentName, self::FUNCTION_NAME_WITH_ASSERT_METHOD_NAMES)) { return null; } + if ($firstArgumentValue instanceof FuncCall && $this->hasUnmovableArgs($firstArgumentValue)) { + return null; + } if ($firstArgumentName === 'is_a') { /** @var FuncCall $firstArgumentValue */ $args = $firstArgumentValue->getArgs(); @@ -91,6 +94,13 @@ public function refactor(Node $node): ?Node return null; } } + // the is_callable() $syntax_only and $callable_name arguments have no counterpart in assertIsCallable() + if ($firstArgumentName === 'is_callable') { + /** @var FuncCall $firstArgumentValue */ + if (count($firstArgumentValue->getArgs()) > 1) { + return null; + } + } [$functionName, $assetMethodName, $notAssertMethodName] = self::FUNCTION_NAME_WITH_ASSERT_METHOD_NAMES[$firstArgumentName]; $functionNameWithAssertMethods = new FunctionNameWithAssertMethods($assetMethodName, $notAssertMethodName); $this->renameMethod($node, $functionNameWithAssertMethods); @@ -104,6 +114,28 @@ private function resolveFirstArgument($firstArgumentValue): ?string { return $firstArgumentValue instanceof Empty_ ? 'empty' : $this->getName($firstArgumentValue); } + /** + * Args are moved up by position, so a named arg only survives when the assert method happens to + * use the same parameter name: is_readable(filename:) fits assertIsReadable(), while + * is_string(value:) does not fit assertIsString(), whose parameter is $actual. Bail out instead + * of tracking a parameter name per mapped function. Spread args cannot be moved up either, + * as their count is unknown. + */ + private function hasUnmovableArgs(FuncCall $funcCall): bool + { + if ($funcCall->isFirstClassCallable()) { + return \true; + } + foreach ($funcCall->getArgs() as $arg) { + if ($arg->name instanceof Identifier) { + return \true; + } + if ($arg->unpack) { + return \true; + } + } + return \false; + } /** * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $node */ From b2adc66ad4bfff6b50636f24cea79e900a5a5d05 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 17:51:54 +0000 Subject: [PATCH 045/169] Updated Rector to commit 53a764b165b2e18c221229919d4051a82960245f --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 94f44d85b35..eedda955654 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "8a896f714f4062edd1a34aa2ef1dd61d1e146836" + "reference": "965c856634711bc2fea07445985f600dd8f8056a" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/8a896f714f4062edd1a34aa2ef1dd61d1e146836", - "reference": "8a896f714f4062edd1a34aa2ef1dd61d1e146836", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/965c856634711bc2fea07445985f600dd8f8056a", + "reference": "965c856634711bc2fea07445985f600dd8f8056a", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-26T17:29:42+00:00", + "time": "2026-08-26T17:47:05+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 6ad03b3baee..f6cb43173c4 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '8a896f714f4062edd1a34aa2ef1dd61d1e146836', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '556739f78edf8e312530e3b0cbd19619c1d9f91e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '965c856634711bc2fea07445985f600dd8f8056a', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '556739f78edf8e312530e3b0cbd19619c1d9f91e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 2189fae0980..1dbca430cc9 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 8a896f7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 556739f')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 965c856'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 556739f')); private function __construct() { } From fd608227b6e557dd5237558812ea8b439e7f285e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 18:00:11 +0000 Subject: [PATCH 046/169] Updated Rector to commit b0924425a745f88b50be43c4af0abb879690bac3 https://github.com/rectorphp/rector-src/commit/b0924425a745f88b50be43c4af0abb879690bac3 [CI] Cron backstop to rebuild scoped rector on missed sibling dispatch (#8383) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index cc211aae836..f8c9adb6779 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 = '53a764b165b2e18c221229919d4051a82960245f'; + public const PACKAGE_VERSION = 'b0924425a745f88b50be43c4af0abb879690bac3'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-26 15:59:16'; + public const RELEASE_DATE = '2026-08-26 19:57:37'; /** * @var int */ From bf687a8ff752a0563c8f3a30fb01d4b5f91c2750 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 18:16:31 +0000 Subject: [PATCH 047/169] Updated Rector to commit c236c3a4da7ea763e69cbed799e5d6401c9c2652 https://github.com/rectorphp/rector-src/commit/c236c3a4da7ea763e69cbed799e5d6401c9c2652 [CI] Bump lock-threads to v6 in target repository lock workflow (#8384) --- .github/workflows/lock.yaml | 2 +- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lock.yaml b/.github/workflows/lock.yaml index 00da1a3e759..d130363e839 100644 --- a/.github/workflows/lock.yaml +++ b/.github/workflows/lock.yaml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@v5 + - uses: dessant/lock-threads@v6 with: github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f8c9adb6779..20bc120ff79 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 = 'b0924425a745f88b50be43c4af0abb879690bac3'; + public const PACKAGE_VERSION = 'c236c3a4da7ea763e69cbed799e5d6401c9c2652'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-26 19:57:37'; + public const RELEASE_DATE = '2026-08-26 20:13:38'; /** * @var int */ From c6e94a209d1b2c6ce6ce4acb55ff5f17c41af532 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 19:42:17 +0000 Subject: [PATCH 048/169] Updated Rector to commit c236c3a4da7ea763e69cbed799e5d6401c9c2652 --- vendor/composer/installed.json | 32 +++++++++---------- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- ...ebLinkStringRelationsToConstantsRector.php | 3 ++ 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index eedda955654..8920d294b49 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "1e596a9b01afed66519c816aa707f21b1b7a82a1" + "reference": "681aadb3976ce680b5909a4f66e4026c56f22f06" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/1e596a9b01afed66519c816aa707f21b1b7a82a1", - "reference": "1e596a9b01afed66519c816aa707f21b1b7a82a1", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/681aadb3976ce680b5909a4f66e4026c56f22f06", + "reference": "681aadb3976ce680b5909a4f66e4026c56f22f06", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-23T10:07:49+00:00", + "time": "2026-08-26T19:40:12+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "b5f9ce1e1f00dac97d8a1ea742aa0ec864718136" + "reference": "10f6785919554577089f3e2acbc1552224679bdd" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/b5f9ce1e1f00dac97d8a1ea742aa0ec864718136", - "reference": "b5f9ce1e1f00dac97d8a1ea742aa0ec864718136", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/10f6785919554577089f3e2acbc1552224679bdd", + "reference": "10f6785919554577089f3e2acbc1552224679bdd", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-23T10:07:59+00:00", + "time": "2026-08-26T19:40:06+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "965c856634711bc2fea07445985f600dd8f8056a" + "reference": "79735b7473bd1c7dc58c87cf41112e3d9665ac91" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/965c856634711bc2fea07445985f600dd8f8056a", - "reference": "965c856634711bc2fea07445985f600dd8f8056a", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/79735b7473bd1c7dc58c87cf41112e3d9665ac91", + "reference": "79735b7473bd1c7dc58c87cf41112e3d9665ac91", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-26T17:47:05+00:00", + "time": "2026-08-26T19:40:16+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "556739f78edf8e312530e3b0cbd19619c1d9f91e" + "reference": "9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/556739f78edf8e312530e3b0cbd19619c1d9f91e", - "reference": "556739f78edf8e312530e3b0cbd19619c1d9f91e", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418", + "reference": "9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-26T09:02:27+00:00", + "time": "2026-08-26T19:40:09+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index f6cb43173c4..6e15b5cd8c1 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1e596a9b01afed66519c816aa707f21b1b7a82a1', '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' => 'b5f9ce1e1f00dac97d8a1ea742aa0ec864718136', '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' => '965c856634711bc2fea07445985f600dd8f8056a', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '556739f78edf8e312530e3b0cbd19619c1d9f91e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '681aadb3976ce680b5909a4f66e4026c56f22f06', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '79735b7473bd1c7dc58c87cf41112e3d9665ac91', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 1dbca430cc9..94f730a3561 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 1e596a9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main b5f9ce1'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 965c856'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 556739f')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 681aadb'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 79735b7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php index ee017480f17..26fc16a2b4b 100644 --- a/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php @@ -23,6 +23,9 @@ final class WebLinkStringRelationsToConstantsRector extends AbstractRector imple * @readonly */ private ReflectionProvider $reflectionProvider; + /** + * @var mixed[] + */ private const EXACT_MAP = ['openid2.local_id' => 'REL_OPENID_2_LOCAL_ID', 'openid2.provider' => 'REL_OPENID_2_PROVIDER', 'p3pv1' => 'REL_P_3_PV_1']; public function __construct(ReflectionProvider $reflectionProvider) { From 4f200eac8daf482651078b0f74e42ab2c2fc6b76 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 26 Aug 2026 20:42:24 +0000 Subject: [PATCH 049/169] Updated Rector to commit a50ce054c4868521b16622e296192d8daf6d6ed6 https://github.com/rectorphp/rector-src/commit/a50ce054c4868521b16622e296192d8daf6d6ed6 [CodeQuality] Add FlipNegatedTernaryInstanceofRector to code quality level (#8385) --- .../FlipNegatedTernaryInstanceofRector.php | 20 ++++++++++++++++++- src/Application/VersionResolver.php | 4 ++-- src/Config/Level/CodeQualityLevel.php | 3 ++- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/rules/Instanceof_/Rector/Ternary/FlipNegatedTernaryInstanceofRector.php b/rules/Instanceof_/Rector/Ternary/FlipNegatedTernaryInstanceofRector.php index 3475d9251e2..32ce6ae5f5e 100644 --- a/rules/Instanceof_/Rector/Ternary/FlipNegatedTernaryInstanceofRector.php +++ b/rules/Instanceof_/Rector/Ternary/FlipNegatedTernaryInstanceofRector.php @@ -18,7 +18,25 @@ final class FlipNegatedTernaryInstanceofRector extends AbstractRector { public function getRuleDefinition(): RuleDefinition { - return new RuleDefinition('Flip negated ternary of `instanceof` to direct use of object', [new CodeSample('echo ! $object instanceof Product ? null : $object->getPrice();', 'echo $object instanceof Product ? $object->getPrice() : null;')]); + return new RuleDefinition('Flip negated ternary of `instanceof` to direct use of object', [new CodeSample(<<<'CODE_SAMPLE' +class SomeClass +{ + public function resolvePrice(object $object): ?int + { + return ! $object instanceof Product ? null : $object->getPrice(); + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + public function resolvePrice(object $object): ?int + { + return $object instanceof Product ? $object->getPrice() : null; + } +} +CODE_SAMPLE +)]); } /** * @return array> diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 20bc120ff79..d344849ca54 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 = 'c236c3a4da7ea763e69cbed799e5d6401c9c2652'; + public const PACKAGE_VERSION = 'a50ce054c4868521b16622e296192d8daf6d6ed6'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-26 20:13:38'; + public const RELEASE_DATE = '2026-08-26 20:39:53'; /** * @var int */ diff --git a/src/Config/Level/CodeQualityLevel.php b/src/Config/Level/CodeQualityLevel.php index 9af9e8bae98..011b9a79f98 100644 --- a/src/Config/Level/CodeQualityLevel.php +++ b/src/Config/Level/CodeQualityLevel.php @@ -75,6 +75,7 @@ use Rector\EarlyReturn\Rector\If_\RemoveAlwaysElseRector; use Rector\EarlyReturn\Rector\Return_\PreparedValueToEarlyReturnRector; use Rector\EarlyReturn\Rector\StmtsAwareInterface\ReturnEarlyIfVariableRector; +use Rector\Instanceof_\Rector\Ternary\FlipNegatedTernaryInstanceofRector; use Rector\Php52\Rector\Property\VarToPublicPropertyRector; use Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector; use Rector\Renaming\Rector\FuncCall\RenameFunctionRector; @@ -98,7 +99,7 @@ final class CodeQualityLevel * * @var array> */ - public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class]; + public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class]; /** * @var array, mixed[]> */ From 6ff008471683591224951526247b7a2b86980ba9 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Aug 2026 09:20:34 +0000 Subject: [PATCH 050/169] Rector 2.6.4 --- src/Application/VersionResolver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index d344849ca54..c85672a75f7 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,7 +19,7 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = 'a50ce054c4868521b16622e296192d8daf6d6ed6'; + public const PACKAGE_VERSION = '2.6.4'; /** * @api * @var string From 573991f1c5dd0a8f89a505ea88cf79a7221a3744 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Aug 2026 09:37:37 +0000 Subject: [PATCH 051/169] Updated Rector to commit ab955a3c2e10dcc358a67f30c9d69f7e286a446a https://github.com/rectorphp/rector-src/commit/ab955a3c2e10dcc358a67f30c9d69f7e286a446a [Console] Fix newline formatting of deprecated skipped rules warning (#8386) --- src/Application/VersionResolver.php | 4 ++-- src/Console/Command/ProcessCommand.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index c85672a75f7..79aff4d1074 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 = '2.6.4'; + public const PACKAGE_VERSION = 'ab955a3c2e10dcc358a67f30c9d69f7e286a446a'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-26 20:39:53'; + public const RELEASE_DATE = '2026-08-27 11:35:15'; /** * @var int */ diff --git a/src/Console/Command/ProcessCommand.php b/src/Console/Command/ProcessCommand.php index 43a8433f3a9..145eff74838 100644 --- a/src/Console/Command/ProcessCommand.php +++ b/src/Console/Command/ProcessCommand.php @@ -148,7 +148,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int } // 0. warn about skipped rules that are deprecated if ($this->skippedClassResolver->resolveDeprecatedSkippedClasses() !== []) { - $this->symfonyStyle->warning(sprintf('These rules are skipped, but are deprecated. Most likely you do not need to skip them anymore as not part of any set and remove them: %s* %s', "\n\n", implode(' * ', $this->skippedClassResolver->resolveDeprecatedSkippedClasses()) . "\n")); + $this->symfonyStyle->warning(sprintf('These rules are skipped, but are deprecated. Most likely you do not need to skip them anymore as not part of any set and remove them: %s%s', "\n\n", '* ' . implode("\n* ", $this->skippedClassResolver->resolveDeprecatedSkippedClasses()) . "\n")); } // 1. warn about rules registered in both withRules() and sets to avoid bloated rector.php configs $setAndRulesDuplicatedRegistrations = $configuration->getBothSetAndRulesDuplicatedRegistrations(); From acd7891faad268ffe250f10084269e222207ec3c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Aug 2026 10:27:00 +0000 Subject: [PATCH 052/169] Updated Rector to commit 19b140a93916effb34c21cb7d65fbd2365579952 https://github.com/rectorphp/rector-src/commit/19b140a93916effb34c21cb7d65fbd2365579952 [Php74] Skip non-nullable typed property on IfToNullCoalescingAssignRector (#8387) --- .../If_/IfToNullCoalescingAssignRector.php | 19 +++++++++++++++++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php index 9ace353b2f7..de160af19ae 100644 --- a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php +++ b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php @@ -11,9 +11,13 @@ use PhpParser\Node\Expr\BooleanNot; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\Isset_; +use PhpParser\Node\Expr\PropertyFetch; +use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; +use PHPStan\Type\MixedType; +use PHPStan\Type\TypeCombinator; use Rector\PhpParser\Node\BetterNodeFinder; use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; @@ -87,6 +91,10 @@ public function refactor(Node $node): ?Expression if (!$this->nodeComparator->areNodesEqual($assign->var, $testedExpr)) { return null; } + // a typed non-nullable property can never be null on the left of ??= + if ($this->isNonNullableProperty($testedExpr)) { + return null; + } // the assigned value must not reference the target, e.g. $x = $x + 1 $selfReference = $this->betterNodeFinder->findFirst($assign->expr, fn(Node $subNode): bool => $this->nodeComparator->areNodesEqual($subNode, $assign->var)); if ($selfReference instanceof Node) { @@ -98,6 +106,17 @@ public function provideMinPhpVersion(): int { return PhpVersionFeature::NULL_COALESCE_ASSIGN; } + private function isNonNullableProperty(Expr $expr): bool + { + if (!$expr instanceof PropertyFetch && !$expr instanceof StaticPropertyFetch) { + return \false; + } + $propertyType = $this->nodeTypeResolver->getType($expr); + if ($propertyType instanceof MixedType) { + return \false; + } + return !TypeCombinator::containsNull($propertyType); + } private function matchNullGuardedExpr(Expr $expr): ?Expr { // ! isset($value) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 79aff4d1074..d48726707df 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 = 'ab955a3c2e10dcc358a67f30c9d69f7e286a446a'; + public const PACKAGE_VERSION = '19b140a93916effb34c21cb7d65fbd2365579952'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-27 11:35:15'; + public const RELEASE_DATE = '2026-08-27 12:24:43'; /** * @var int */ From 94433466e8d9ac1fe031e8a6311ee1921dfc6501 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Aug 2026 10:55:20 +0000 Subject: [PATCH 053/169] Updated Rector to commit 19b140a93916effb34c21cb7d65fbd2365579952 --- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/composer/installed.json | 8 +-- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../config/sets/composer-based.php | 3 + .../PlatformGetNameToInstanceofRector.php | 71 +++++++++++++++++++ 7 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 vendor/rector/rector-doctrine/rules/Dbal32/Rector/Identical/PlatformGetNameToInstanceofRector.php diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index b45626aa022..15d242fad55 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1377,6 +1377,7 @@ 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ExtractArrayArgOnQueryBuilderSelectRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php', 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ReplaceFetchAllMethodCallRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php', 'Rector\\Doctrine\\Dbal31\\Rector\\MethodCall\\QueryBuilderExecuteToExecuteQueryOrExecuteStatementRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal31/Rector/MethodCall/QueryBuilderExecuteToExecuteQueryOrExecuteStatementRector.php', + 'Rector\\Doctrine\\Dbal32\\Rector\\Identical\\PlatformGetNameToInstanceofRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal32/Rector/Identical/PlatformGetNameToInstanceofRector.php', 'Rector\\Doctrine\\Dbal36\\Rector\\MethodCall\\MigrateQueryBuilderResetQueryPartRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal36/Rector/MethodCall/MigrateQueryBuilderResetQueryPartRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\MethodCall\\ChangeCompositeExpressionAddMultipleWithWithRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\StmtsAwareInterface\\ExecuteQueryParamsToBindValueRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal40/Rector/StmtsAwareInterface/ExecuteQueryParamsToBindValueRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 11d1b614e12..9f167320363 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1602,6 +1602,7 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ExtractArrayArgOnQueryBuilderSelectRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php', 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ReplaceFetchAllMethodCallRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php', 'Rector\\Doctrine\\Dbal31\\Rector\\MethodCall\\QueryBuilderExecuteToExecuteQueryOrExecuteStatementRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal31/Rector/MethodCall/QueryBuilderExecuteToExecuteQueryOrExecuteStatementRector.php', + 'Rector\\Doctrine\\Dbal32\\Rector\\Identical\\PlatformGetNameToInstanceofRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal32/Rector/Identical/PlatformGetNameToInstanceofRector.php', 'Rector\\Doctrine\\Dbal36\\Rector\\MethodCall\\MigrateQueryBuilderResetQueryPartRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal36/Rector/MethodCall/MigrateQueryBuilderResetQueryPartRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\MethodCall\\ChangeCompositeExpressionAddMultipleWithWithRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\StmtsAwareInterface\\ExecuteQueryParamsToBindValueRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal40/Rector/StmtsAwareInterface/ExecuteQueryParamsToBindValueRector.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 8920d294b49..ca82ad3ed47 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "681aadb3976ce680b5909a4f66e4026c56f22f06" + "reference": "d406eb07c0c80949d07c4f5ad22a9d3c18577314" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/681aadb3976ce680b5909a4f66e4026c56f22f06", - "reference": "681aadb3976ce680b5909a4f66e4026c56f22f06", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/d406eb07c0c80949d07c4f5ad22a9d3c18577314", + "reference": "d406eb07c0c80949d07c4f5ad22a9d3c18577314", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-26T19:40:12+00:00", + "time": "2026-08-27T10:52:27+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 6e15b5cd8c1..712b7463fdd 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '681aadb3976ce680b5909a4f66e4026c56f22f06', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '79735b7473bd1c7dc58c87cf41112e3d9665ac91', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'd406eb07c0c80949d07c4f5ad22a9d3c18577314', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '79735b7473bd1c7dc58c87cf41112e3d9665ac91', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 94f730a3561..06f2a3a4116 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 681aadb'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 79735b7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main d406eb0'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 79735b7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/config/sets/composer-based.php b/vendor/rector/rector-doctrine/config/sets/composer-based.php index 243a6f798a8..2d28887ff50 100644 --- a/vendor/rector/rector-doctrine/config/sets/composer-based.php +++ b/vendor/rector/rector-doctrine/config/sets/composer-based.php @@ -13,6 +13,7 @@ use Rector\Doctrine\Dbal211\Rector\MethodCall\ExtractArrayArgOnQueryBuilderSelectRector; use Rector\Doctrine\Dbal211\Rector\MethodCall\ReplaceFetchAllMethodCallRector; use Rector\Doctrine\Dbal31\Rector\MethodCall\QueryBuilderExecuteToExecuteQueryOrExecuteStatementRector; +use Rector\Doctrine\Dbal32\Rector\Identical\PlatformGetNameToInstanceofRector; use Rector\Doctrine\Dbal36\Rector\MethodCall\MigrateQueryBuilderResetQueryPartRector; use Rector\Doctrine\Dbal40\Rector\MethodCall\ChangeCompositeExpressionAddMultipleWithWithRector; use Rector\Doctrine\Dbal40\Rector\StmtsAwareInterface\ExecuteQueryParamsToBindValueRector; @@ -65,6 +66,8 @@ MigrateQueryBuilderResetQueryPartRector::class, // doctrine/dbal 3.1 QueryBuilderExecuteToExecuteQueryOrExecuteStatementRector::class, + // doctrine/dbal 3.2 + PlatformGetNameToInstanceofRector::class, // doctrine/dbal 4.0 and 4.2 ChangeCompositeExpressionAddMultipleWithWithRector::class, ExecuteQueryParamsToBindValueRector::class, diff --git a/vendor/rector/rector-doctrine/rules/Dbal32/Rector/Identical/PlatformGetNameToInstanceofRector.php b/vendor/rector/rector-doctrine/rules/Dbal32/Rector/Identical/PlatformGetNameToInstanceofRector.php new file mode 100644 index 00000000000..dd095ccaab1 --- /dev/null +++ b/vendor/rector/rector-doctrine/rules/Dbal32/Rector/Identical/PlatformGetNameToInstanceofRector.php @@ -0,0 +1,71 @@ + + */ + private const PLATFORM_MAP = ['postgresql' => 'Doctrine\DBAL\Platforms\PostgreSQLPlatform', 'mysql' => 'Doctrine\DBAL\Platforms\MySQLPlatform', 'sqlite' => 'Doctrine\DBAL\Platforms\SqlitePlatform', 'oracle' => 'Doctrine\DBAL\Platforms\OraclePlatform', 'mssql' => 'Doctrine\DBAL\Platforms\SQLServerPlatform', 'db2' => 'Doctrine\DBAL\Platforms\DB2Platform']; + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Change $platform->getName() === "postgresql" to $platform instanceof PostgreSQLPlatform, following the DBAL 3.2 deprecation of AbstractPlatform::getName(), see https://github.com/doctrine/dbal/pull/4755', [new CodeSample("if ('postgresql' === \$this->platform->getName()) {}", "if (\$this->platform instanceof \\Doctrine\\DBAL\\Platforms\\PostgreSQLPlatform) {}")]); + } + public function provideComposerPackageConstraint(): ComposerPackageConstraint + { + return new ComposerPackageConstraint('doctrine/dbal', '>= 3.2'); + } + public function getNodeTypes(): array + { + return [Identical::class, Equal::class]; + } + /** + * @param Identical|Equal $node + */ + public function refactor(Node $node): ?Node + { + // Handle both: 'postgresql' === $platform->getName() AND $platform->getName() === 'postgresql' + if ($node->left instanceof String_ && $node->right instanceof MethodCall) { + $stringNode = $node->left; + $methodCallNode = $node->right; + } elseif ($node->right instanceof String_ && $node->left instanceof MethodCall) { + $stringNode = $node->right; + $methodCallNode = $node->left; + } else { + return null; + } + if (!$this->isName($methodCallNode->name, 'getName')) { + return null; + } + // ONLY apply this if the variable calling getName() is a Doctrine DBAL Platform + if (!$this->isObjectType($methodCallNode->var, new ObjectType('Doctrine\DBAL\Platforms\AbstractPlatform'))) { + return null; + } + $platformName = $stringNode->value; + if (!isset(self::PLATFORM_MAP[$platformName])) { + return null; + } + return new Instanceof_($methodCallNode->var, new FullyQualified(self::PLATFORM_MAP[$platformName])); + } +} From 2bfc6d7136f08e185376d6022b97425024fe1db5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Aug 2026 11:07:30 +0000 Subject: [PATCH 054/169] Updated Rector to commit 19b140a93916effb34c21cb7d65fbd2365579952 --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- .../Class_/TypeNullableEntityFromDocblockRector.php | 6 +++++- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index ca82ad3ed47..976edba8296 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "d406eb07c0c80949d07c4f5ad22a9d3c18577314" + "reference": "bb4ccbae623032910224d0c1e8ea80255d3be72d" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/d406eb07c0c80949d07c4f5ad22a9d3c18577314", - "reference": "d406eb07c0c80949d07c4f5ad22a9d3c18577314", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/bb4ccbae623032910224d0c1e8ea80255d3be72d", + "reference": "bb4ccbae623032910224d0c1e8ea80255d3be72d", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-27T10:52:27+00:00", + "time": "2026-08-27T11:04:30+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 712b7463fdd..b10786fce68 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'd406eb07c0c80949d07c4f5ad22a9d3c18577314', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '79735b7473bd1c7dc58c87cf41112e3d9665ac91', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '79735b7473bd1c7dc58c87cf41112e3d9665ac91', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 06f2a3a4116..df47c32c6ad 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main d406eb0'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 79735b7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 79735b7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/TypeNullableEntityFromDocblockRector.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/TypeNullableEntityFromDocblockRector.php index fa7d8dbf75c..592011bf9a4 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/TypeNullableEntityFromDocblockRector.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/TypeNullableEntityFromDocblockRector.php @@ -18,6 +18,7 @@ use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Comments\NodeDocBlock\DocBlockUpdater; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; use Rector\DeadCode\PhpDoc\DeadVarTagValueNodeAnalyzer; use Rector\Doctrine\CodeQuality\Helper\SetterGetterFinder; use Rector\Doctrine\NodeAnalyzer\DoctrineEntityDetector; @@ -28,9 +29,12 @@ use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** + * @deprecated as too opinionated and narrow use-cased. Blindly forcing all entity properties to nullable native types + * from docblocks is a niche stepping-stone that does not fit a general code-quality set. + * * @see \Rector\Doctrine\Tests\CodeQuality\Rector\Class_\TypeNullableEntityFromDocblockRector\TypeNullableEntityFromDocblockRectorTest */ -final class TypeNullableEntityFromDocblockRector extends AbstractRector +final class TypeNullableEntityFromDocblockRector extends AbstractRector implements DeprecatedInterface { /** * @readonly From afc01f58f39d8dc82f78db2ec80e78c155061521 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Aug 2026 12:54:48 +0000 Subject: [PATCH 055/169] Updated Rector to commit 4d8940bc39250aa276a98b5fa136e58f22db8711 https://github.com/rectorphp/rector-src/commit/4d8940bc39250aa276a98b5fa136e58f22db8711 [Php74] Keep comments above if on IfToNullCoalescingAssignRector (#8388) --- rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php | 4 +++- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php index de160af19ae..a61e881446d 100644 --- a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php +++ b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php @@ -100,7 +100,9 @@ public function refactor(Node $node): ?Expression if ($selfReference instanceof Node) { return null; } - return new Expression(new AssignCoalesce($assign->var, $assign->expr)); + $expression = new Expression(new AssignCoalesce($assign->var, $assign->expr)); + $this->mirrorComments($expression, $node); + return $expression; } public function provideMinPhpVersion(): int { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index d48726707df..9dc46c75627 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 = '19b140a93916effb34c21cb7d65fbd2365579952'; + public const PACKAGE_VERSION = '4d8940bc39250aa276a98b5fa136e58f22db8711'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-27 12:24:43'; + public const RELEASE_DATE = '2026-08-27 14:52:21'; /** * @var int */ From e85268aafa3d696870f111c0b6f3b1776b947108 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Aug 2026 17:51:23 +0000 Subject: [PATCH 056/169] Updated Rector to commit 4d8940bc39250aa276a98b5fa136e58f22db8711 --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../DirectInstanceOverMockArgRector.php | 18 +++++++++--------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 976edba8296..9d8107490b1 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "79735b7473bd1c7dc58c87cf41112e3d9665ac91" + "reference": "25ece8dc6156e7907637b522897b430d4db5bdd8" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/79735b7473bd1c7dc58c87cf41112e3d9665ac91", - "reference": "79735b7473bd1c7dc58c87cf41112e3d9665ac91", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/25ece8dc6156e7907637b522897b430d4db5bdd8", + "reference": "25ece8dc6156e7907637b522897b430d4db5bdd8", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-26T19:40:16+00:00", + "time": "2026-08-27T17:46:53+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b10786fce68..25b135010b5 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '79735b7473bd1c7dc58c87cf41112e3d9665ac91', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 df47c32c6ad..f858cc42aa6 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 79735b7'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 25ece8d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/CallLike/DirectInstanceOverMockArgRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/CallLike/DirectInstanceOverMockArgRector.php index d9ad395cac2..295d75012ef 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/CallLike/DirectInstanceOverMockArgRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/CallLike/DirectInstanceOverMockArgRector.php @@ -12,8 +12,7 @@ use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Name\FullyQualified; use Rector\PhpParser\Node\Value\ValueResolver; -use Rector\PHPStan\ScopeFetcher; -use Rector\PHPUnit\Enum\PHPUnitClassName; +use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; use Rector\Rector\AbstractRector; use Rector\Symfony\Enum\SymfonyClass; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -27,9 +26,14 @@ final class DirectInstanceOverMockArgRector extends AbstractRector * @readonly */ private ValueResolver $valueResolver; - public function __construct(ValueResolver $valueResolver) + /** + * @readonly + */ + private TestsNodeAnalyzer $testsNodeAnalyzer; + public function __construct(ValueResolver $valueResolver, TestsNodeAnalyzer $testsNodeAnalyzer) { $this->valueResolver = $valueResolver; + $this->testsNodeAnalyzer = $testsNodeAnalyzer; } public function getRuleDefinition(): RuleDefinition { @@ -80,12 +84,8 @@ public function getNodeTypes(): array */ public function refactor(Node $node) { - $scope = ScopeFetcher::fetch($node); - if (!$scope->isInClass()) { - return null; - } - $classReflection = $scope->getClassReflection(); - if (!$classReflection->is(PHPUnitClassName::TEST_CASE)) { + // run on test classes only, non-test code may lack scope on args and crash the whole run + if (!$this->testsNodeAnalyzer->isInTestClass($node)) { return null; } $hasChanged = \false; From 290e56f870f790062c676de9e94347ea61178a41 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 28 Aug 2026 06:21:25 +0000 Subject: [PATCH 057/169] Updated Rector to commit 10120e071c57dc64f695531d04fb5948d677c327 https://github.com/rectorphp/rector-src/commit/10120e071c57dc64f695531d04fb5948d677c327 [Php74] Fix isset guard never converting on IfToNullCoalescingAssignRector (#8389) --- .../Rector/If_/IfToNullCoalescingAssignRector.php | 15 +++++++++++++-- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php index a61e881446d..e13b44f491a 100644 --- a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php +++ b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php @@ -16,11 +16,13 @@ use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; +use PHPStan\Reflection\Php\PhpPropertyReflection; use PHPStan\Type\MixedType; use PHPStan\Type\TypeCombinator; use Rector\PhpParser\Node\BetterNodeFinder; use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; +use Rector\Reflection\ReflectionResolver; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -38,10 +40,15 @@ final class IfToNullCoalescingAssignRector extends AbstractRector implements Min * @readonly */ private ValueResolver $valueResolver; - public function __construct(BetterNodeFinder $betterNodeFinder, ValueResolver $valueResolver) + /** + * @readonly + */ + private ReflectionResolver $reflectionResolver; + public function __construct(BetterNodeFinder $betterNodeFinder, ValueResolver $valueResolver, ReflectionResolver $reflectionResolver) { $this->betterNodeFinder = $betterNodeFinder; $this->valueResolver = $valueResolver; + $this->reflectionResolver = $reflectionResolver; } public function getRuleDefinition(): RuleDefinition { @@ -113,7 +120,11 @@ private function isNonNullableProperty(Expr $expr): bool if (!$expr instanceof PropertyFetch && !$expr instanceof StaticPropertyFetch) { return \false; } - $propertyType = $this->nodeTypeResolver->getType($expr); + $phpPropertyReflection = $this->reflectionResolver->resolvePropertyReflectionFromPropertyFetch($expr); + if (!$phpPropertyReflection instanceof PhpPropertyReflection) { + return \false; + } + $propertyType = $phpPropertyReflection->getReadableType(); if ($propertyType instanceof MixedType) { return \false; } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 9dc46c75627..1a9ee1afd2a 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 = '4d8940bc39250aa276a98b5fa136e58f22db8711'; + public const PACKAGE_VERSION = '10120e071c57dc64f695531d04fb5948d677c327'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-27 14:52:21'; + public const RELEASE_DATE = '2026-08-28 08:18:46'; /** * @var int */ From 020d11afdd61b3257b23ad03803af82d895ddd8d Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 28 Aug 2026 08:58:17 +0000 Subject: [PATCH 058/169] Updated Rector to commit 33760c779aa5b3a682a293af81550817706e904a https://github.com/rectorphp/rector-src/commit/33760c779aa5b3a682a293af81550817706e904a [ChangesReporting] Deprecate github and gitlab output formats (#8390) --- src/Application/VersionResolver.php | 4 ++-- src/ChangesReporting/Output/GitHubOutputFormatter.php | 2 ++ src/ChangesReporting/Output/GitlabOutputFormatter.php | 3 +++ src/Console/Command/ProcessCommand.php | 4 ++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 1a9ee1afd2a..fd576a2b203 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 = '10120e071c57dc64f695531d04fb5948d677c327'; + public const PACKAGE_VERSION = '33760c779aa5b3a682a293af81550817706e904a'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-28 08:18:46'; + public const RELEASE_DATE = '2026-08-28 10:55:49'; /** * @var int */ diff --git a/src/ChangesReporting/Output/GitHubOutputFormatter.php b/src/ChangesReporting/Output/GitHubOutputFormatter.php index 9f634e9312b..61c3283326b 100644 --- a/src/ChangesReporting/Output/GitHubOutputFormatter.php +++ b/src/ChangesReporting/Output/GitHubOutputFormatter.php @@ -15,6 +15,8 @@ use Rector\ValueObject\Configuration; use Rector\ValueObject\ProcessResult; /** + * @deprecated Will be removed in next minor version, as Rector is not a static analysis tool. + * * @phpstan-type AnnotationProperties array{title?: string|null, file?: string|null, col?: int|null, endColumn?: int|null, line?: int|null, endLine?: int|null} * @see \Rector\Tests\ChangesReporting\Output\GitHubOutputFormatterTest */ diff --git a/src/ChangesReporting/Output/GitlabOutputFormatter.php b/src/ChangesReporting/Output/GitlabOutputFormatter.php index 1cd09a8a276..2bac23dd785 100644 --- a/src/ChangesReporting/Output/GitlabOutputFormatter.php +++ b/src/ChangesReporting/Output/GitlabOutputFormatter.php @@ -12,6 +12,9 @@ use Rector\Util\FileHasher; use Rector\ValueObject\Configuration; use Rector\ValueObject\ProcessResult; +/** + * @deprecated Will be removed in next minor version, as Rector is not a static analysis tool. + */ final class GitlabOutputFormatter implements OutputFormatterInterface { /** diff --git a/src/Console/Command/ProcessCommand.php b/src/Console/Command/ProcessCommand.php index 145eff74838..ce2fb9fc115 100644 --- a/src/Console/Command/ProcessCommand.php +++ b/src/Console/Command/ProcessCommand.php @@ -185,6 +185,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int // 3. reporting phaseRunning 2nd time with collectors data // report diffs and errors $outputFormat = $configuration->getOutputFormat(); + // warn about deprecated static-analysis-oriented output formats, to be removed in next minor version + if (in_array($outputFormat, ['github', 'gitlab'], \true)) { + $this->symfonyStyle->getErrorStyle()->warning(sprintf('The "%s" output format is deprecated and will be removed in the next minor version, as Rector is not a static analysis tool.', $outputFormat)); + } $outputFormatter = $this->outputFormatterCollector->getByName($outputFormat); $outputFormatter->report($processResult, $configuration); // 4. Deprecations reporter From cac289d89b4171e640739629ded8a157e912dc83 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 28 Aug 2026 16:01:00 +0000 Subject: [PATCH 059/169] Updated Rector to commit e18c135b59c13a8307c8f69efb49f6dc35030f67 https://github.com/rectorphp/rector-src/commit/e18c135b59c13a8307c8f69efb49f6dc35030f67 [CodingStyle] Skip callee arity mismatch on ArrowFunctionDelegatingCallToFirstClassCallableRector (#8391) --- .../Guard/ArrowFunctionAndClosureFirstClassCallableGuard.php | 2 +- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rules/CodingStyle/Guard/ArrowFunctionAndClosureFirstClassCallableGuard.php b/rules/CodingStyle/Guard/ArrowFunctionAndClosureFirstClassCallableGuard.php index 0e46d4f40a3..bb66ad22472 100644 --- a/rules/CodingStyle/Guard/ArrowFunctionAndClosureFirstClassCallableGuard.php +++ b/rules/CodingStyle/Guard/ArrowFunctionAndClosureFirstClassCallableGuard.php @@ -102,7 +102,7 @@ public function shouldSkip($arrowFunctionOrClosure, $callLike, Scope $scope): bo if ($this->isBuiltinReflection($reflection)) { return \false; } - return count($parameters) > 1; + return count($parameters) !== count($args); } /** * @param \PHPStan\Reflection\FunctionReflection|\PHPStan\Reflection\MethodReflection $reflection diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index fd576a2b203..ce81e7667c4 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 = '33760c779aa5b3a682a293af81550817706e904a'; + public const PACKAGE_VERSION = 'e18c135b59c13a8307c8f69efb49f6dc35030f67'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-28 10:55:49'; + public const RELEASE_DATE = '2026-08-28 17:58:29'; /** * @var int */ From d61bbf8059555b28ca86f90a430a8b1685911a3b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 28 Aug 2026 22:02:32 +0000 Subject: [PATCH 060/169] Updated Rector to commit c981460dcee835ae63cf3523ddd19f7d01f8979b https://github.com/rectorphp/rector-src/commit/c981460dcee835ae63cf3523ddd19f7d01f8979b [Configuration] Deprecate and disable withSetProviders() (#8392) --- src/Application/VersionResolver.php | 4 +- src/Configuration/Option.php | 6 --- src/Configuration/RectorConfigBuilder.php | 42 ++------------- src/Console/Command/ProcessCommand.php | 17 ------ src/Set/SetManager.php | 65 ----------------------- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_static.php | 1 - 7 files changed, 5 insertions(+), 131 deletions(-) delete mode 100644 src/Set/SetManager.php diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index ce81e7667c4..d480d89aaa0 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 = 'e18c135b59c13a8307c8f69efb49f6dc35030f67'; + public const PACKAGE_VERSION = 'c981460dcee835ae63cf3523ddd19f7d01f8979b'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-28 17:58:29'; + public const RELEASE_DATE = '2026-08-29 00:00:01'; /** * @var int */ diff --git a/src/Configuration/Option.php b/src/Configuration/Option.php index b4a9a08703b..e5da622ab44 100644 --- a/src/Configuration/Option.php +++ b/src/Configuration/Option.php @@ -309,12 +309,6 @@ final class Option * @var string */ public const TREAT_CLASSES_AS_FINAL = 'treat_classes_as_final'; - /** - * @internal To report composer based loaded sets - * @see \Rector\Configuration\RectorConfigBuilder::withComposerBased() - * @var string - */ - public const COMPOSER_BASED_SETS = 'composer_based_sets'; /** * @internal To report rule configuration bound to an installed package version * @see \Rector\Config\RectorConfig::ruleWithConfigurationComposerVersionBound() diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index a3eca6e36ab..cc7d581e24f 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -5,10 +5,8 @@ use Deprecated; use PhpParser\NodeVisitor; -use Rector\Bridge\SetProviderCollector; use Rector\Bridge\SetRectorsResolver; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; -use Rector\Composer\InstalledPackageResolver; use Rector\Config\Level\CodeQualityLevel; use Rector\Config\Level\CodingStyleLevel; use Rector\Config\Level\DeadCodeLevel; @@ -25,9 +23,7 @@ use Rector\Exception\Configuration\InvalidConfigurationException; use Rector\Php\PhpVersionResolver\ComposerJsonPhpVersionResolver; use Rector\PHPUnit\Set\PHPUnitSetList; -use Rector\Set\Contract\SetProviderInterface; use Rector\Set\Enum\SetGroup; -use Rector\Set\SetManager; use Rector\Set\ValueObject\DowngradeLevelSetList; use Rector\Set\ValueObject\SetList; use Rector\Symfony\Set\SymfonyInternalSetList; @@ -133,36 +129,18 @@ final class RectorConfigBuilder * @var array */ private array $registerServices = []; - /** - * @var array - */ - private array $setGroups = []; private ?bool $reportingRealPath = null; private ?bool $reportUnusedSkips = null; - /** - * @var string[] - */ - private array $groupLoadedSets = []; private ?string $editorUrl = null; private ?bool $isWithPhpSetsUsed = null; private ?bool $isWithPhpLevelUsed = null; private ?int $pickedPhpSetsVersion = null; - /** - * @var array,bool> - */ - private array $setProviders = []; /** * @var LevelOverflow[] */ private array $levelOverflows = []; public function __invoke(RectorConfig $rectorConfig): void { - if ($this->setGroups !== [] || $this->setProviders !== []) { - $setProviderCollector = new SetProviderCollector(array_map(\Closure::fromCallable([$rectorConfig, 'make']), \array_keys($this->setProviders))); - $setManager = new SetManager($setProviderCollector, new InstalledPackageResolver(getcwd())); - $this->groupLoadedSets = $setManager->matchBySetGroups($this->setGroups); - SimpleParameterProvider::addParameter(\Rector\Configuration\Option::COMPOSER_BASED_SETS, $this->groupLoadedSets); - } // not to miss it by accident if ($this->isWithPhpSetsUsed === \true) { $this->sets[] = SetList::PHP_POLYFILLS; @@ -170,8 +148,6 @@ public function __invoke(RectorConfig $rectorConfig): void if ($this->pickedPhpSetsVersion !== null) { SimpleParameterProvider::setParameter(\Rector\Configuration\Option::POLYFILL_CEILING_PHP_VERSION, $this->pickedPhpSetsVersion); } - // merge sets together - $this->sets = array_merge($this->sets, $this->groupLoadedSets); $uniqueSets = array_unique($this->sets); if ($this->isWithPhpLevelUsed && $this->isWithPhpSetsUsed) { throw new InvalidConfigurationException(sprintf('Your config uses "withPhp*()" and "withPhpLevel()" methods at the same time.%sPick one of them to avoid rule conflicts.', \PHP_EOL)); @@ -478,11 +454,7 @@ public function withComposerBased(bool $twig = \false, bool $doctrine = \false, Assert::string($setFilePath); // single set, as every rule inside is bound to the installed package version on its own $this->sets[] = $setFilePath; - continue; } - // @deprecated fallback for extensions that still describe their sets as objects, - // instead of bonding the rules themselves - $this->setGroups[] = $setGroup; } if ($phpunit) { // single set, as every rule inside is bound to the installed PHPUnit version on its own @@ -790,19 +762,11 @@ public function withEditorUrl(string $editorUrl): self return $this; } /** - * @param class-string ...$setProviders + * @deprecated Set providers are now loaded internally. Use withComposerBased() instead. */ - public function withSetProviders(string ...$setProviders): self + public function withSetProviders(): self { - foreach ($setProviders as $setProvider) { - if (\array_key_exists($setProvider, $this->setProviders)) { - continue; - } - if (!is_a($setProvider, SetProviderInterface::class, \true)) { - throw new InvalidConfigurationException(sprintf('Set provider "%s" must implement "%s"', $setProvider, SetProviderInterface::class)); - } - $this->setProviders[$setProvider] = \true; - } + trigger_error('The withSetProviders() method is deprecated and no longer applied. Set providers are now loaded internally - use "withComposerBased()" instead.', \E_USER_DEPRECATED); return $this; } /** diff --git a/src/Console/Command/ProcessCommand.php b/src/Console/Command/ProcessCommand.php index ce2fb9fc115..1afe27897ef 100644 --- a/src/Console/Command/ProcessCommand.php +++ b/src/Console/Command/ProcessCommand.php @@ -11,7 +11,6 @@ use Rector\Configuration\ConfigurationFactory; use Rector\Configuration\ConfigurationRuleFilter; use Rector\Configuration\Option; -use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Console\ExitCode; use Rector\Console\Output\OutputFormatterCollector; use Rector\Console\ProcessConfigureDecorator; @@ -174,10 +173,6 @@ protected function execute(InputInterface $input, OutputInterface $output): int if (!$configuration->isParallel()) { $this->additionalAutoloader->autoloadPaths(); } - // show debug info - if ($configuration->isDebug()) { - $this->reportLoadedComposerBasedSets(); - } // MAIN PHASE // 2. run Rector $processResult = $this->applicationFileProcessor->run($configuration, $input); @@ -238,18 +233,6 @@ private function resolveReturnCode(ProcessResult $processResult, Configuration $ } return ExitCode::SUCCESS; } - private function reportLoadedComposerBasedSets(): void - { - if (!SimpleParameterProvider::hasParameter(Option::COMPOSER_BASED_SETS)) { - return; - } - $composerBasedSets = SimpleParameterProvider::provideArrayParameter(Option::COMPOSER_BASED_SETS); - if ($composerBasedSets === []) { - return; - } - $this->symfonyStyle->writeln('[info] Sets loaded based on installed packages:'); - $this->symfonyStyle->listing($composerBasedSets); - } private function reportLevelOverflow(LevelOverflow $levelOverflow): void { $suggestedSetMethod = \PHP_VERSION_ID >= 80000 ? sprintf('->withPreparedSets(%s: true)', $levelOverflow->getSuggestedRuleset()) : sprintf('->withSets(SetList::%s)', $levelOverflow->getSuggestedSetListConstant()); diff --git a/src/Set/SetManager.php b/src/Set/SetManager.php deleted file mode 100644 index e6c140ad4b1..00000000000 --- a/src/Set/SetManager.php +++ /dev/null @@ -1,65 +0,0 @@ -setProviderCollector = $setProviderCollector; - $this->installedPackageResolver = $installedPackageResolver; - } - /** - * @param SetGroup::*[] $setGroups - * @return string[] - */ - public function matchBySetGroups(array $setGroups): array - { - $installedComposerPackages = $this->installedPackageResolver->resolve(); - $groupLoadedSets = []; - foreach ($setGroups as $setGroup) { - $composerTriggeredSets = $this->matchComposerTriggered($setGroup); - foreach ($composerTriggeredSets as $composerTriggeredSet) { - if ($composerTriggeredSet->matchInstalledPackages($installedComposerPackages)) { - // it matched composer package + version requirements → load set - $groupLoadedSets[] = realpath($composerTriggeredSet->getSetFilePath()); - } - } - } - return $groupLoadedSets; - } - /** - * @return ComposerTriggeredSet[] - */ - private function matchComposerTriggered(string $groupName): array - { - $matchedSets = []; - foreach ($this->setProviderCollector->provideComposerTriggeredSets() as $composerTriggeredSet) { - if ($composerTriggeredSet->getGroupName() === $groupName) { - $matchedSets[] = $composerTriggeredSet; - } - } - return $matchedSets; - } -} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 15d242fad55..207657af05e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2298,7 +2298,6 @@ 'Rector\\Set\\Contract\\SetInterface' => $baseDir . '/src/Set/Contract/SetInterface.php', 'Rector\\Set\\Contract\\SetProviderInterface' => $baseDir . '/src/Set/Contract/SetProviderInterface.php', 'Rector\\Set\\Enum\\SetGroup' => $baseDir . '/src/Set/Enum/SetGroup.php', - 'Rector\\Set\\SetManager' => $baseDir . '/src/Set/SetManager.php', 'Rector\\Set\\ValueObject\\ComposerTriggeredSet' => $baseDir . '/src/Set/ValueObject/ComposerTriggeredSet.php', 'Rector\\Set\\ValueObject\\DowngradeLevelSetList' => $vendorDir . '/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeLevelSetList.php', 'Rector\\Set\\ValueObject\\DowngradeSetList' => $vendorDir . '/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 9f167320363..0b774965083 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2523,7 +2523,6 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\Set\\Contract\\SetInterface' => __DIR__ . '/../..' . '/src/Set/Contract/SetInterface.php', 'Rector\\Set\\Contract\\SetProviderInterface' => __DIR__ . '/../..' . '/src/Set/Contract/SetProviderInterface.php', 'Rector\\Set\\Enum\\SetGroup' => __DIR__ . '/../..' . '/src/Set/Enum/SetGroup.php', - 'Rector\\Set\\SetManager' => __DIR__ . '/../..' . '/src/Set/SetManager.php', 'Rector\\Set\\ValueObject\\ComposerTriggeredSet' => __DIR__ . '/../..' . '/src/Set/ValueObject/ComposerTriggeredSet.php', 'Rector\\Set\\ValueObject\\DowngradeLevelSetList' => __DIR__ . '/..' . '/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeLevelSetList.php', 'Rector\\Set\\ValueObject\\DowngradeSetList' => __DIR__ . '/..' . '/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php', From 6c65d60b8cdee025f7c4308642c21dd93bba95ba Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 28 Aug 2026 22:10:39 +0000 Subject: [PATCH 061/169] Updated Rector to commit 0607fe06fd59d2582ba10caaa722d565d82100ed https://github.com/rectorphp/rector-src/commit/0607fe06fd59d2582ba10caaa722d565d82100ed [Console] Deprecate custom-rule command (#8393) --- composer.json | 5 +- src/Application/VersionResolver.php | 4 +- src/Console/Command/CustomRuleCommand.php | 87 ++--------------------- src/Enum/ClassName.php | 4 -- src/FileSystem/JsonFileSystem.php | 8 --- 5 files changed, 7 insertions(+), 101 deletions(-) diff --git a/composer.json b/composer.json index 01d33b7ac75..02630bbc841 100644 --- a/composer.json +++ b/composer.json @@ -23,8 +23,5 @@ "rector/rector-downgrade-php": "*" }, "minimum-stability": "dev", - "prefer-stable": true, - "suggest": { - "ext-dom": "To manipulate phpunit.xml via the custom-rule command" - } + "prefer-stable": true } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index d480d89aaa0..89ca70c4379 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 = 'c981460dcee835ae63cf3523ddd19f7d01f8979b'; + public const PACKAGE_VERSION = '0607fe06fd59d2582ba10caaa722d565d82100ed'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 00:00:01'; + public const RELEASE_DATE = '2026-08-29 00:08:32'; /** * @var int */ diff --git a/src/Console/Command/CustomRuleCommand.php b/src/Console/Command/CustomRuleCommand.php index 7c9830489f5..f59e6105863 100644 --- a/src/Console/Command/CustomRuleCommand.php +++ b/src/Console/Command/CustomRuleCommand.php @@ -3,108 +3,29 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Nette\Utils\FileSystem; -use RectorPrefix202608\Nette\Utils\Strings; -use PHPStan\Reflection\ReflectionProvider; -use Rector\Enum\ClassName; -use Rector\Exception\ShouldNotHappenException; -use Rector\FileSystem\JsonFileSystem; use RectorPrefix202608\Symfony\Component\Console\Command\Command; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202608\Symfony\Component\Finder\Finder; -use RectorPrefix202608\Symfony\Component\Finder\SplFileInfo; final class CustomRuleCommand extends Command { /** * @readonly */ private SymfonyStyle $symfonyStyle; - /** - * @readonly - */ - private ReflectionProvider $reflectionProvider; - public function __construct(SymfonyStyle $symfonyStyle, ReflectionProvider $reflectionProvider) + public function __construct(SymfonyStyle $symfonyStyle) { $this->symfonyStyle = $symfonyStyle; - $this->reflectionProvider = $reflectionProvider; parent::__construct(); } protected function configure(): void { $this->setName('custom-rule'); - $this->setDescription('Create base of local custom rule with tests'); + $this->setDescription('[DEPRECATED] Create base of local custom rule with tests'); } protected function execute(InputInterface $input, OutputInterface $output): int { - // ask for rule name - $rectorName = $this->symfonyStyle->ask('What is the rule class name? (e.g. "LegacyCallToDbalMethodCall")?', null, static function (?string $answer): string { - if ($answer === '' || $answer === null) { - throw new ShouldNotHappenException('Rector name cannot be empty'); - } - return $answer; - }); - // suffix with Rector by convention - if (substr_compare((string) $rectorName, 'Rector', -strlen('Rector')) !== 0) { - $rectorName .= 'Rector'; - } - $rectorName = ucfirst((string) $rectorName); - // find all files in templates directory - $finder = Finder::create()->files()->in(__DIR__ . '/../../../templates/custom-rule')->notName('__Name__Test.php.phtml'); - // 0. resolve if local phpunit is at least PHPUnit 10 (which supports #[DataProvider]) - // to provide annotation if not - if ($this->isPHPUnitAttributeSupported()) { - $finder->append([new SplFileInfo(__DIR__ . '/../../../templates/custom-rule/utils/rector/tests/Rector/__Name__/__Name__Test.php.phtml', 'utils/rector/tests/Rector/__Name__', 'utils/rector/tests/Rector/__Name__/__Name__Test.php.phtml')]); - } else { - // use @annotations for PHPUnit 9 and bellow - $finder->append([new SplFileInfo(__DIR__ . '/../../../templates/custom-rules-annotations/utils/rector/tests/Rector/__Name__/__Name__Test.php.phtml', 'utils/rector/tests/Rector/__Name__', 'utils/rector/tests/Rector/__Name__/__Name__Test.php.phtml')]); - } - $currentDirectory = getcwd(); - $generatedFilePaths = []; - $fileInfos = iterator_to_array($finder->getIterator()); - foreach ($fileInfos as $fileInfo) { - // replace "__Name__" with $rectorName - $newContent = $this->replaceNameVariable($rectorName, $fileInfo->getContents()); - $newFilePath = $this->replaceNameVariable($rectorName, $fileInfo->getRelativePathname()); - // remove "phtml" suffix - $newFilePath = Strings::substring($newFilePath, 0, -strlen('.phtml')); - FileSystem::write($currentDirectory . '/' . $newFilePath, $newContent, null); - $generatedFilePaths[] = $newFilePath; - } - $title = sprintf('Skeleton for "%s" rule was created. Now write rule logic to solve your problem', $rectorName); - $this->symfonyStyle->title($title); - $this->symfonyStyle->listing($generatedFilePaths); - // 2. update autoload-dev in composer.json - $composerJsonFilePath = $currentDirectory . '/composer.json'; - if (file_exists($composerJsonFilePath)) { - $hasChanged = \false; - $composerJson = JsonFileSystem::readFilePath($composerJsonFilePath); - if (!isset($composerJson['autoload-dev']['psr-4']['Utils\Rector\\'])) { - $composerJson['autoload-dev']['psr-4']['Utils\Rector\\'] = 'utils/rector/src'; - $composerJson['autoload-dev']['psr-4']['Utils\Rector\Tests\\'] = 'utils/rector/tests'; - $hasChanged = \true; - } - if ($hasChanged) { - $this->symfonyStyle->writeln('We updated "composer.json" autoload-dev to load Rector rules.'); - $this->symfonyStyle->writeln('Now run "composer dump-autoload" to update paths'); - JsonFileSystem::writeFile($composerJsonFilePath, $composerJson); - } - } - $this->symfonyStyle->newLine(1); - // 3. update phpunit.xml(.dist) to include rector test suite - $this->symfonyStyle->writeln('Run Rector tests via PHPUnit:'); - $this->symfonyStyle->newLine(1); - $this->symfonyStyle->writeln(' vendor/bin/phpunit utils/rector/tests'); - $this->symfonyStyle->newLine(1); - return Command::SUCCESS; - } - private function replaceNameVariable(string $rectorName, string $contents): string - { - return str_replace('__Name__', $rectorName, $contents); - } - private function isPHPUnitAttributeSupported(): bool - { - return $this->reflectionProvider->hasClass(ClassName::DATA_PROVIDER); + $this->symfonyStyle->error('The "custom-rule" command is deprecated and no longer generates files. Use an AI agent to scaffold a custom rule instead - it handles the setup faster and with less guesswork.'); + return Command::FAILURE; } } diff --git a/src/Enum/ClassName.php b/src/Enum/ClassName.php index f6f94b00974..26ca446a617 100644 --- a/src/Enum/ClassName.php +++ b/src/Enum/ClassName.php @@ -25,8 +25,4 @@ final class ClassName * @var string */ public const DOCTRINE_ENTITY = 'Doctrine\ORM\Mapping\Entity'; - /** - * @var string - */ - public const DATA_PROVIDER = 'PHPUnit\Framework\Attributes\DataProvider'; } diff --git a/src/FileSystem/JsonFileSystem.php b/src/FileSystem/JsonFileSystem.php index 98458c3e757..64a6fbd252b 100644 --- a/src/FileSystem/JsonFileSystem.php +++ b/src/FileSystem/JsonFileSystem.php @@ -15,12 +15,4 @@ public static function readFilePath(string $filePath): array $fileContents = FileSystem::read($filePath); return Json::decode($fileContents, \true); } - /** - * @param array $data - */ - public static function writeFile(string $filePath, array $data): void - { - $json = Json::encode($data, \true); - FileSystem::write($filePath, $json, null); - } } From 7ac74e446e74025efbbd7570e5f2bbc668798ae5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 28 Aug 2026 22:16:25 +0000 Subject: [PATCH 062/169] Updated Rector to commit 64d5c958405aa9373edffbf139345f50d0639d6b https://github.com/rectorphp/rector-src/commit/64d5c958405aa9373edffbf139345f50d0639d6b [Console] Deprecate setup-ci command (#8394) --- src/Application/VersionResolver.php | 4 +- src/Console/Command/SetupCICommand.php | 93 +------------------------- src/Git/RepositoryHelper.php | 24 ------- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_static.php | 1 - 5 files changed, 5 insertions(+), 118 deletions(-) delete mode 100644 src/Git/RepositoryHelper.php diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 89ca70c4379..2bd31bee7c1 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 = '0607fe06fd59d2582ba10caaa722d565d82100ed'; + public const PACKAGE_VERSION = '64d5c958405aa9373edffbf139345f50d0639d6b'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 00:08:32'; + public const RELEASE_DATE = '2026-08-29 00:13:29'; /** * @var int */ diff --git a/src/Console/Command/SetupCICommand.php b/src/Console/Command/SetupCICommand.php index 628ed7e660b..635c03f2ccb 100644 --- a/src/Console/Command/SetupCICommand.php +++ b/src/Console/Command/SetupCICommand.php @@ -3,14 +3,10 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Nette\Utils\FileSystem; -use RectorPrefix202608\OndraM\CiDetector\CiDetector; -use Rector\Git\RepositoryHelper; use RectorPrefix202608\Symfony\Component\Console\Command\Command; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; -use function sprintf; final class SetupCICommand extends Command { /** @@ -25,94 +21,11 @@ public function __construct(SymfonyStyle $symfonyStyle) protected function configure(): void { $this->setName('setup-ci'); - $this->setDescription('Add CI workflow to let Rector work for you'); + $this->setDescription('[DEPRECATED] Add CI workflow to let Rector work for you'); } protected function execute(InputInterface $input, OutputInterface $output): int { - // detect current CI - $ci = $this->resolveCurrentCI(); - if ($ci === CiDetector::CI_GITLAB) { - return $this->handleGitlabCi(); - } - if ($ci === CiDetector::CI_GITHUB_ACTIONS) { - return $this->handleGithubActions(); - } - $noteMessage = sprintf('Only GitHub and GitLab are currently supported.%s Contribute your CI template to Rector to make this work: %s', "\n", 'https://github.com/rectorphp/rector-src/'); - $this->symfonyStyle->note($noteMessage); - return self::SUCCESS; - } - /** - * @return CiDetector::CI_*|null - */ - private function resolveCurrentCI(): ?string - { - if (file_exists(getcwd() . '/.github')) { - return CiDetector::CI_GITHUB_ACTIONS; - } - if (file_exists(getcwd() . '/.gitlab-ci.yml')) { - return CiDetector::CI_GITLAB; - } - return null; - } - private function addGithubActionsWorkflow(string $currentRepository, string $targetWorkflowFilePath): void - { - $workflowTemplate = FileSystem::read(__DIR__ . '/../../../templates/rector-github-action-check.yaml'); - $workflowContents = strtr($workflowTemplate, ['__CURRENT_REPOSITORY__' => $currentRepository]); - FileSystem::write($targetWorkflowFilePath, $workflowContents, null); - $this->symfonyStyle->newLine(); - $this->symfonyStyle->success('The ".github/workflows/rector.yaml" file was added'); - $this->symfonyStyle->writeln('2 more steps to run Rector in CI:'); - $this->symfonyStyle->newLine(); - $this->symfonyStyle->writeln('1) Generate token with "repo" scope:' . \PHP_EOL . 'https://github.com/settings/tokens/new'); - $this->symfonyStyle->newLine(); - $repositoryNewSecretsLink = sprintf('https://github.com/%s/settings/secrets/actions/new', $currentRepository); - $this->symfonyStyle->writeln('2) Add the token to Action secrets as "ACCESS_TOKEN":' . \PHP_EOL . $repositoryNewSecretsLink); - } - private function addGitlabFile(string $targetGitlabFilePath): void - { - $gitlabTemplate = FileSystem::read(__DIR__ . '/../../../templates/rector-gitlab-check.yaml'); - FileSystem::write($targetGitlabFilePath, $gitlabTemplate, null); - $this->symfonyStyle->newLine(); - $this->symfonyStyle->success('The "gitlab/rector.yaml" file was added'); - $this->symfonyStyle->newLine(); - $this->symfonyStyle->writeln('1) Register it in your ".gitlab-ci.yml" file:' . \PHP_EOL . 'include:' . \PHP_EOL . ' - local: gitlab/rector.yaml'); - } - /** - * @return self::SUCCESS - */ - private function handleGitlabCi(): int - { - // add snippet in the end of file or include it? - $ciRectorFilePath = getcwd() . '/gitlab/rector.yaml'; - if (file_exists($ciRectorFilePath)) { - $response = $this->symfonyStyle->ask('The "gitlab/rector.yaml" workflow already exists. Overwrite it?', 'Yes'); - if (!in_array($response, ['y', 'yes', 'Yes'], \true)) { - $this->symfonyStyle->note('Nothing changed'); - return self::SUCCESS; - } - } - $this->addGitlabFile($ciRectorFilePath); - return self::SUCCESS; - } - /** - * @return self::SUCCESS|self::FAILURE - */ - private function handleGithubActions(): int - { - $rectorWorkflowFilePath = getcwd() . '/.github/workflows/rector.yaml'; - if (file_exists($rectorWorkflowFilePath)) { - $response = $this->symfonyStyle->ask('The "rector.yaml" workflow already exists. Overwrite it?', 'Yes'); - if (!in_array($response, ['y', 'yes', 'Yes'], \true)) { - $this->symfonyStyle->note('Nothing changed'); - return self::SUCCESS; - } - } - $currentRepository = RepositoryHelper::resolveGithubRepositoryName(getcwd()); - if ($currentRepository === null) { - $this->symfonyStyle->error('Current repository name could not be resolved'); - return self::FAILURE; - } - $this->addGithubActionsWorkflow($currentRepository, $rectorWorkflowFilePath); - return self::SUCCESS; + $this->symfonyStyle->error('The "setup-ci" command is deprecated and no longer generates files. Its generic template lacked caching and did not fit most setups. Add a CI workflow explicitly for your use case instead - an AI agent can tailor one to your repository.'); + return Command::FAILURE; } } diff --git a/src/Git/RepositoryHelper.php b/src/Git/RepositoryHelper.php deleted file mode 100644 index c9bcb77db4b..00000000000 --- a/src/Git/RepositoryHelper.php +++ /dev/null @@ -1,24 +0,0 @@ -.*?)\.git#'; - public static function resolveGithubRepositoryName(string $currentDirectory): ?string - { - // resolve current repository name - $process = new Process(['git', 'remote', 'get-url', 'origin'], $currentDirectory, null, null, null); - $process->run(); - $output = $process->getOutput(); - $match = Strings::match($output, self::GITHUB_REPOSITORY_REGEX); - return $match['repository_name'] ?? null; - } -} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 207657af05e..a9e2b49fb89 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1599,7 +1599,6 @@ 'Rector\\FileSystem\\FilesystemTweaker' => $baseDir . '/src/FileSystem/FilesystemTweaker.php', 'Rector\\FileSystem\\InitFilePathsResolver' => $baseDir . '/src/FileSystem/InitFilePathsResolver.php', 'Rector\\FileSystem\\JsonFileSystem' => $baseDir . '/src/FileSystem/JsonFileSystem.php', - 'Rector\\Git\\RepositoryHelper' => $baseDir . '/src/Git/RepositoryHelper.php', 'Rector\\Instanceof_\\Rector\\Ternary\\FlipNegatedTernaryInstanceofRector' => $baseDir . '/rules/Instanceof_/Rector/Ternary/FlipNegatedTernaryInstanceofRector.php', 'Rector\\Naming\\ExpectedNameResolver\\InflectorSingularResolver' => $baseDir . '/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php', 'Rector\\Naming\\ExpectedNameResolver\\MatchParamTypeExpectedNameResolver' => $baseDir . '/rules/Naming/ExpectedNameResolver/MatchParamTypeExpectedNameResolver.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 0b774965083..aecb66871fa 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1824,7 +1824,6 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\FileSystem\\FilesystemTweaker' => __DIR__ . '/../..' . '/src/FileSystem/FilesystemTweaker.php', 'Rector\\FileSystem\\InitFilePathsResolver' => __DIR__ . '/../..' . '/src/FileSystem/InitFilePathsResolver.php', 'Rector\\FileSystem\\JsonFileSystem' => __DIR__ . '/../..' . '/src/FileSystem/JsonFileSystem.php', - 'Rector\\Git\\RepositoryHelper' => __DIR__ . '/../..' . '/src/Git/RepositoryHelper.php', 'Rector\\Instanceof_\\Rector\\Ternary\\FlipNegatedTernaryInstanceofRector' => __DIR__ . '/../..' . '/rules/Instanceof_/Rector/Ternary/FlipNegatedTernaryInstanceofRector.php', 'Rector\\Naming\\ExpectedNameResolver\\InflectorSingularResolver' => __DIR__ . '/../..' . '/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php', 'Rector\\Naming\\ExpectedNameResolver\\MatchParamTypeExpectedNameResolver' => __DIR__ . '/../..' . '/rules/Naming/ExpectedNameResolver/MatchParamTypeExpectedNameResolver.php', From 58483ec3011608ce95a4aba77375b454beda2b06 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 28 Aug 2026 22:38:31 +0000 Subject: [PATCH 063/169] Updated Rector to commit 4eca735839a2e7aa96dcb29e28cd9ee480e0e963 https://github.com/rectorphp/rector-src/commit/4eca735839a2e7aa96dcb29e28cd9ee480e0e963 [Console] Deprecate list-rules command (#8396) --- src/Application/VersionResolver.php | 4 +- src/Console/Command/ListRulesCommand.php | 71 ++---------------------- 2 files changed, 6 insertions(+), 69 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 2bd31bee7c1..5032a685775 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 = '64d5c958405aa9373edffbf139345f50d0639d6b'; + public const PACKAGE_VERSION = '4eca735839a2e7aa96dcb29e28cd9ee480e0e963'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 00:13:29'; + public const RELEASE_DATE = '2026-08-29 00:35:59'; /** * @var int */ diff --git a/src/Console/Command/ListRulesCommand.php b/src/Console/Command/ListRulesCommand.php index 435b9e8862e..7d28270672a 100644 --- a/src/Console/Command/ListRulesCommand.php +++ b/src/Console/Command/ListRulesCommand.php @@ -3,15 +3,8 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Nette\Utils\Json; -use Rector\ChangesReporting\Output\ConsoleOutputFormatter; -use Rector\Configuration\Option; -use Rector\Contract\Rector\RectorInterface; -use Rector\PostRector\Contract\Rector\PostRectorInterface; -use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; use RectorPrefix202608\Symfony\Component\Console\Command\Command; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; final class ListRulesCommand extends Command @@ -20,76 +13,20 @@ final class ListRulesCommand extends Command * @readonly */ private SymfonyStyle $symfonyStyle; - /** - * @readonly - */ - private SkippedClassResolver $skippedClassResolver; - /** - * @var RectorInterface[] - * @readonly - */ - private array $rectors; - /** - * @param RectorInterface[] $rectors - */ - public function __construct(SymfonyStyle $symfonyStyle, SkippedClassResolver $skippedClassResolver, array $rectors) + public function __construct(SymfonyStyle $symfonyStyle) { $this->symfonyStyle = $symfonyStyle; - $this->skippedClassResolver = $skippedClassResolver; - $this->rectors = $rectors; parent::__construct(); } protected function configure(): void { $this->setName('list-rules'); - $this->setDescription('Show loaded Rectors'); + $this->setDescription('[DEPRECATED] Show loaded Rectors'); $this->setAliases(['show-rules']); - $this->addOption(Option::OUTPUT_FORMAT, null, InputOption::VALUE_REQUIRED, 'Select output format', ConsoleOutputFormatter::NAME); - $this->addOption(Option::ONLY, null, InputOption::VALUE_REQUIRED, 'Fully qualified rule class name'); } protected function execute(InputInterface $input, OutputInterface $output): int { - $rectorClasses = $this->resolveRectorClasses(); - $skippedClasses = $this->getSkippedRectorClasses(); - $outputFormat = $input->getOption(Option::OUTPUT_FORMAT); - if ($outputFormat === 'json') { - $data = ['rectors' => $rectorClasses, 'skipped-rectors' => $skippedClasses]; - echo Json::encode($data, \true) . \PHP_EOL; - return Command::SUCCESS; - } - $this->symfonyStyle->title('Loaded Rector rules'); - $this->symfonyStyle->listing($rectorClasses); - if ($skippedClasses !== []) { - $this->symfonyStyle->title('Skipped Rector rules'); - $this->symfonyStyle->listing($skippedClasses); - } - $this->symfonyStyle->newLine(); - $this->symfonyStyle->note(sprintf('Loaded %d rules', count($rectorClasses))); - return Command::SUCCESS; - } - /** - * @return array> - */ - private function resolveRectorClasses(): array - { - $customRectors = array_filter($this->rectors, static fn(RectorInterface $rector): bool => !$rector instanceof PostRectorInterface); - $rectorClasses = array_map(static fn(RectorInterface $rector): string => get_class($rector), $customRectors); - sort($rectorClasses); - return array_unique($rectorClasses); - } - /** - * @return array - */ - private function getSkippedRectorClasses(): array - { - $skippedRectorClasses = []; - foreach ($this->skippedClassResolver->resolve() as $rectorClass => $fileList) { - // ignore specific skips - if ($fileList !== null) { - continue; - } - $skippedRectorClasses[] = $rectorClass; - } - return $skippedRectorClasses; + $this->symfonyStyle->error('The "list-rules" command is deprecated and no longer provided. Run Rector with the set or rules you desire instead.'); + return Command::FAILURE; } } From 17b7d4af0e4b49cf532d18d09f9ae1ec9ac32313 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 07:32:52 +0000 Subject: [PATCH 064/169] Updated Rector to commit 4705fb58d54a6b4b9efba964dbe274ddf5b269e9 https://github.com/rectorphp/rector-src/commit/4705fb58d54a6b4b9efba964dbe274ddf5b269e9 Fix double backslash in FunctionFirstClassCallableRector (#8398) --- .../Rector/FuncCall/FunctionFirstClassCallableRector.php | 4 +++- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rules/CodingStyle/Rector/FuncCall/FunctionFirstClassCallableRector.php b/rules/CodingStyle/Rector/FuncCall/FunctionFirstClassCallableRector.php index c1f33304167..b739a33f9ff 100644 --- a/rules/CodingStyle/Rector/FuncCall/FunctionFirstClassCallableRector.php +++ b/rules/CodingStyle/Rector/FuncCall/FunctionFirstClassCallableRector.php @@ -84,7 +84,9 @@ public function refactor(Node $node): ?FuncCall if (!$arg->value instanceof String_) { continue; } - $node->args[$key] = new Arg(new FuncCall(strpos($arg->value->value, '\\') !== \false ? new FullyQualified($arg->value->value) : new Name($arg->value->value), [new VariadicPlaceholder()]), \false, \false, [], $arg->name); + $isFullyQualified = strncmp($arg->value->value, '\\', strlen('\\')) === 0; + $callableName = ltrim($arg->value->value, '\\'); + $node->args[$key] = new Arg(new FuncCall($isFullyQualified || strpos($callableName, '\\') !== \false ? new FullyQualified($callableName) : new Name($callableName), [new VariadicPlaceholder()]), \false, \false, [], $arg->name); $hasChanged = \true; } return $hasChanged ? $node : null; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 5032a685775..d0cf9ac0f93 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 = '4eca735839a2e7aa96dcb29e28cd9ee480e0e963'; + public const PACKAGE_VERSION = '4705fb58d54a6b4b9efba964dbe274ddf5b269e9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 00:35:59'; + public const RELEASE_DATE = '2026-08-29 09:30:35'; /** * @var int */ From e6e85cb7388d7b4568968009beded5684e27d9ed Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 07:40:55 +0000 Subject: [PATCH 065/169] Updated Rector to commit 90f4663319b15d02fb64d55647194c2d06992ebe https://github.com/rectorphp/rector-src/commit/90f4663319b15d02fb64d55647194c2d06992ebe [Caching] Keep cache on rule removal and skip addition (#8397) --- src/Application/VersionResolver.php | 4 +- src/Caching/Config/FileHashComputer.php | 2 +- src/Caching/Detector/ChangedFilesDetector.php | 86 +++++++++++++++++-- .../Parameter/SimpleParameterProvider.php | 37 +++++++- 4 files changed, 113 insertions(+), 16 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index d0cf9ac0f93..cfc54f04c4f 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 = '4705fb58d54a6b4b9efba964dbe274ddf5b269e9'; + public const PACKAGE_VERSION = '90f4663319b15d02fb64d55647194c2d06992ebe'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 09:30:35'; + public const RELEASE_DATE = '2026-08-29 09:39:00'; /** * @var int */ diff --git a/src/Caching/Config/FileHashComputer.php b/src/Caching/Config/FileHashComputer.php index 8343cbf9c69..fb63cb955b0 100644 --- a/src/Caching/Config/FileHashComputer.php +++ b/src/Caching/Config/FileHashComputer.php @@ -14,7 +14,7 @@ final class FileHashComputer public function compute(string $filePath): string { $this->ensureIsPhp($filePath); - $parametersHash = SimpleParameterProvider::hash(); + $parametersHash = SimpleParameterProvider::hashForCacheInvalidation(); return sha1($filePath . $parametersHash . VersionResolver::PACKAGE_VERSION); } private function ensureIsPhp(string $filePath): void diff --git a/src/Caching/Detector/ChangedFilesDetector.php b/src/Caching/Detector/ChangedFilesDetector.php index c5db1919426..bc018e4b81a 100644 --- a/src/Caching/Detector/ChangedFilesDetector.php +++ b/src/Caching/Detector/ChangedFilesDetector.php @@ -6,6 +6,7 @@ use Rector\Caching\Cache; use Rector\Caching\Config\FileHashComputer; use Rector\Caching\Enum\CacheKey; +use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Util\FileHasher; /** * Inspired by https://github.com/symplify/symplify/pull/90/files#diff-72041b2e1029a08930e13d79d298ef11 @@ -84,8 +85,8 @@ public function clear(): void public function setFirstResolvedConfigFileInfo(string $filePath): void { // the first config is core to all → if it was changed, just invalidate it - $configHash = $this->fileHashComputer->compute($filePath); - $this->storeConfigurationDataHash($filePath, $configHash); + $configurationSnapshot = $this->createConfigurationSnapshot($filePath); + $this->storeConfigurationDataHash($filePath, $configurationSnapshot); } private function resolvePath(string $filePath): string { @@ -103,22 +104,89 @@ private function hashFile(string $filePath): string { return $this->fileHasher->hashFiles([$this->resolvePath($filePath)]); } - private function storeConfigurationDataHash(string $filePath, string $configurationHash): void + /** + * @return array{hash: string, rules: string[], sets: string[], skip: string[]} + */ + private function createConfigurationSnapshot(string $filePath): array + { + $directionalParameters = SimpleParameterProvider::provideCacheDirectionalParameters(); + return ['hash' => $this->fileHashComputer->compute($filePath), 'rules' => $this->hashEach($directionalParameters['rules']), 'sets' => $this->hashEach($directionalParameters['sets']), 'skip' => $this->hashEach($directionalParameters['skip'])]; + } + /** + * @param array{hash: string, rules: string[], sets: string[], skip: string[]} $configurationSnapshot + */ + private function storeConfigurationDataHash(string $filePath, array $configurationSnapshot): void { $key = CacheKey::CONFIGURATION_HASH_KEY . '_' . $this->getFilePathCacheKey($filePath); - $this->invalidateCacheIfConfigurationChanged($key, $configurationHash); - $this->cache->save($key, CacheKey::CONFIGURATION_HASH_KEY, $configurationHash); + $this->invalidateCacheIfConfigurationChanged($key, $configurationSnapshot); + $this->cache->save($key, CacheKey::CONFIGURATION_HASH_KEY, $configurationSnapshot); } - private function invalidateCacheIfConfigurationChanged(string $key, string $configurationHash): void + /** + * @param array{hash: string, rules: string[], sets: string[], skip: string[]} $configurationSnapshot + */ + private function invalidateCacheIfConfigurationChanged(string $key, array $configurationSnapshot): void { $oldCachedValue = $this->cache->load($key, CacheKey::CONFIGURATION_HASH_KEY); + // first run, nothing to compare against if ($oldCachedValue === null) { return; } - if ($oldCachedValue === $configurationHash) { + // legacy string format from an older Rector version → be safe and reset once + if (!is_array($oldCachedValue)) { + $this->clear(); return; } - // should be unique per getcwd() - $this->clear(); + if ($this->shouldInvalidateCache($oldCachedValue, $configurationSnapshot)) { + // should be unique per getcwd() + $this->clear(); + } + } + /** + * @param array $oldSnapshot + * @param array{hash: string, rules: string[], sets: string[], skip: string[]} $newSnapshot + */ + private function shouldInvalidateCache(array $oldSnapshot, array $newSnapshot): bool + { + // an output-affecting parameter changed (php version, import names, indent, configured rule value, ...) + if (($oldSnapshot['hash'] ?? null) !== $newSnapshot['hash']) { + return \true; + } + // a rule or set was added → files clean so far may now be refactored + if ($this->hasAddedEntry($oldSnapshot['rules'] ?? [], $newSnapshot['rules'])) { + return \true; + } + if ($this->hasAddedEntry($oldSnapshot['sets'] ?? [], $newSnapshot['sets'])) { + return \true; + } + // a skip was removed → previously skipped transformations may now apply + return $this->hasAddedEntry($newSnapshot['skip'], $oldSnapshot['skip'] ?? []); + } + /** + * Is there any entry present in $comparedEntries but missing from $baseEntries? + * A non-array on either side means an unexpected shape, treated as changed to stay safe. + * @param mixed $baseEntries + * @param mixed $comparedEntries + */ + private function hasAddedEntry($baseEntries, $comparedEntries): bool + { + if (!is_array($baseEntries) || !is_array($comparedEntries)) { + return \true; + } + $found = \false; + foreach ($comparedEntries as $comparedEntry) { + if (!in_array($comparedEntry, $baseEntries, \true)) { + $found = \true; + break; + } + } + return $found; + } + /** + * @param mixed[] $values + * @return string[] + */ + private function hashEach(array $values): array + { + return array_map(static fn($value): string => sha1(serialize($value)), array_values($values)); } } diff --git a/src/Configuration/Parameter/SimpleParameterProvider.php b/src/Configuration/Parameter/SimpleParameterProvider.php index fe514786e3f..78d9a42109b 100644 --- a/src/Configuration/Parameter/SimpleParameterProvider.php +++ b/src/Configuration/Parameter/SimpleParameterProvider.php @@ -11,6 +11,22 @@ */ final class SimpleParameterProvider { + /** + * Parameters that never change the refactored output - runtime tuning and reporting only. + * They are excluded from the cache invalidation hash, so toggling e.g. parallel or memory + * limit does not drop the whole cache. + * + * @var array + */ + private const CACHE_IGNORED_PARAMETER_NAMES = [Option::PARALLEL, Option::PARALLEL_JOB_SIZE, Option::PARALLEL_MAX_NUMBER_OF_PROCESSES, Option::PARALLEL_JOB_TIMEOUT_IN_SECONDS, Option::MEMORY_LIMIT, Option::NO_DIFFS, Option::CACHE_DIR, Option::CONTAINER_CACHE_DIRECTORY, Option::EDITOR_URL, Option::ABSOLUTE_FILE_PATH, Option::REPORT_UNUSED_SKIPS, Option::IS_RECTORCONFIG_BUILDER_RECREATED, Option::IS_RUN_NARROWED, Option::IS_CACHED_RUN, Option::SKIPPED_RECTOR_RULES, Option::SKIPPED_NON_RECTOR_CLASSES, Option::SKIPPED_START_WITH_SHORT_OPEN_TAG_FILES, Option::DEPRECATED_PHP_SETS_METHODS, Option::DEPRECATED_ATTRIBUTES_SETS_ARGS, Option::DEPRECATED_COMPOSER_BASED_ARGS, Option::LEVEL_OVERFLOWS, Option::CACHE_META_EXTENSIONS, Option::COMPOSER_BOUND_RULE_CONFIGURATIONS, Option::ROOT_STANDALONE_REGISTERED_RULES, Option::SET_REGISTERED_RULES]; + /** + * Parameters compared by direction instead of the strict hash: adding a rule/set or removing a + * skip means more work and must drop the cache, while removing a rule/set or adding a skip is + * safe and keeps it. Handled in ChangedFilesDetector, so they are excluded from the strict hash. + * + * @var array + */ + private const CACHE_DIRECTIONAL_PARAMETER_NAMES = [Option::REGISTERED_RECTOR_RULES, Option::REGISTERED_RECTOR_SETS, Option::SKIP]; /** * @var array */ @@ -100,12 +116,25 @@ public static function provideBoolParameter(string $name, ?bool $default = null) } /** * @api - * For cache invalidation + * Strict hash for cache invalidation. Ignored and directionally compared parameters are left + * out, so only a real change to an output-affecting parameter drops the cache. + */ + public static function hashForCacheInvalidation(): string + { + $strictParameters = self::$parameters; + foreach (array_merge(self::CACHE_IGNORED_PARAMETER_NAMES, self::CACHE_DIRECTIONAL_PARAMETER_NAMES) as $ignoredName) { + unset($strictParameters[$ignoredName]); + } + ksort($strictParameters); + return sha1(serialize($strictParameters)); + } + /** + * @api + * @return array{rules: mixed[], sets: mixed[], skip: mixed[]} */ - public static function hash(): string + public static function provideCacheDirectionalParameters(): array { - $parameterKeys = self::$parameters; - return sha1(serialize($parameterKeys)); + return ['rules' => self::$parameters[Option::REGISTERED_RECTOR_RULES] ?? [], 'sets' => self::$parameters[Option::REGISTERED_RECTOR_SETS] ?? [], 'skip' => self::$parameters[Option::SKIP] ?? []]; } /** * @param Option::* $name From 310611bd233bf071c4aba07c7f0cb37df99c7942 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 08:09:27 +0000 Subject: [PATCH 066/169] Updated Rector to commit 90f4663319b15d02fb64d55647194c2d06992ebe --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 9d8107490b1..1a85a2c079a 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418" + "reference": "b1a8a1495f4478d243bdcdf1e4327adc3383b38f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418", - "reference": "9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/b1a8a1495f4478d243bdcdf1e4327adc3383b38f", + "reference": "b1a8a1495f4478d243bdcdf1e4327adc3383b38f", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-26T19:40:09+00:00", + "time": "2026-08-29T08:06:35+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 25b135010b5..6613c2a381b 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9f2e1a9f4bdbd35d3b6feb2a3f0ce6089a26d418', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b1a8a1495f4478d243bdcdf1e4327adc3383b38f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 f858cc42aa6..5ca94a803d3 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 25ece8d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 9f2e1a9')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 25ece8d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main b1a8a14')); private function __construct() { } From 2639e30e0b3e1abf906de8c2334c603b6d253382 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 08:27:56 +0000 Subject: [PATCH 067/169] Updated Rector to commit 90f4663319b15d02fb64d55647194c2d06992ebe --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 1a85a2c079a..4220541533d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "b1a8a1495f4478d243bdcdf1e4327adc3383b38f" + "reference": "6ffbf70fab112ae2dc9e039a161f422718155d5b" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/b1a8a1495f4478d243bdcdf1e4327adc3383b38f", - "reference": "b1a8a1495f4478d243bdcdf1e4327adc3383b38f", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/6ffbf70fab112ae2dc9e039a161f422718155d5b", + "reference": "6ffbf70fab112ae2dc9e039a161f422718155d5b", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-29T08:06:35+00:00", + "time": "2026-08-29T08:25:06+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 6613c2a381b..b6033c13306 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b1a8a1495f4478d243bdcdf1e4327adc3383b38f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6ffbf70fab112ae2dc9e039a161f422718155d5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 5ca94a803d3..caa92bfac8e 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 25ece8d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main b1a8a14')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 25ece8d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 6ffbf70')); private function __construct() { } From 73bb44a82d668fb60f0eb8fcbd19df219d2ee806 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 08:40:18 +0000 Subject: [PATCH 068/169] Updated Rector to commit 22dd2731662218a0b08db2714953e0387b5f80a6 https://github.com/rectorphp/rector-src/commit/22dd2731662218a0b08db2714953e0387b5f80a6 [cleanup] remove unused RelatedConfigInterface, fix couple phpstan errors (#8395) --- .../AddVoidReturnTypeWhereNoReturnRector.php | 8 +++++++- src/Application/VersionResolver.php | 4 ++-- .../PhpDoc/SpacelessPhpDocTagNode.php | 2 -- .../PhpDocParser/BetterPhpDocParser.php | 3 --- .../PhpDocParser/ClassAnnotationMatcher.php | 6 +++++- .../SpacingAwareTemplateTagValueNode.php | 2 -- .../BracketsAwareIntersectionTypeNode.php | 2 -- .../Type/BracketsAwareUnionTypeNode.php | 2 -- .../Type/FullyQualifiedIdentifierTypeNode.php | 2 -- .../Type/SpacingAwareArrayTypeNode.php | 2 -- .../Type/SpacingAwareCallableTypeNode.php | 2 -- src/Config/RectorConfig.php | 7 ------- src/Console/ConsoleApplication.php | 3 --- src/Console/Style/RectorStyle.php | 3 --- .../RelatedConfigInterface.php | 12 ------------ .../Printer/BetterStandardPrinter.php | 19 ------------------- .../Rector/ClassRenamingPostRector.php | 2 -- .../DocblockNameImportingPostRector.php | 2 -- .../Rector/NameImportingPostRector.php | 2 -- src/PostRector/Rector/UseAddingPostRector.php | 2 -- src/Reflection/ClassModifierChecker.php | 8 -------- .../ValueObject/Type/AliasedObjectType.php | 2 -- .../Type/FullyQualifiedObjectType.php | 2 -- .../Type/NonExistingObjectType.php | 2 -- .../Type/ShortenedGenericObjectType.php | 2 -- .../ValueObject/Type/ShortenedObjectType.php | 3 --- .../ValueObject/Type/SimpleStaticType.php | 2 -- .../ParentClassMethodTypeOverrideGuard.php | 8 ++------ vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_real.php | 10 +++++----- vendor/composer/autoload_static.php | 9 ++++----- vendor/scoper-autoload.php | 2 +- 33 files changed, 27 insertions(+), 113 deletions(-) delete mode 100644 src/Contract/DependencyInjection/RelatedConfigInterface.php diff --git a/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php b/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php index 2a83d2ad7be..b607fa12dd8 100644 --- a/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php +++ b/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php @@ -8,6 +8,7 @@ use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Expression; +use Rector\PHPStan\ScopeFetcher; use Rector\Rector\AbstractRector; use Rector\Reflection\ClassModifierChecker; use Rector\TypeDeclaration\TypeInferer\SilentVoidResolver; @@ -111,7 +112,12 @@ private function shouldSkipClassMethod(ClassMethod $classMethod): bool if ($classMethod->isProtected()) { return !$this->classModifierChecker->isInsideFinalClass($classMethod); } - return $this->classModifierChecker->isInsideAbstractClass($classMethod) && $classMethod->getStmts() === []; + $scope = ScopeFetcher::fetch($classMethod); + if (!$scope->isInClass()) { + return \false; + } + $classReflection = $scope->getClassReflection(); + return $classReflection->isAbstract(); } private function isNotFinalAndHasExceptionOnly(ClassMethod $classMethod): bool { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index cfc54f04c4f..e085a82ffd1 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 = '90f4663319b15d02fb64d55647194c2d06992ebe'; + public const PACKAGE_VERSION = '22dd2731662218a0b08db2714953e0387b5f80a6'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 09:39:00'; + public const RELEASE_DATE = '2026-08-29 10:38:02'; /** * @var int */ diff --git a/src/BetterPhpDocParser/PhpDoc/SpacelessPhpDocTagNode.php b/src/BetterPhpDocParser/PhpDoc/SpacelessPhpDocTagNode.php index ea836f3bec7..30e5c9ce027 100644 --- a/src/BetterPhpDocParser/PhpDoc/SpacelessPhpDocTagNode.php +++ b/src/BetterPhpDocParser/PhpDoc/SpacelessPhpDocTagNode.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDoc; -use Override; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; use Stringable; /** @@ -12,7 +11,6 @@ */ final class SpacelessPhpDocTagNode extends PhpDocTagNode { - #[Override] public function __toString(): string { return $this->name . $this->value; diff --git a/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php b/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php index cec3063bdf0..58f4f8dcf52 100644 --- a/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php +++ b/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php @@ -4,7 +4,6 @@ namespace Rector\BetterPhpDocParser\PhpDocParser; use RectorPrefix202608\Nette\Utils\Strings; -use Override; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; @@ -95,7 +94,6 @@ public function parseWithNode(BetterTokenIterator $betterTokenIterator, Node $no } return $phpDocNode; } - #[Override] public function parseTag(TokenIterator $tokenIterator): PhpDocTagNode { // replace generic nodes with DoctrineAnnotations @@ -109,7 +107,6 @@ public function parseTag(TokenIterator $tokenIterator): PhpDocTagNode /** * @param BetterTokenIterator $tokenIterator */ - #[Override] public function parseTagValue(TokenIterator $tokenIterator, string $tag): PhpDocTagValueNode { $isPrecededByHorizontalWhitespace = $tokenIterator->isPrecededByHorizontalWhitespace(); diff --git a/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php b/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php index 59f605a14ee..ca0a6070581 100644 --- a/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php +++ b/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php @@ -10,6 +10,7 @@ use PHPStan\Analyser\Scope; use PHPStan\Reflection\ReflectionProvider; use Rector\CodingStyle\NodeAnalyzer\UseImportNameMatcher; +use Rector\Exception\ShouldNotHappenException; use Rector\Naming\Naming\UseImportsResolver; use Rector\NodeTypeResolver\Node\AttributeKey; /** @@ -30,7 +31,7 @@ final class ClassAnnotationMatcher */ private ReflectionProvider $reflectionProvider; /** - * @var array + * @var array */ private array $fullyQualifiedNameByHash = []; public function __construct(UseImportNameMatcher $useImportNameMatcher, UseImportsResolver $useImportsResolver, ReflectionProvider $reflectionProvider) @@ -49,6 +50,9 @@ public function resolveTagFullyQualifiedName(string $tag, Node $node): string return $this->fullyQualifiedNameByHash[$uniqueId]; } $tag = ltrim($tag, '@'); + if ($tag === '') { + throw new ShouldNotHappenException(); + } $uses = $this->useImportsResolver->resolve(); $fullyQualifiedClass = $this->resolveFullyQualifiedClass($uses, $node, $tag); $fullyQualifiedClass ??= $tag; diff --git a/src/BetterPhpDocParser/ValueObject/PhpDoc/SpacingAwareTemplateTagValueNode.php b/src/BetterPhpDocParser/ValueObject/PhpDoc/SpacingAwareTemplateTagValueNode.php index e8e1e2f67ef..d832304427f 100644 --- a/src/BetterPhpDocParser/ValueObject/PhpDoc/SpacingAwareTemplateTagValueNode.php +++ b/src/BetterPhpDocParser/ValueObject/PhpDoc/SpacingAwareTemplateTagValueNode.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\ValueObject\PhpDoc; -use Override; use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use Stringable; @@ -18,7 +17,6 @@ public function __construct(string $name, ?TypeNode $typeNode, string $descripti $this->preposition = $preposition; parent::__construct($name, $typeNode, $description); } - #[Override] public function __toString(): string { // @see https://github.com/rectorphp/rector/issues/3438 diff --git a/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareIntersectionTypeNode.php b/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareIntersectionTypeNode.php index 3948eff066f..69f68408220 100644 --- a/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareIntersectionTypeNode.php +++ b/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareIntersectionTypeNode.php @@ -3,12 +3,10 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\ValueObject\Type; -use Override; use PHPStan\PhpDocParser\Ast\Type\IntersectionTypeNode; use Stringable; final class BracketsAwareIntersectionTypeNode extends IntersectionTypeNode { - #[Override] public function __toString(): string { return implode('&', $this->types); diff --git a/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareUnionTypeNode.php b/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareUnionTypeNode.php index 464f1dabaff..713ed397724 100644 --- a/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareUnionTypeNode.php +++ b/src/BetterPhpDocParser/ValueObject/Type/BracketsAwareUnionTypeNode.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\ValueObject\Type; -use Override; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\PhpDocParser\Ast\Type\UnionTypeNode; use Stringable; @@ -24,7 +23,6 @@ public function __construct(array $types, bool $isWrappedInBrackets = \false) /** * Preserve common format */ - #[Override] public function __toString(): string { $types = []; diff --git a/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php b/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php index 3b1be029fd6..88169497efc 100644 --- a/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php +++ b/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php @@ -3,12 +3,10 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\ValueObject\Type; -use Override; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use Stringable; final class FullyQualifiedIdentifierTypeNode extends IdentifierTypeNode { - #[Override] public function __toString(): string { return '\\' . ltrim($this->name, '\\'); diff --git a/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareArrayTypeNode.php b/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareArrayTypeNode.php index 84ea9530dae..b7e4d737c01 100644 --- a/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareArrayTypeNode.php +++ b/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareArrayTypeNode.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\ValueObject\Type; -use Override; use PHPStan\PhpDocParser\Ast\Type\ArrayTypeNode; use PHPStan\PhpDocParser\Ast\Type\CallableTypeNode; use PHPStan\PhpDocParser\Ast\Type\GenericTypeNode; @@ -13,7 +12,6 @@ use Stringable; final class SpacingAwareArrayTypeNode extends ArrayTypeNode { - #[Override] public function __toString(): string { if ($this->type instanceof CallableTypeNode) { diff --git a/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareCallableTypeNode.php b/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareCallableTypeNode.php index e645209ebc5..5d9dd52da8e 100644 --- a/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareCallableTypeNode.php +++ b/src/BetterPhpDocParser/ValueObject/Type/SpacingAwareCallableTypeNode.php @@ -3,12 +3,10 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\ValueObject\Type; -use Override; use PHPStan\PhpDocParser\Ast\Type\CallableTypeNode; use Stringable; final class SpacingAwareCallableTypeNode extends CallableTypeNode { - #[Override] public function __toString(): string { // keep original (Psalm?) format, see https://github.com/rectorphp/rector/issues/2841 diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index bc84854994a..4c4ad3a062f 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -12,7 +12,6 @@ use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Configuration\RectorConfigBuilder; -use Rector\Contract\DependencyInjection\RelatedConfigInterface; use Rector\Contract\Rector\ConfigurableRectorInterface; use Rector\Contract\Rector\RectorInterface; use Rector\Enum\Config\Defaults; @@ -227,11 +226,6 @@ public function rule(string $rectorClass): void // for cache invalidation in case of change SimpleParameterProvider::addParameter(Option::REGISTERED_RECTOR_RULES, $rectorClass); } - if (is_a($rectorClass, RelatedConfigInterface::class, \true)) { - $configFile = $rectorClass::getConfigFile(); - Assert::file($configFile, sprintf('The config path "%s" in "%s::getConfigFile()" could not be found', $configFile, $rectorClass)); - $this->import($configFile); - } } /** * @param class-string $commandClass @@ -442,7 +436,6 @@ public function bound(string $abstract): bool * * @param class-string $contract */ - #[Override] public function forgetByContract(string $contract): void { parent::forgetByContract($contract); diff --git a/src/Console/ConsoleApplication.php b/src/Console/ConsoleApplication.php index 51b7cc7f9e9..5de13b07231 100644 --- a/src/Console/ConsoleApplication.php +++ b/src/Console/ConsoleApplication.php @@ -4,7 +4,6 @@ namespace Rector\Console; use RectorPrefix202608\Composer\XdebugHandler\XdebugHandler; -use Override; use Rector\Application\VersionResolver; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; @@ -40,7 +39,6 @@ public function __construct(array $commands, SymfonyStyle $symfonyStyle) // run this command, if no command name is provided $this->setDefaultCommand('process'); } - #[Override] public function doRun(InputInterface $input, OutputInterface $output): int { // support "-v" as an alias for "--version", as "verbose" option is removed @@ -78,7 +76,6 @@ public function doRun(InputInterface $input, OutputInterface $output): int } return parent::doRun($input, $output); } - #[Override] protected function getDefaultInputDefinition(): InputDefinition { $defaultInputDefinition = parent::getDefaultInputDefinition(); diff --git a/src/Console/Style/RectorStyle.php b/src/Console/Style/RectorStyle.php index 0162abc7f6d..4211536b8ce 100644 --- a/src/Console/Style/RectorStyle.php +++ b/src/Console/Style/RectorStyle.php @@ -4,7 +4,6 @@ namespace Rector\Console\Style; use RectorPrefix202608\OndraM\CiDetector\CiDetector; -use Override; use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; use RectorPrefix202608\Symfony\Component\Console\Helper\ProgressBar; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; @@ -28,7 +27,6 @@ public function __construct(InputInterface $input, OutputInterface $output) /** * @see https://github.com/phpstan/phpstan-src/commit/0993d180e5a15a17631d525909356081be59ffeb */ - #[Override] public function createProgressBar(int $max = 0): ProgressBar { $progressBar = parent::createProgressBar($max); @@ -50,7 +48,6 @@ public function createProgressBar(int $max = 0): ProgressBar $this->progressBar = $progressBar; return $progressBar; } - #[Override] public function progressAdvance(int $step = 1): void { // hide progress bar in tests diff --git a/src/Contract/DependencyInjection/RelatedConfigInterface.php b/src/Contract/DependencyInjection/RelatedConfigInterface.php deleted file mode 100644 index eef4f23dafb..00000000000 --- a/src/Contract/DependencyInjection/RelatedConfigInterface.php +++ /dev/null @@ -1,12 +0,0 @@ -unwrapFileNode($stmts); @@ -100,7 +98,6 @@ public function print($node): string /** * @param Node[] $stmts */ - #[Override] public function prettyPrintFile(array $stmts): string { // to keep indexes from 0 @@ -115,7 +112,6 @@ protected function pInterpolatedStringPart(InterpolatedStringPart $interpolatedS { return $interpolatedStringPart->value; } - #[Override] protected function p(Node $node, int $precedence = self::MAX_PRECEDENCE, int $lhsPrecedence = self::MAX_PRECEDENCE, bool $parentFormatPreserved = \false): string { $this->wrapBinaryOpWithBrackets($node); @@ -133,7 +129,6 @@ protected function pStmt_FileNode(FileNode $fileNode): string { return $this->pStmts($fileNode->stmts); } - #[Override] protected function pExpr_ArrowFunction(ArrowFunction $arrowFunction, int $precedence, int $lhsPrecedence): string { if (!$arrowFunction->hasAttribute(AttributeKey::COMMENTS)) { @@ -162,7 +157,6 @@ protected function pExpr_ArrowFunction(ArrowFunction $arrowFunction, int $preced /** * This allows to use both spaces and tabs vs. original space-only */ - #[Override] protected function setIndentLevel(int $level): void { $level = max($level, 0); @@ -172,7 +166,6 @@ protected function setIndentLevel(int $level): void /** * This allows to use both spaces and tabs vs. original space-only */ - #[Override] protected function indent(): void { $indentSize = SimpleParameterProvider::provideIntParameter(Option::INDENT_SIZE); @@ -182,7 +175,6 @@ protected function indent(): void /** * This allows to use both spaces and tabs vs. original space-only */ - #[Override] protected function outdent(): void { if ($this->getIndentCharacter() === ' ') { @@ -200,7 +192,6 @@ protected function outdent(): void * @param mixed[] $nodes * @param mixed[] $origNodes */ - #[Override] protected function pArray(array $nodes, array $origNodes, int &$pos, int $indentAdjustment, string $parentNodeClass, string $subNodeName, ?int $fixup): ?string { // reindex positions for printer @@ -218,7 +209,6 @@ protected function pArray(array $nodes, array $origNodes, int &$pos, int $indent * Do not add "()" on Expressions * @see https://github.com/rectorphp/rector/pull/401#discussion_r181487199 */ - #[Override] protected function pExpr_Yield(Yield_ $yield, int $precedence, int $lhsPrecedence): string { if (!$yield->value instanceof Expr) { @@ -231,7 +221,6 @@ protected function pExpr_Yield(Yield_ $yield, int $precedence, int $lhsPrecedenc /** * Print new lined array items when newlined_array_print is set to true */ - #[Override] protected function pExpr_Array(Array_ $array): string { if ($array->getAttribute(AttributeKey::NEWLINED_ARRAY_PRINT) === \true) { @@ -241,7 +230,6 @@ protected function pExpr_Array(Array_ $array): string } return parent::pExpr_Array($array); } - #[Override] protected function pExpr_BinaryOp_Pipe(Pipe $node, int $precedence, int $lhsPrecedence): string { return $this->pInfixOp(Pipe::class, $node->left, "\n" . $this->resolveIndentSpaces() . '|> ', $node->right, $precedence, $lhsPrecedence); @@ -249,7 +237,6 @@ protected function pExpr_BinaryOp_Pipe(Pipe $node, int $precedence, int $lhsPrec /** * Fixes escaping of regular patterns */ - #[Override] protected function pScalar_String(String_ $string): string { if ($string->getAttribute(AttributeKey::DOC_INDENTATION) === '__REMOVED__') { @@ -272,13 +259,11 @@ protected function pScalar_String(String_ $string): string /** * It remove all spaces extra to parent */ - #[Override] protected function pStmt_Declare(Declare_ $declare): string { $declareString = parent::pStmt_Declare($declare); return Strings::replace($declareString, '#\s+#'); } - #[Override] protected function pExpr_Ternary(Ternary $ternary, int $precedence, int $lhsPrecedence): string { $kind = $ternary->getAttribute(AttributeKey::KIND); @@ -291,7 +276,6 @@ protected function pExpr_Ternary(Ternary $ternary, int $precedence, int $lhsPrec /** * Used in rector-downgrade-php */ - #[Override] protected function pScalar_InterpolatedString(InterpolatedString $interpolatedString): string { $content = parent::pScalar_InterpolatedString($interpolatedString); @@ -300,7 +284,6 @@ protected function pScalar_InterpolatedString(InterpolatedString $interpolatedSt } return $content; } - #[Override] protected function pExpr_MethodCall(MethodCall $methodCall): string { if (!$methodCall->var instanceof CallLike) { @@ -319,13 +302,11 @@ protected function pExpr_MethodCall(MethodCall $methodCall): string } return $this->pDereferenceLhs($methodCall->var) . "\n" . $this->resolveIndentSpaces() . '->' . $this->pObjectProperty($methodCall->name) . '(' . $this->pMaybeMultiline($methodCall->args) . ')'; } - #[Override] protected function pInfixOp(string $class, Node $leftNode, string $operatorString, Node $rightNode, int $precedence, int $lhsPrecedence): string { $this->wrapAssign($leftNode, $rightNode); return parent::pInfixOp($class, $leftNode, $operatorString, $rightNode, $precedence, $lhsPrecedence); } - #[Override] protected function pExpr_Instanceof(Instanceof_ $instanceof, int $precedence, int $lhsPrecedence): string { $this->wrapAssign($instanceof->expr, $instanceof->class); diff --git a/src/PostRector/Rector/ClassRenamingPostRector.php b/src/PostRector/Rector/ClassRenamingPostRector.php index 912bae38db3..706f63bc07f 100644 --- a/src/PostRector/Rector/ClassRenamingPostRector.php +++ b/src/PostRector/Rector/ClassRenamingPostRector.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use Override; use PhpParser\Node; use PhpParser\NodeVisitor; use Rector\Configuration\RenamedClassesDataCollector; @@ -52,7 +51,6 @@ public function enterNode(Node $node) // nothing else to handle here, as the first node we'll hit is handled above return NodeVisitor::STOP_TRAVERSAL; } - #[Override] public function shouldTraverse(array $stmts): bool { $this->oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses(); diff --git a/src/PostRector/Rector/DocblockNameImportingPostRector.php b/src/PostRector/Rector/DocblockNameImportingPostRector.php index f1fe8071cb1..16d268192c3 100644 --- a/src/PostRector/Rector/DocblockNameImportingPostRector.php +++ b/src/PostRector/Rector/DocblockNameImportingPostRector.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use Override; use PhpParser\Node; use PhpParser\Node\Param; use PhpParser\Node\Stmt; @@ -57,7 +56,6 @@ public function enterNode(Node $node): ?\PhpParser\Node /** * @param Stmt[] $stmts */ - #[Override] public function shouldTraverse(array $stmts): bool { return $this->addUseStatementGuard->shouldTraverse($stmts, $this->getFile()->getFilePath()); diff --git a/src/PostRector/Rector/NameImportingPostRector.php b/src/PostRector/Rector/NameImportingPostRector.php index 9c97b023747..43aa98b7d4c 100644 --- a/src/PostRector/Rector/NameImportingPostRector.php +++ b/src/PostRector/Rector/NameImportingPostRector.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use Override; use PhpParser\Node; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; @@ -60,7 +59,6 @@ public function enterNode(Node $node): ?\PhpParser\Node\Name /** * @param Stmt[] $stmts */ - #[Override] public function shouldTraverse(array $stmts): bool { return $this->addUseStatementGuard->shouldTraverse($stmts, $this->getFile()->getFilePath()); diff --git a/src/PostRector/Rector/UseAddingPostRector.php b/src/PostRector/Rector/UseAddingPostRector.php index 7b2d3a7de79..10c8daf936e 100644 --- a/src/PostRector/Rector/UseAddingPostRector.php +++ b/src/PostRector/Rector/UseAddingPostRector.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use Override; use PhpParser\Node; use PhpParser\Node\Stmt; use PhpParser\NodeVisitor; @@ -23,7 +22,6 @@ public function __construct(TypeFactory $typeFactory) /** * @param Stmt[] $stmts */ - #[Override] public function shouldTraverse(array $stmts): bool { $fileNode = $stmts[0] ?? null; diff --git a/src/Reflection/ClassModifierChecker.php b/src/Reflection/ClassModifierChecker.php index a06ff7aaafb..9a5958615bb 100644 --- a/src/Reflection/ClassModifierChecker.php +++ b/src/Reflection/ClassModifierChecker.php @@ -23,12 +23,4 @@ public function isInsideFinalClass(Node $node): bool } return $classReflection->isFinalByKeyword(); } - public function isInsideAbstractClass(Node $node): bool - { - $classReflection = $this->reflectionResolver->resolveClassReflection($node); - if (!$classReflection instanceof ClassReflection) { - return \false; - } - return $classReflection->isAbstract(); - } } diff --git a/src/StaticTypeMapper/ValueObject/Type/AliasedObjectType.php b/src/StaticTypeMapper/ValueObject/Type/AliasedObjectType.php index 0972ca310cb..88fb1b39093 100644 --- a/src/StaticTypeMapper/ValueObject/Type/AliasedObjectType.php +++ b/src/StaticTypeMapper/ValueObject/Type/AliasedObjectType.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use Override; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Use_; use PhpParser\Node\UseItem; @@ -50,7 +49,6 @@ public function areShortNamesEqual($comparedObjectType): bool { return $this->getShortName() === $comparedObjectType->getShortName(); } - #[Override] public function equals(Type $type): bool { $className = ClassNameFromObjectTypeResolver::resolve($type); diff --git a/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php b/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php index a10a5358017..dc39cc08523 100644 --- a/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php +++ b/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php @@ -4,7 +4,6 @@ namespace Rector\StaticTypeMapper\ValueObject\Type; use RectorPrefix202608\Nette\Utils\Strings; -use Override; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Use_; use PhpParser\Node\UseItem; @@ -57,7 +56,6 @@ public function getShortNameLowered(): string { return strtolower($this->getShortName()); } - #[Override] public function equals(Type $type): bool { $isEqual = parent::equals($type); diff --git a/src/StaticTypeMapper/ValueObject/Type/NonExistingObjectType.php b/src/StaticTypeMapper/ValueObject/Type/NonExistingObjectType.php index e5b9ff97b75..b2b7144a6d3 100644 --- a/src/StaticTypeMapper/ValueObject/Type/NonExistingObjectType.php +++ b/src/StaticTypeMapper/ValueObject/Type/NonExistingObjectType.php @@ -3,12 +3,10 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use Override; use PHPStan\Type\ObjectType; use PHPStan\Type\Type; final class NonExistingObjectType extends ObjectType { - #[Override] public function equals(Type $type): bool { $isEqual = parent::equals($type); diff --git a/src/StaticTypeMapper/ValueObject/Type/ShortenedGenericObjectType.php b/src/StaticTypeMapper/ValueObject/Type/ShortenedGenericObjectType.php index 1892ea21134..129769b84af 100644 --- a/src/StaticTypeMapper/ValueObject/Type/ShortenedGenericObjectType.php +++ b/src/StaticTypeMapper/ValueObject/Type/ShortenedGenericObjectType.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use Override; use PHPStan\Type\Generic\GenericObjectType; use PHPStan\Type\IsSuperTypeOfResult; use PHPStan\Type\Type; @@ -25,7 +24,6 @@ public function __construct(string $shortName, array $types, string $fullyQualif $this->fullyQualifiedName = $fullyQualifiedName; parent::__construct($shortName, $types); } - #[Override] public function isSuperTypeOf(Type $type): IsSuperTypeOfResult { $genericObjectType = new GenericObjectType($this->fullyQualifiedName, $this->getTypes()); diff --git a/src/StaticTypeMapper/ValueObject/Type/ShortenedObjectType.php b/src/StaticTypeMapper/ValueObject/Type/ShortenedObjectType.php index 90bd22f45dc..30c76e7378f 100644 --- a/src/StaticTypeMapper/ValueObject/Type/ShortenedObjectType.php +++ b/src/StaticTypeMapper/ValueObject/Type/ShortenedObjectType.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use Override; use PHPStan\Type\IsSuperTypeOfResult; use PHPStan\Type\ObjectType; use PHPStan\Type\Type; @@ -25,7 +24,6 @@ public function __construct(string $shortName, string $fullyQualifiedName) $this->fullyQualifiedName = $fullyQualifiedName; parent::__construct($shortName); } - #[Override] public function isSuperTypeOf(Type $type): IsSuperTypeOfResult { $fullyQualifiedObjectType = new ObjectType($this->fullyQualifiedName); @@ -42,7 +40,6 @@ public function getFullyQualifiedName(): string { return $this->fullyQualifiedName; } - #[Override] public function equals(Type $type): bool { $isEqual = parent::equals($type); diff --git a/src/StaticTypeMapper/ValueObject/Type/SimpleStaticType.php b/src/StaticTypeMapper/ValueObject/Type/SimpleStaticType.php index ed8006cb272..87ab5526868 100644 --- a/src/StaticTypeMapper/ValueObject/Type/SimpleStaticType.php +++ b/src/StaticTypeMapper/ValueObject/Type/SimpleStaticType.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use Override; use PHPStan\Type\StaticType; final class SimpleStaticType extends StaticType { @@ -15,7 +14,6 @@ public function __construct(string $className) { $this->className = $className; } - #[Override] public function getClassName(): string { return $this->className; diff --git a/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php b/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php index 21e43fb596d..5c897f2852b 100644 --- a/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php +++ b/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php @@ -4,7 +4,6 @@ namespace Rector\VendorLocker; use PhpParser\Node; -use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\MethodReflection; @@ -55,7 +54,7 @@ public function __construct(NodeNameResolver $nodeNameResolver, ReflectionResolv * final. Adding a return or param type to such a class is a breaking change for its child * classes, so type-declaration rules must leave it untouched. Final classes are never guarded, * as they cannot be extended. - * @param \PhpParser\Node\Stmt\ClassLike|\PhpParser\Node\Stmt\ClassMethod $node + * @param \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\ClassMethod $node */ public function isTypeGuardedClass($node): bool { @@ -80,10 +79,7 @@ public function isTypeGuardedClass($node): bool } return $found; } - /** - * @param \PhpParser\Node\Stmt\ClassMethod|\PHPStan\Reflection\MethodReflection $classMethod - */ - public function hasParentClassMethod($classMethod): bool + public function hasParentClassMethod(ClassMethod $classMethod): bool { try { $parentClassMethod = $this->resolveParentClassMethod($classMethod); diff --git a/vendor/autoload.php b/vendor/autoload.php index 89299030e74..991b17e8489 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851::getLoader(); +return ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index a9e2b49fb89..f347fa19255 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1239,7 +1239,6 @@ 'Rector\\Console\\ProcessConfigureDecorator' => $baseDir . '/src/Console/ProcessConfigureDecorator.php', 'Rector\\Console\\Style\\RectorStyle' => $baseDir . '/src/Console/Style/RectorStyle.php', 'Rector\\Console\\Style\\SymfonyStyleFactory' => $baseDir . '/src/Console/Style/SymfonyStyleFactory.php', - 'Rector\\Contract\\DependencyInjection\\RelatedConfigInterface' => $baseDir . '/src/Contract/DependencyInjection/RelatedConfigInterface.php', 'Rector\\Contract\\DependencyInjection\\ResettableInterface' => $baseDir . '/src/Contract/DependencyInjection/ResettableInterface.php', 'Rector\\Contract\\PhpParser\\DecoratingNodeVisitorInterface' => $baseDir . '/src/Contract/PhpParser/DecoratingNodeVisitorInterface.php', 'Rector\\Contract\\Rector\\ConfigurableRectorInterface' => $baseDir . '/src/Contract/Rector/ConfigurableRectorInterface.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index a73a9dccae3..331086beac0 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851 +class ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitde06eaa12aa21c2f652809601c70a851::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitb2fba6614baf3084a15daa214518a340::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInitb2fba6614baf3084a15daa214518a340::$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 aecb66871fa..499a344d2f3 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 +class ComposerStaticInitb2fba6614baf3084a15daa214518a340 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -1464,7 +1464,6 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 'Rector\\Console\\ProcessConfigureDecorator' => __DIR__ . '/../..' . '/src/Console/ProcessConfigureDecorator.php', 'Rector\\Console\\Style\\RectorStyle' => __DIR__ . '/../..' . '/src/Console/Style/RectorStyle.php', 'Rector\\Console\\Style\\SymfonyStyleFactory' => __DIR__ . '/../..' . '/src/Console/Style/SymfonyStyleFactory.php', - 'Rector\\Contract\\DependencyInjection\\RelatedConfigInterface' => __DIR__ . '/../..' . '/src/Contract/DependencyInjection/RelatedConfigInterface.php', 'Rector\\Contract\\DependencyInjection\\ResettableInterface' => __DIR__ . '/../..' . '/src/Contract/DependencyInjection/ResettableInterface.php', 'Rector\\Contract\\PhpParser\\DecoratingNodeVisitorInterface' => __DIR__ . '/../..' . '/src/Contract/PhpParser/DecoratingNodeVisitorInterface.php', 'Rector\\Contract\\Rector\\ConfigurableRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/ConfigurableRectorInterface.php', @@ -3062,9 +3061,9 @@ class ComposerStaticInitde06eaa12aa21c2f652809601c70a851 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitde06eaa12aa21c2f652809601c70a851::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitb2fba6614baf3084a15daa214518a340::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitb2fba6614baf3084a15daa214518a340::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitb2fba6614baf3084a15daa214518a340::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 2ae90e31434..1d6edec6b7f 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851', 'RectorPrefix202608\ComposerAutoloaderInitde06eaa12aa21c2f652809601c70a851'); +humbug_phpscoper_expose_class('ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340', 'RectorPrefix202608\ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); From 1a23b5de4eb6ac64231dcb4ffcf17d58a8f9e339 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 08:44:35 +0000 Subject: [PATCH 069/169] Updated Rector to commit c1c61c437a696e40adc69a843c29137b538decd5 https://github.com/rectorphp/rector-src/commit/c1c61c437a696e40adc69a843c29137b538decd5 [Tests] Trim redundant Issues regression tests (#8399) --- src/Application/VersionResolver.php | 4 ++-- src/Config/RectorConfig.php | 1 - src/VendorLocker/ParentClassMethodTypeOverrideGuard.php | 2 ++ 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index e085a82ffd1..4c95a17ddd4 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 = '22dd2731662218a0b08db2714953e0387b5f80a6'; + public const PACKAGE_VERSION = 'c1c61c437a696e40adc69a843c29137b538decd5'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 10:38:02'; + public const RELEASE_DATE = '2026-08-29 08:42:30'; /** * @var int */ diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index 4c4ad3a062f..4903baec547 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -6,7 +6,6 @@ use RectorPrefix202608\Composer\Semver\Semver; use Deprecated; use RectorPrefix202608\Entropy\Container\Container; -use Override; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Composer\InstalledPackageResolver; use Rector\Configuration\Option; diff --git a/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php b/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php index 5c897f2852b..c601f288b17 100644 --- a/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php +++ b/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php @@ -3,6 +3,8 @@ declare (strict_types=1); namespace Rector\VendorLocker; +use PhpParser\Node\Stmt\Class_; +use PhpParser\Node\Stmt\Interface_; use PhpParser\Node; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Reflection\ClassReflection; From 1be3d975a8fe606ccf20ecfacb6964c3d1db0de7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 16:46:08 +0000 Subject: [PATCH 070/169] Updated Rector to commit 597fa3e1ccc1ee8c8945dfd82222cd45a4372243 https://github.com/rectorphp/rector-src/commit/597fa3e1ccc1ee8c8945dfd82222cd45a4372243 [Caching] Invalidate on configured rule value change, reuse full-run cache for --only (#8400) --- src/Application/VersionResolver.php | 4 ++-- src/Caching/Detector/ChangedFilesDetector.php | 9 +++++++-- src/Config/RectorConfig.php | 2 ++ src/Configuration/Option.php | 5 +++++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 4c95a17ddd4..896c6705fd6 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 = 'c1c61c437a696e40adc69a843c29137b538decd5'; + public const PACKAGE_VERSION = '597fa3e1ccc1ee8c8945dfd82222cd45a4372243'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 08:42:30'; + public const RELEASE_DATE = '2026-08-29 18:43:24'; /** * @var int */ diff --git a/src/Caching/Detector/ChangedFilesDetector.php b/src/Caching/Detector/ChangedFilesDetector.php index bc018e4b81a..fe691f34cb4 100644 --- a/src/Caching/Detector/ChangedFilesDetector.php +++ b/src/Caching/Detector/ChangedFilesDetector.php @@ -60,8 +60,13 @@ public function addCacheableFile(string $filePath): void } public function hasFileChanged(string $filePath): bool { - $fileInfoCacheKey = $this->getFilePathCacheKey($filePath); - $cachedValue = $this->cache->load($fileInfoCacheKey, CacheKey::FILE_HASH_KEY); + $cachedValue = $this->cache->load($this->getFilePathCacheKey($filePath), CacheKey::FILE_HASH_KEY); + // a scoped (--only) run reuses the full-run cache: a file left clean by all rules stays + // clean under a single rule too, and the content is still compared below + if ($cachedValue === null && $this->scopeSuffix !== '') { + $unscopedCacheKey = $this->fileHasher->hash($this->resolvePath($filePath)); + $cachedValue = $this->cache->load($unscopedCacheKey, CacheKey::FILE_HASH_KEY); + } if ($cachedValue !== null) { $currentFileHash = $this->hashFile($filePath); return $currentFileHash !== $cachedValue; diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index 4903baec547..9b1adc4884b 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -176,6 +176,8 @@ public function ruleWithConfiguration(string $rectorClass, array $configuration) Assert::isAOf($rectorClass, ConfigurableRectorInterface::class); // store configuration to cache $this->ruleConfigurations[$rectorClass] = array_merge($this->ruleConfigurations[$rectorClass] ?? [], $configuration); + // feed values into the cache hash, so a changed configuration invalidates the cache + SimpleParameterProvider::setParameter(Option::RULE_CONFIGURATIONS, $this->ruleConfigurations); $this->rule($rectorClass); $this->afterResolving($rectorClass, function (ConfigurableRectorInterface $configurableRector) use ($rectorClass): void { // the rule may have been re-registered without configuration since this callback was diff --git a/src/Configuration/Option.php b/src/Configuration/Option.php index e5da622ab44..23203742b2c 100644 --- a/src/Configuration/Option.php +++ b/src/Configuration/Option.php @@ -251,6 +251,11 @@ final class Option * @var string */ public const REGISTERED_RECTOR_SETS = 'registered_rector_sets'; + /** + * @internal For cache invalidation when a configurable rule value changes + * @var string + */ + public const RULE_CONFIGURATIONS = 'rule_configurations'; /** * @internal For verify RectorConfigBuilder instance recreated * @var string From 488e0ebe1fdd88fb0dec4bc99130bcf7e8cdf91c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 16:55:29 +0000 Subject: [PATCH 071/169] Updated Rector to commit 820c9dad5a88f3ba62f1e5cf15b7d3aa0cb7657f https://github.com/rectorphp/rector-src/commit/820c9dad5a88f3ba62f1e5cf15b7d3aa0cb7657f Inline symplify/easy-parallel into src/Parallel (#8401) --- src/Application/ApplicationFileProcessor.php | 6 +- src/Application/VersionResolver.php | 4 +- .../ValueObject/RectorWithLineChange.php | 2 +- src/Console/Command/WorkerCommand.php | 8 +- .../Application/ParallelFileProcessor.php | 16 +-- .../Command/WorkerCommandLineFactory.php | 4 +- .../Contract/SerializableInterface.php | 5 +- .../Parallel}/CpuCoreCountProvider.php | 5 +- .../src => src/Parallel}/Enum/Action.php | 5 +- .../src => src/Parallel}/Enum/Content.php | 5 +- .../Parallel}/Enum/ReactCommand.php | 5 +- .../src => src/Parallel}/Enum/ReactEvent.php | 5 +- .../ParallelShouldNotHappenException.php | 2 +- .../CommandFromReflectionFactory.php | 7 +- .../src => src/Parallel}/ScheduleFactory.php | 8 +- .../Parallel}/ValueObject/ParallelProcess.php | 23 ++- .../Parallel}/ValueObject/ProcessPool.php | 10 +- .../Parallel}/ValueObject/Schedule.php | 4 +- src/ValueObject/Error/SystemError.php | 2 +- src/ValueObject/Reporting/FileDiff.php | 2 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 26 ++-- vendor/composer/autoload_psr4.php | 1 - vendor/composer/autoload_real.php | 10 +- vendor/composer/autoload_static.php | 39 +++-- vendor/composer/installed.json | 61 -------- vendor/composer/installed.php | 2 +- vendor/scoper-autoload.php | 2 +- vendor/symplify/easy-parallel/LICENSE | 25 ---- vendor/symplify/easy-parallel/composer.json | 45 ------ .../symplify/easy-parallel/config/config.php | 11 -- .../CommandLine/WorkerCommandLineFactory.php | 135 ------------------ .../src/ValueObject/EasyParallelConfig.php | 15 -- 33 files changed, 87 insertions(+), 415 deletions(-) rename {vendor/symplify/easy-parallel/src => src/Parallel}/Contract/SerializableInterface.php (74%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/CpuCoreCountProvider.php (88%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/Enum/Action.php (78%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/Enum/Content.php (73%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/Enum/ReactCommand.php (74%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/Enum/ReactEvent.php (82%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/Exception/ParallelShouldNotHappenException.php (65%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/Reflection/CommandFromReflectionFactory.php (85%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/ScheduleFactory.php (79%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/ValueObject/ParallelProcess.php (86%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/ValueObject/ProcessPool.php (81%) rename {vendor/symplify/easy-parallel/src => src/Parallel}/ValueObject/Schedule.php (91%) delete mode 100644 vendor/symplify/easy-parallel/LICENSE delete mode 100644 vendor/symplify/easy-parallel/composer.json delete mode 100644 vendor/symplify/easy-parallel/config/config.php delete mode 100644 vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php delete mode 100644 vendor/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php diff --git a/src/Application/ApplicationFileProcessor.php b/src/Application/ApplicationFileProcessor.php index b5f45548526..af5aac97851 100644 --- a/src/Application/ApplicationFileProcessor.php +++ b/src/Application/ApplicationFileProcessor.php @@ -11,6 +11,9 @@ use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\FileSystem\FilesFinder; use Rector\Parallel\Application\ParallelFileProcessor; +use Rector\Parallel\CpuCoreCountProvider; +use Rector\Parallel\Exception\ParallelShouldNotHappenException; +use Rector\Parallel\ScheduleFactory; use Rector\PhpParser\Parser\ParserErrors; use Rector\Reporting\MissConfigurationReporter; use Rector\Skipper\Skipper\UsedSkipCollector; @@ -24,9 +27,6 @@ use Rector\ValueObject\Reporting\FileDiff; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202608\Symplify\EasyParallel\CpuCoreCountProvider; -use RectorPrefix202608\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202608\Symplify\EasyParallel\ScheduleFactory; use Throwable; final class ApplicationFileProcessor { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 896c6705fd6..56efca8b7f6 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 = '597fa3e1ccc1ee8c8945dfd82222cd45a4372243'; + public const PACKAGE_VERSION = '820c9dad5a88f3ba62f1e5cf15b7d3aa0cb7657f'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 18:43:24'; + public const RELEASE_DATE = '2026-08-29 18:52:49'; /** * @var int */ diff --git a/src/ChangesReporting/ValueObject/RectorWithLineChange.php b/src/ChangesReporting/ValueObject/RectorWithLineChange.php index 1e93c5d2c56..abd8f4a43c2 100644 --- a/src/ChangesReporting/ValueObject/RectorWithLineChange.php +++ b/src/ChangesReporting/ValueObject/RectorWithLineChange.php @@ -4,8 +4,8 @@ namespace Rector\ChangesReporting\ValueObject; use Rector\Contract\Rector\RectorInterface; +use Rector\Parallel\Contract\SerializableInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; -use RectorPrefix202608\Symplify\EasyParallel\Contract\SerializableInterface; use RectorPrefix202608\Webmozart\Assert\Assert; final class RectorWithLineChange implements SerializableInterface { diff --git a/src/Console/Command/WorkerCommand.php b/src/Console/Command/WorkerCommand.php index 52c3ebb27c1..79ae12fc88b 100644 --- a/src/Console/Command/WorkerCommand.php +++ b/src/Console/Command/WorkerCommand.php @@ -14,6 +14,9 @@ use Rector\Configuration\ConfigurationRuleFilter; use Rector\Configuration\Option; use Rector\Console\ProcessConfigureDecorator; +use Rector\Parallel\Enum\Action; +use Rector\Parallel\Enum\ReactCommand; +use Rector\Parallel\Enum\ReactEvent; use Rector\Parallel\ValueObject\Bridge; use Rector\StaticReflection\DynamicSourceLocatorDecorator; use Rector\Util\MemoryLimiter; @@ -22,9 +25,6 @@ use RectorPrefix202608\Symfony\Component\Console\Command\Command; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202608\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202608\Symplify\EasyParallel\Enum\ReactEvent; use Throwable; use RectorPrefix202608\Webmozart\Assert\Assert; /** @@ -128,7 +128,7 @@ private function runWorker(Encoder $encoder, Decoder $decoder, Configuration $co Assert::notEmpty($filePaths); $processResult = $this->applicationFileProcessor->processFiles($filePaths, $configuration, $preFileCallback); /** - * this invokes all listeners listening $decoder->on(...) @see \Symplify\EasyParallel\Enum\ReactEvent::DATA + * this invokes all listeners listening $decoder->on(...) @see \Rector\Parallel\Enum\ReactEvent::DATA */ $encoder->write([ReactCommand::ACTION => Action::RESULT, self::RESULT => [Bridge::FILE_DIFFS => $processResult->getFileDiffs($input->getOption(Option::OUTPUT_FORMAT) !== 'json'), Bridge::FILES_COUNT => count($filePaths), Bridge::SYSTEM_ERRORS => $processResult->getSystemErrors(), Bridge::SYSTEM_ERRORS_COUNT => count($processResult->getSystemErrors()), Bridge::TOTAL_CHANGED => $processResult->getTotalChanged(), Bridge::USED_SKIPS => $processResult->getUsedSkips()]]); }); diff --git a/src/Parallel/Application/ParallelFileProcessor.php b/src/Parallel/Application/ParallelFileProcessor.php index ac2a94c7c68..7bfb427e90c 100644 --- a/src/Parallel/Application/ParallelFileProcessor.php +++ b/src/Parallel/Application/ParallelFileProcessor.php @@ -13,19 +13,19 @@ use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Console\Command\ProcessCommand; use Rector\Parallel\Command\WorkerCommandLineFactory; +use Rector\Parallel\Enum\Action; +use Rector\Parallel\Enum\Content; +use Rector\Parallel\Enum\ReactCommand; +use Rector\Parallel\Enum\ReactEvent; use Rector\Parallel\ValueObject\Bridge; +use Rector\Parallel\ValueObject\ParallelProcess; +use Rector\Parallel\ValueObject\ProcessPool; +use Rector\Parallel\ValueObject\Schedule; use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\ProcessResult; use Rector\ValueObject\Reporting\FileDiff; use RectorPrefix202608\Symfony\Component\Console\Command\Command; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202608\Symplify\EasyParallel\Enum\Content; -use RectorPrefix202608\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202608\Symplify\EasyParallel\Enum\ReactEvent; -use RectorPrefix202608\Symplify\EasyParallel\ValueObject\ParallelProcess; -use RectorPrefix202608\Symplify\EasyParallel\ValueObject\ProcessPool; -use RectorPrefix202608\Symplify\EasyParallel\ValueObject\Schedule; use Throwable; /** * Inspired from @see @@ -50,7 +50,7 @@ final class ParallelFileProcessor */ private const MAX_CHUNKS_PER_WORKER = 8; /** - * @var \Symplify\EasyParallel\ValueObject\ProcessPool|null + * @var \Rector\Parallel\ValueObject\ProcessPool|null */ private $processPool = null; public function __construct(WorkerCommandLineFactory $workerCommandLineFactory) diff --git a/src/Parallel/Command/WorkerCommandLineFactory.php b/src/Parallel/Command/WorkerCommandLineFactory.php index f44b6b378af..9374b474428 100644 --- a/src/Parallel/Command/WorkerCommandLineFactory.php +++ b/src/Parallel/Command/WorkerCommandLineFactory.php @@ -6,10 +6,10 @@ use Rector\ChangesReporting\Output\JsonOutputFormatter; use Rector\Configuration\Option; use Rector\FileSystem\FilePathHelper; +use Rector\Parallel\Exception\ParallelShouldNotHappenException; +use Rector\Parallel\Reflection\CommandFromReflectionFactory; use RectorPrefix202608\Symfony\Component\Console\Command\Command; use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202608\Symplify\EasyParallel\Reflection\CommandFromReflectionFactory; /** * @see \Rector\Tests\Parallel\Command\WorkerCommandLineFactoryTest * @todo possibly extract to symplify/easy-parallel diff --git a/vendor/symplify/easy-parallel/src/Contract/SerializableInterface.php b/src/Parallel/Contract/SerializableInterface.php similarity index 74% rename from vendor/symplify/easy-parallel/src/Contract/SerializableInterface.php rename to src/Parallel/Contract/SerializableInterface.php index 7b4f8657e35..67f575822cb 100644 --- a/vendor/symplify/easy-parallel/src/Contract/SerializableInterface.php +++ b/src/Parallel/Contract/SerializableInterface.php @@ -1,12 +1,9 @@ onData = $onData; $this->onError = $onError; $this->process->on(ReactEvent::EXIT, function ($exitCode) use ($onExit): void { - if ($this->stdErr === null) { + $stdErr = $this->stdErr; + if ($stdErr === null) { throw new ParallelShouldNotHappenException(); } $this->cancelTimer(); - rewind($this->stdErr); + rewind($stdErr); /** @var string $streamContents */ - $streamContents = stream_get_contents($this->stdErr); + $streamContents = stream_get_contents($stdErr); $onExit($exitCode, $streamContents); - fclose($this->stdErr); + fclose($stdErr); }); } /** diff --git a/vendor/symplify/easy-parallel/src/ValueObject/ProcessPool.php b/src/Parallel/ValueObject/ProcessPool.php similarity index 81% rename from vendor/symplify/easy-parallel/src/ValueObject/ProcessPool.php rename to src/Parallel/ValueObject/ProcessPool.php index 83b99359723..be0bc962c39 100644 --- a/vendor/symplify/easy-parallel/src/ValueObject/ProcessPool.php +++ b/src/Parallel/ValueObject/ProcessPool.php @@ -1,14 +1,12 @@ tcpServer = $tcpServer; } - public function getProcess(string $identifier): ParallelProcess + public function getProcess(string $identifier): \Rector\Parallel\ValueObject\ParallelProcess { if (!\array_key_exists($identifier, $this->processes)) { throw new ParallelShouldNotHappenException(\sprintf('Process "%s" not found.', $identifier)); } return $this->processes[$identifier]; } - public function attachProcess(string $identifier, ParallelProcess $parallelProcess): void + public function attachProcess(string $identifier, \Rector\Parallel\ValueObject\ParallelProcess $parallelProcess): void { $this->processes[$identifier] = $parallelProcess; } diff --git a/vendor/symplify/easy-parallel/src/ValueObject/Schedule.php b/src/Parallel/ValueObject/Schedule.php similarity index 91% rename from vendor/symplify/easy-parallel/src/ValueObject/Schedule.php rename to src/Parallel/ValueObject/Schedule.php index 1ab28e0a6bf..b1c7b48283b 100644 --- a/vendor/symplify/easy-parallel/src/ValueObject/Schedule.php +++ b/src/Parallel/ValueObject/Schedule.php @@ -1,13 +1,11 @@ $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ClassNameResolver' => $vendorDir . '/tomasvotruba/class-leak/src/ClassNameResolver.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => $vendorDir . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => $vendorDir . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', @@ -1959,8 +1945,20 @@ 'Rector\\PHPUnit\\ValueObject\\FunctionNameWithAssertMethods' => $vendorDir . '/rector/rector-phpunit/src/ValueObject/FunctionNameWithAssertMethods.php', 'Rector\\Parallel\\Application\\ParallelFileProcessor' => $baseDir . '/src/Parallel/Application/ParallelFileProcessor.php', 'Rector\\Parallel\\Command\\WorkerCommandLineFactory' => $baseDir . '/src/Parallel/Command/WorkerCommandLineFactory.php', + 'Rector\\Parallel\\Contract\\SerializableInterface' => $baseDir . '/src/Parallel/Contract/SerializableInterface.php', + 'Rector\\Parallel\\CpuCoreCountProvider' => $baseDir . '/src/Parallel/CpuCoreCountProvider.php', + 'Rector\\Parallel\\Enum\\Action' => $baseDir . '/src/Parallel/Enum/Action.php', + 'Rector\\Parallel\\Enum\\Content' => $baseDir . '/src/Parallel/Enum/Content.php', + 'Rector\\Parallel\\Enum\\ReactCommand' => $baseDir . '/src/Parallel/Enum/ReactCommand.php', + 'Rector\\Parallel\\Enum\\ReactEvent' => $baseDir . '/src/Parallel/Enum/ReactEvent.php', + 'Rector\\Parallel\\Exception\\ParallelShouldNotHappenException' => $baseDir . '/src/Parallel/Exception/ParallelShouldNotHappenException.php', + 'Rector\\Parallel\\Reflection\\CommandFromReflectionFactory' => $baseDir . '/src/Parallel/Reflection/CommandFromReflectionFactory.php', + 'Rector\\Parallel\\ScheduleFactory' => $baseDir . '/src/Parallel/ScheduleFactory.php', 'Rector\\Parallel\\ValueObject\\Bridge' => $baseDir . '/src/Parallel/ValueObject/Bridge.php', 'Rector\\Parallel\\ValueObject\\BridgeItem' => $baseDir . '/src/Parallel/ValueObject/BridgeItem.php', + 'Rector\\Parallel\\ValueObject\\ParallelProcess' => $baseDir . '/src/Parallel/ValueObject/ParallelProcess.php', + 'Rector\\Parallel\\ValueObject\\ProcessPool' => $baseDir . '/src/Parallel/ValueObject/ProcessPool.php', + 'Rector\\Parallel\\ValueObject\\Schedule' => $baseDir . '/src/Parallel/ValueObject/Schedule.php', 'Rector\\Php52\\Rector\\Property\\VarToPublicPropertyRector' => $baseDir . '/rules/Php52/Rector/Property/VarToPublicPropertyRector.php', 'Rector\\Php52\\Rector\\Switch_\\ContinueToBreakInSwitchRector' => $baseDir . '/rules/Php52/Rector/Switch_/ContinueToBreakInSwitchRector.php', 'Rector\\Php53\\Rector\\FuncCall\\DirNameFileConstantToDirConstantRector' => $baseDir . '/rules/Php53/Rector/FuncCall/DirNameFileConstantToDirConstantRector.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 8271f82a041..dd254ec885b 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -17,7 +17,6 @@ 'Rector\\' => array($baseDir . '/rules', $baseDir . '/src', $vendorDir . '/rector/rector-downgrade-php/src', $vendorDir . '/rector/rector-downgrade-php/rules'), 'RectorPrefix202608\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => array($vendorDir . '/tomasvotruba/class-leak/src'), - 'RectorPrefix202608\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), 'RectorPrefix202608\\Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), 'RectorPrefix202608\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 331086beac0..d55c272bfec 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340 +class ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitb2fba6614baf3084a15daa214518a340::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitb2fba6614baf3084a15daa214518a340::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$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 499a344d2f3..ffa275bf8d9 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitb2fba6614baf3084a15daa214518a340 +class ComposerStaticInit9be9f5cf86597e60a41eb4492741190c { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -31,7 +31,6 @@ class ComposerStaticInitb2fba6614baf3084a15daa214518a340 'Rector\\' => 7, 'RectorPrefix202608\\Webmozart\\Assert\\' => 36, 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => 42, - 'RectorPrefix202608\\Symplify\\EasyParallel\\' => 41, 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => 45, 'RectorPrefix202608\\Symfony\\Component\\String\\' => 44, 'RectorPrefix202608\\Symfony\\Component\\Process\\' => 45, @@ -116,10 +115,6 @@ class ComposerStaticInitb2fba6614baf3084a15daa214518a340 array ( 0 => __DIR__ . '/..' . '/tomasvotruba/class-leak/src', ), - 'RectorPrefix202608\\Symplify\\EasyParallel\\' => - array ( - 0 => __DIR__ . '/..' . '/symplify/easy-parallel/src', - ), 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => array ( 0 => __DIR__ . '/..' . '/symfony/service-contracts', @@ -1119,20 +1114,6 @@ class ComposerStaticInitb2fba6614baf3084a15daa214518a340 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202608\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ClassNameResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ClassNameResolver.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', @@ -2184,8 +2165,20 @@ class ComposerStaticInitb2fba6614baf3084a15daa214518a340 'Rector\\PHPUnit\\ValueObject\\FunctionNameWithAssertMethods' => __DIR__ . '/..' . '/rector/rector-phpunit/src/ValueObject/FunctionNameWithAssertMethods.php', 'Rector\\Parallel\\Application\\ParallelFileProcessor' => __DIR__ . '/../..' . '/src/Parallel/Application/ParallelFileProcessor.php', 'Rector\\Parallel\\Command\\WorkerCommandLineFactory' => __DIR__ . '/../..' . '/src/Parallel/Command/WorkerCommandLineFactory.php', + 'Rector\\Parallel\\Contract\\SerializableInterface' => __DIR__ . '/../..' . '/src/Parallel/Contract/SerializableInterface.php', + 'Rector\\Parallel\\CpuCoreCountProvider' => __DIR__ . '/../..' . '/src/Parallel/CpuCoreCountProvider.php', + 'Rector\\Parallel\\Enum\\Action' => __DIR__ . '/../..' . '/src/Parallel/Enum/Action.php', + 'Rector\\Parallel\\Enum\\Content' => __DIR__ . '/../..' . '/src/Parallel/Enum/Content.php', + 'Rector\\Parallel\\Enum\\ReactCommand' => __DIR__ . '/../..' . '/src/Parallel/Enum/ReactCommand.php', + 'Rector\\Parallel\\Enum\\ReactEvent' => __DIR__ . '/../..' . '/src/Parallel/Enum/ReactEvent.php', + 'Rector\\Parallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/../..' . '/src/Parallel/Exception/ParallelShouldNotHappenException.php', + 'Rector\\Parallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/../..' . '/src/Parallel/Reflection/CommandFromReflectionFactory.php', + 'Rector\\Parallel\\ScheduleFactory' => __DIR__ . '/../..' . '/src/Parallel/ScheduleFactory.php', 'Rector\\Parallel\\ValueObject\\Bridge' => __DIR__ . '/../..' . '/src/Parallel/ValueObject/Bridge.php', 'Rector\\Parallel\\ValueObject\\BridgeItem' => __DIR__ . '/../..' . '/src/Parallel/ValueObject/BridgeItem.php', + 'Rector\\Parallel\\ValueObject\\ParallelProcess' => __DIR__ . '/../..' . '/src/Parallel/ValueObject/ParallelProcess.php', + 'Rector\\Parallel\\ValueObject\\ProcessPool' => __DIR__ . '/../..' . '/src/Parallel/ValueObject/ProcessPool.php', + 'Rector\\Parallel\\ValueObject\\Schedule' => __DIR__ . '/../..' . '/src/Parallel/ValueObject/Schedule.php', 'Rector\\Php52\\Rector\\Property\\VarToPublicPropertyRector' => __DIR__ . '/../..' . '/rules/Php52/Rector/Property/VarToPublicPropertyRector.php', 'Rector\\Php52\\Rector\\Switch_\\ContinueToBreakInSwitchRector' => __DIR__ . '/../..' . '/rules/Php52/Rector/Switch_/ContinueToBreakInSwitchRector.php', 'Rector\\Php53\\Rector\\FuncCall\\DirNameFileConstantToDirConstantRector' => __DIR__ . '/../..' . '/rules/Php53/Rector/FuncCall/DirNameFileConstantToDirConstantRector.php', @@ -3061,9 +3054,9 @@ class ComposerStaticInitb2fba6614baf3084a15daa214518a340 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitb2fba6614baf3084a15daa214518a340::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitb2fba6614baf3084a15daa214518a340::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitb2fba6614baf3084a15daa214518a340::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 4220541533d..4078f313b4d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -2529,67 +2529,6 @@ ], "install-path": "..\/symfony\/string" }, - { - "name": "symplify\/easy-parallel", - "version": "11.2.2", - "version_normalized": "11.2.2.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symplify\/easy-parallel.git", - "reference": "8586c18bb8efb31cd192a4e5cc94ae7813f72ed9" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symplify\/easy-parallel\/zipball\/8586c18bb8efb31cd192a4e5cc94ae7813f72ed9", - "reference": "8586c18bb8efb31cd192a4e5cc94ae7813f72ed9", - "shasum": "" - }, - "require": { - "clue\/ndjson-react": "^1.3", - "fidry\/cpu-core-counter": "^0.5.1|^1.1", - "nette\/utils": "^3.2|^4.0", - "php": ">=8.1", - "react\/child-process": "^0.6.5", - "react\/event-loop": "^1.5", - "react\/socket": "^1.15", - "symfony\/console": "^6.2|^7.0" - }, - "require-dev": { - "phpunit\/phpunit": "^10.5", - "rector\/rector": "^1.0", - "symplify\/easy-coding-standard": "^12.1", - "tomasvotruba\/class-leak": "^0.2.6" - }, - "time": "2024-02-08T04:56:53+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202608\\Symplify\\EasyParallel\\": "src" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "description": "Helper package for easier CLI project parallelization", - "support": { - "issues": "https:\/\/github.com\/symplify\/easy-parallel\/issues", - "source": "https:\/\/github.com\/symplify\/easy-parallel\/tree\/11.2.2" - }, - "funding": [ - { - "url": "https:\/\/www.paypal.me\/rectorphp", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/tomasvotruba", - "type": "github" - } - ], - "abandoned": "local parallel configuration", - "install-path": "..\/symplify\/easy-parallel" - }, { "name": "symplify\/rule-doc-generator-contracts", "version": "11.2.0", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b6033c13306..a17c981ad98 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6ffbf70fab112ae2dc9e039a161f422718155d5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6ffbf70fab112ae2dc9e039a161f422718155d5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 1d6edec6b7f..e5be694aba7 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340', 'RectorPrefix202608\ComposerAutoloaderInitb2fba6614baf3084a15daa214518a340'); +humbug_phpscoper_expose_class('ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c', 'RectorPrefix202608\ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); diff --git a/vendor/symplify/easy-parallel/LICENSE b/vendor/symplify/easy-parallel/LICENSE deleted file mode 100644 index 6f40d5d3f22..00000000000 --- a/vendor/symplify/easy-parallel/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -The MIT License ---------------- - -Copyright (c) 2016 Tomas Votruba (https://tomasvotruba.com) - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/symplify/easy-parallel/composer.json b/vendor/symplify/easy-parallel/composer.json deleted file mode 100644 index f6d86c793aa..00000000000 --- a/vendor/symplify/easy-parallel/composer.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "symplify\/easy-parallel", - "description": "Helper package for easier CLI project parallelization", - "license": "MIT", - "require": { - "php": ">=8.1", - "clue\/ndjson-react": "^1.3", - "fidry\/cpu-core-counter": "^0.5.1|^1.1", - "nette\/utils": "^3.2|^4.0", - "react\/child-process": "^0.6.5", - "react\/event-loop": "^1.5", - "react\/socket": "^1.15", - "symfony\/console": "^6.2|^7.0" - }, - "require-dev": { - "phpunit\/phpunit": "^10.5", - "rector\/rector": "^1.0", - "symplify\/easy-coding-standard": "^12.1", - "tomasvotruba\/class-leak": "^0.2.6" - }, - "autoload": { - "psr-4": { - "RectorPrefix202608\\Symplify\\EasyParallel\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "RectorPrefix202608\\Symplify\\EasyParallel\\Tests\\": "tests" - } - }, - "scripts": { - "check-cs": "vendor\/bin\/ecs check --ansi", - "fix-cs": "vendor\/bin\/ecs check --fix --ansi", - "phpstan": "vendor\/bin\/phpstan analyse --ansi", - "rector": "vendor\/bin\/rector process --dry-run --ansi" - }, - "config": { - "sort-packages": true, - "platform-check": false, - "allow-plugins": { - "cweagans\/composer-patches": true, - "phpstan\/extension-installer": true - } - } -} \ No newline at end of file diff --git a/vendor/symplify/easy-parallel/config/config.php b/vendor/symplify/easy-parallel/config/config.php deleted file mode 100644 index 311f0483c3a..00000000000 --- a/vendor/symplify/easy-parallel/config/config.php +++ /dev/null @@ -1,11 +0,0 @@ -services(); - $services->defaults()->public()->autowire(); - $services->load('Symplify\EasyParallel\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/ValueObject', __DIR__ . '/../src/Enum', __DIR__ . '/../src/Exception', __DIR__ . '/../src/Contract']); -}; diff --git a/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php b/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php deleted file mode 100644 index c33121fdb4d..00000000000 --- a/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php +++ /dev/null @@ -1,135 +0,0 @@ -commandFromReflectionFactory = new CommandFromReflectionFactory(); - } - /** - * @param class-string $mainCommandClass - */ - public function create(string $baseScript, string $mainCommandClass, string $workerCommandName, string $pathsOptionName, ?string $projectConfigFile, InputInterface $input, string $identifier, int $port): string - { - $commandArguments = array_slice($_SERVER['argv'], 1); - $args = array_merge([\PHP_BINARY, $baseScript], $commandArguments); - $mainCommand = $this->commandFromReflectionFactory->create($mainCommandClass); - if ($mainCommand->getName() === null) { - $errorMessage = sprintf('The command name for "%s" is missing', get_class($mainCommand)); - throw new ParallelShouldNotHappenException($errorMessage); - } - $mainCommandName = $mainCommand->getName(); - $processCommandArray = []; - foreach ($args as $arg) { - // skip command name - if ($arg === $mainCommandName) { - break; - } - $processCommandArray[] = escapeshellarg((string) $arg); - } - $processCommandArray[] = $workerCommandName; - if ($projectConfigFile !== null) { - $processCommandArray[] = '--config'; - $processCommandArray[] = escapeshellarg($projectConfigFile); - } - $mainCommandOptionNames = $this->getCommandOptionNames($mainCommand); - $processCommandOptions = $this->mirrorCommandOptions($input, $mainCommandOptionNames); - $processCommandArray = array_merge($processCommandArray, $processCommandOptions); - // for TCP local server - $processCommandArray[] = '--port'; - $processCommandArray[] = $port; - $processCommandArray[] = '--identifier'; - $processCommandArray[] = escapeshellarg($identifier); - /** @var string[] $paths */ - $paths = (array) $input->getArgument($pathsOptionName); - foreach ($paths as $path) { - $processCommandArray[] = escapeshellarg($path); - } - // set json output - $processCommandArray[] = '--output-format'; - $processCommandArray[] = escapeshellarg('json'); - // explicitly disable colors, breaks json_decode() otherwise - // @see https://github.com/symfony/symfony/issues/1238 - $processCommandArray[] = '--no-ansi'; - return implode(' ', $processCommandArray); - } - /** - * @return string[] - */ - private function getCommandOptionNames(Command $command): array - { - $inputDefinition = $command->getDefinition(); - $optionNames = []; - foreach ($inputDefinition->getOptions() as $inputOption) { - $optionNames[] = $inputOption->getName(); - } - return $optionNames; - } - /** - * Keeps all options that are allowed in check command options - * - * @param string[] $mainCommandOptionNames - * @return string[] - */ - private function mirrorCommandOptions(InputInterface $input, array $mainCommandOptionNames): array - { - $processCommandOptions = []; - foreach ($mainCommandOptionNames as $mainCommandOptionName) { - if ($this->shouldSkipOption($input, $mainCommandOptionName)) { - continue; - } - /** @var bool|string|null $optionValue */ - $optionValue = $input->getOption($mainCommandOptionName); - // skip clutter - if ($optionValue === null) { - continue; - } - if (is_bool($optionValue)) { - if ($optionValue) { - $processCommandOptions[] = self::OPTION_DASHES . $mainCommandOptionName; - } - continue; - } - if ($mainCommandOptionName === 'memory-limit') { - // symfony/console does not accept -1 as value without assign - $processCommandOptions[] = '--' . $mainCommandOptionName . '=' . $optionValue; - } else { - $processCommandOptions[] = self::OPTION_DASHES . $mainCommandOptionName; - $processCommandOptions[] = escapeshellarg($optionValue); - } - } - return $processCommandOptions; - } - private function shouldSkipOption(InputInterface $input, string $optionName): bool - { - if (!$input->hasOption($optionName)) { - return \true; - } - return in_array($optionName, self::EXCLUDED_OPTION_NAMES, \true); - } -} diff --git a/vendor/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php b/vendor/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php deleted file mode 100644 index 82009289379..00000000000 --- a/vendor/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php +++ /dev/null @@ -1,15 +0,0 @@ - Date: Sat, 29 Aug 2026 17:14:10 +0000 Subject: [PATCH 072/169] Updated Rector to commit b22371b99695a4c8f3de0dbe8a0d1e431ba287fd https://github.com/rectorphp/rector-src/commit/b22371b99695a4c8f3de0dbe8a0d1e431ba287fd Remove SingleServiceRegistrationRule, drop unused react/promise (#8403) --- src/Application/VersionResolver.php | 4 +- .../ParentClassMethodTypeOverrideGuard.php | 4 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 23 - vendor/composer/autoload_psr4.php | 1 - vendor/composer/autoload_real.php | 10 +- vendor/composer/autoload_static.php | 36 +- vendor/composer/installed.json | 68 - vendor/composer/installed.php | 2 +- vendor/scoper-autoload.php | 2 +- vendor/symfony/process/CHANGELOG.md | 134 -- .../process/Exception/ExceptionInterface.php | 20 - .../Exception/InvalidArgumentException.php | 20 - .../process/Exception/LogicException.php | 20 - .../Exception/ProcessFailedException.php | 39 - .../Exception/ProcessSignaledException.php | 35 - .../Exception/ProcessStartFailedException.php | 34 - .../Exception/ProcessTimedOutException.php | 54 - .../Exception/RunProcessFailedException.php | 28 - .../process/Exception/RuntimeException.php | 20 - vendor/symfony/process/ExecutableFinder.php | 82 - vendor/symfony/process/InputStream.php | 82 - vendor/symfony/process/LICENSE | 19 - .../process/Messenger/RunProcessContext.php | 42 - .../process/Messenger/RunProcessMessage.php | 67 - .../Messenger/RunProcessMessageHandler.php | 37 - .../symfony/process/PhpExecutableFinder.php | 83 - vendor/symfony/process/PhpProcess.php | 70 - vendor/symfony/process/PhpSubprocess.php | 145 -- .../symfony/process/Pipes/AbstractPipes.php | 191 --- .../symfony/process/Pipes/PipesInterface.php | 54 - vendor/symfony/process/Pipes/UnixPipes.php | 116 -- vendor/symfony/process/Pipes/WindowsPipes.php | 156 -- vendor/symfony/process/Process.php | 1512 ----------------- vendor/symfony/process/ProcessUtils.php | 60 - vendor/symfony/process/README.md | 23 - vendor/symfony/process/composer.json | 30 - 37 files changed, 16 insertions(+), 3309 deletions(-) delete mode 100644 vendor/symfony/process/CHANGELOG.md delete mode 100644 vendor/symfony/process/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/process/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/process/Exception/LogicException.php delete mode 100644 vendor/symfony/process/Exception/ProcessFailedException.php delete mode 100644 vendor/symfony/process/Exception/ProcessSignaledException.php delete mode 100644 vendor/symfony/process/Exception/ProcessStartFailedException.php delete mode 100644 vendor/symfony/process/Exception/ProcessTimedOutException.php delete mode 100644 vendor/symfony/process/Exception/RunProcessFailedException.php delete mode 100644 vendor/symfony/process/Exception/RuntimeException.php delete mode 100644 vendor/symfony/process/ExecutableFinder.php delete mode 100644 vendor/symfony/process/InputStream.php delete mode 100644 vendor/symfony/process/LICENSE delete mode 100644 vendor/symfony/process/Messenger/RunProcessContext.php delete mode 100644 vendor/symfony/process/Messenger/RunProcessMessage.php delete mode 100644 vendor/symfony/process/Messenger/RunProcessMessageHandler.php delete mode 100644 vendor/symfony/process/PhpExecutableFinder.php delete mode 100644 vendor/symfony/process/PhpProcess.php delete mode 100644 vendor/symfony/process/PhpSubprocess.php delete mode 100644 vendor/symfony/process/Pipes/AbstractPipes.php delete mode 100644 vendor/symfony/process/Pipes/PipesInterface.php delete mode 100644 vendor/symfony/process/Pipes/UnixPipes.php delete mode 100644 vendor/symfony/process/Pipes/WindowsPipes.php delete mode 100644 vendor/symfony/process/Process.php delete mode 100644 vendor/symfony/process/ProcessUtils.php delete mode 100644 vendor/symfony/process/README.md delete mode 100644 vendor/symfony/process/composer.json diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 56efca8b7f6..5b0119e7c2a 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 = '820c9dad5a88f3ba62f1e5cf15b7d3aa0cb7657f'; + public const PACKAGE_VERSION = 'b22371b99695a4c8f3de0dbe8a0d1e431ba287fd'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 18:52:49'; + public const RELEASE_DATE = '2026-08-29 19:11:59'; /** * @var int */ diff --git a/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php b/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php index c601f288b17..97d847d272c 100644 --- a/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php +++ b/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\VendorLocker; -use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\Interface_; use PhpParser\Node; +use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Interface_; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\MethodReflection; use PHPStan\Type\Type; diff --git a/vendor/autoload.php b/vendor/autoload.php index 3e6788f88e0..f820368d56d 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c::getLoader(); +return ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 56ca7744c4d..ef20b5a6b3e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -844,29 +844,6 @@ 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', 'RectorPrefix202608\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessStartFailedException' => $vendorDir . '/symfony/process/Exception/ProcessStartFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => $vendorDir . '/symfony/process/Exception/RunProcessFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => $vendorDir . '/symfony/process/Messenger/RunProcessContext.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => $vendorDir . '/symfony/process/Messenger/RunProcessMessage.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => $vendorDir . '/symfony/process/Messenger/RunProcessMessageHandler.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\PhpSubprocess' => $vendorDir . '/symfony/process/PhpSubprocess.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractString' => $vendorDir . '/symfony/string/AbstractString.php', 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractUnicodeString' => $vendorDir . '/symfony/string/AbstractUnicodeString.php', 'RectorPrefix202608\\Symfony\\Component\\String\\ByteString' => $vendorDir . '/symfony/string/ByteString.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index dd254ec885b..2efcce17a90 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -19,7 +19,6 @@ 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => array($vendorDir . '/tomasvotruba/class-leak/src'), 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), 'RectorPrefix202608\\Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), - 'RectorPrefix202608\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), 'RectorPrefix202608\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), 'RectorPrefix202608\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index d55c272bfec..059ee4b140b 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c +class ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$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 ffa275bf8d9..3ea3fc49e44 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit9be9f5cf86597e60a41eb4492741190c +class ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -33,7 +33,6 @@ class ComposerStaticInit9be9f5cf86597e60a41eb4492741190c 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => 42, 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => 45, 'RectorPrefix202608\\Symfony\\Component\\String\\' => 44, - 'RectorPrefix202608\\Symfony\\Component\\Process\\' => 45, 'RectorPrefix202608\\Symfony\\Component\\Finder\\' => 44, 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\' => 48, 'RectorPrefix202608\\Symfony\\Component\\Console\\' => 45, @@ -123,10 +122,6 @@ class ComposerStaticInit9be9f5cf86597e60a41eb4492741190c array ( 0 => __DIR__ . '/..' . '/symfony/string', ), - 'RectorPrefix202608\\Symfony\\Component\\Process\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/process', - ), 'RectorPrefix202608\\Symfony\\Component\\Finder\\' => array ( 0 => __DIR__ . '/..' . '/symfony/finder', @@ -1064,29 +1059,6 @@ class ComposerStaticInit9be9f5cf86597e60a41eb4492741190c 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', 'RectorPrefix202608\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessStartFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessStartFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/RunProcessFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessContext.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessage.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessageHandler.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\PhpSubprocess' => __DIR__ . '/..' . '/symfony/process/PhpSubprocess.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', - 'RectorPrefix202608\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractString' => __DIR__ . '/..' . '/symfony/string/AbstractString.php', 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractUnicodeString' => __DIR__ . '/..' . '/symfony/string/AbstractUnicodeString.php', 'RectorPrefix202608\\Symfony\\Component\\String\\ByteString' => __DIR__ . '/..' . '/symfony/string/ByteString.php', @@ -3054,9 +3026,9 @@ class ComposerStaticInit9be9f5cf86597e60a41eb4492741190c public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit9be9f5cf86597e60a41eb4492741190c::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 4078f313b4d..aec4dbda042 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -2277,74 +2277,6 @@ ], "install-path": "..\/symfony\/polyfill-intl-grapheme" }, - { - "name": "symfony\/process", - "version": "v8.1.5", - "version_normalized": "8.1.5.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symfony\/process.git", - "reference": "d863f5e70d7c87abb906ac11b61f83036093000b" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/d863f5e70d7c87abb906ac11b61f83036093000b", - "reference": "d863f5e70d7c87abb906ac11b61f83036093000b", - "shasum": "" - }, - "require": { - "php": ">=8.4.1" - }, - "time": "2026-08-21T17:47:34+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "\/Tests\/" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https:\/\/symfony.com", - "support": { - "source": "https:\/\/github.com\/symfony\/process\/tree\/v8.1.5" - }, - "funding": [ - { - "url": "https:\/\/symfony.com\/sponsor", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/fabpot", - "type": "github" - }, - { - "url": "https:\/\/github.com\/nicolas-grekas", - "type": "github" - }, - { - "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", - "type": "tidelift" - } - ], - "install-path": "..\/symfony\/process" - }, { "name": "symfony\/service-contracts", "version": "v3.7.1", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index a17c981ad98..b5ed7809749 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6ffbf70fab112ae2dc9e039a161f422718155d5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/process' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => 'd863f5e70d7c87abb906ac11b61f83036093000b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6ffbf70fab112ae2dc9e039a161f422718155d5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index e5be694aba7..db714fa9362 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c', 'RectorPrefix202608\ComposerAutoloaderInit9be9f5cf86597e60a41eb4492741190c'); +humbug_phpscoper_expose_class('ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148', 'RectorPrefix202608\ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); diff --git a/vendor/symfony/process/CHANGELOG.md b/vendor/symfony/process/CHANGELOG.md deleted file mode 100644 index d7308566337..00000000000 --- a/vendor/symfony/process/CHANGELOG.md +++ /dev/null @@ -1,134 +0,0 @@ -CHANGELOG -========= - - -7.3 ---- - - * Add `RunProcessMessage::fromShellCommandline()` to instantiate a Process via the fromShellCommandline method - -7.1 ---- - - * Add `Process::setIgnoredSignals()` to disable signal propagation to the child process - -6.4 ---- - - * Add `PhpSubprocess` to handle PHP subprocesses that take over the - configuration from their parent - * Add `RunProcessMessage` and `RunProcessMessageHandler` - -5.2.0 ------ - - * added `Process::setOptions()` to set `Process` specific options - * added option `create_new_console` to allow a subprocess to continue - to run after the main script exited, both on Linux and on Windows - -5.1.0 ------ - - * added `Process::getStartTime()` to retrieve the start time of the process as float - -5.0.0 ------ - - * removed `Process::inheritEnvironmentVariables()` - * removed `PhpProcess::setPhpBinary()` - * `Process` must be instantiated with a command array, use `Process::fromShellCommandline()` when the command should be parsed by the shell - * removed `Process::setCommandLine()` - -4.4.0 ------ - - * deprecated `Process::inheritEnvironmentVariables()`: env variables are always inherited. - * added `Process::getLastOutputTime()` method - -4.2.0 ------ - - * added the `Process::fromShellCommandline()` to run commands in a shell wrapper - * deprecated passing a command as string when creating a `Process` instance - * deprecated the `Process::setCommandline()` and the `PhpProcess::setPhpBinary()` methods - * added the `Process::waitUntil()` method to wait for the process only for a - specific output, then continue the normal execution of your application - -4.1.0 ------ - - * added the `Process::isTtySupported()` method that allows to check for TTY support - * made `PhpExecutableFinder` look for the `PHP_BINARY` env var when searching the php binary - * added the `ProcessSignaledException` class to properly catch signaled process errors - -4.0.0 ------ - - * environment variables will always be inherited - * added a second `array $env = []` argument to the `start()`, `run()`, - `mustRun()`, and `restart()` methods of the `Process` class - * added a second `array $env = []` argument to the `start()` method of the - `PhpProcess` class - * the `ProcessUtils::escapeArgument()` method has been removed - * the `areEnvironmentVariablesInherited()`, `getOptions()`, and `setOptions()` - methods of the `Process` class have been removed - * support for passing `proc_open()` options has been removed - * removed the `ProcessBuilder` class, use the `Process` class instead - * removed the `getEnhanceWindowsCompatibility()` and `setEnhanceWindowsCompatibility()` methods of the `Process` class - * passing a not existing working directory to the constructor of the `Symfony\Component\Process\Process` class is not - supported anymore - -3.4.0 ------ - - * deprecated the ProcessBuilder class - * deprecated calling `Process::start()` without setting a valid working directory beforehand (via `setWorkingDirectory()` or constructor) - -3.3.0 ------ - - * added command line arrays in the `Process` class - * added `$env` argument to `Process::start()`, `run()`, `mustRun()` and `restart()` methods - * deprecated the `ProcessUtils::escapeArgument()` method - * deprecated not inheriting environment variables - * deprecated configuring `proc_open()` options - * deprecated configuring enhanced Windows compatibility - * deprecated configuring enhanced sigchild compatibility - -2.5.0 ------ - - * added support for PTY mode - * added the convenience method "mustRun" - * deprecation: Process::setStdin() is deprecated in favor of Process::setInput() - * deprecation: Process::getStdin() is deprecated in favor of Process::getInput() - * deprecation: Process::setInput() and ProcessBuilder::setInput() do not accept non-scalar types - -2.4.0 ------ - - * added the ability to define an idle timeout - -2.3.0 ------ - - * added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows - * added Process::signal() - * added Process::getPid() - * added support for a TTY mode - -2.2.0 ------ - - * added ProcessBuilder::setArguments() to reset the arguments on a builder - * added a way to retrieve the standard and error output incrementally - * added Process:restart() - -2.1.0 ------ - - * added support for non-blocking processes (start(), wait(), isRunning(), stop()) - * enhanced Windows compatibility - * added Process::getExitCodeText() that returns a string representation for - the exit code returned by the process - * added ProcessBuilder diff --git a/vendor/symfony/process/Exception/ExceptionInterface.php b/vendor/symfony/process/Exception/ExceptionInterface.php deleted file mode 100644 index 441f6af81da..00000000000 --- a/vendor/symfony/process/Exception/ExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -/** - * Marker Interface for the Process Component. - * - * @author Johannes M. Schmitt - */ -interface ExceptionInterface extends \Throwable -{ -} diff --git a/vendor/symfony/process/Exception/InvalidArgumentException.php b/vendor/symfony/process/Exception/InvalidArgumentException.php deleted file mode 100644 index cefbbe89dc8..00000000000 --- a/vendor/symfony/process/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -/** - * InvalidArgumentException for the Process Component. - * - * @author Romain Neutron - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/process/Exception/LogicException.php b/vendor/symfony/process/Exception/LogicException.php deleted file mode 100644 index 5dfae9bc723..00000000000 --- a/vendor/symfony/process/Exception/LogicException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -/** - * LogicException for the Process Component. - * - * @author Romain Neutron - */ -class LogicException extends \LogicException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/process/Exception/ProcessFailedException.php b/vendor/symfony/process/Exception/ProcessFailedException.php deleted file mode 100644 index cfc9e373ca3..00000000000 --- a/vendor/symfony/process/Exception/ProcessFailedException.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * Exception for failed processes. - * - * @author Johannes M. Schmitt - */ -class ProcessFailedException extends RuntimeException -{ - private Process $process; - public function __construct(Process $process) - { - $this->process = $process; - if ($process->isSuccessful()) { - throw new InvalidArgumentException('Expected a failed process, but the given process was successful.'); - } - $error = \sprintf('The command "%s" failed.' . "\n\nExit Code: %s(%s)\n\nWorking directory: %s", $process->getCommandLine(), $process->getExitCode(), $process->getExitCodeText(), $process->getWorkingDirectory()); - if (!$process->isOutputDisabled()) { - $error .= \sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", $process->getOutput(), $process->getErrorOutput()); - } - parent::__construct($error); - $this->process = $process; - } - public function getProcess(): Process - { - return $this->process; - } -} diff --git a/vendor/symfony/process/Exception/ProcessSignaledException.php b/vendor/symfony/process/Exception/ProcessSignaledException.php deleted file mode 100644 index 6f18f5f0f70..00000000000 --- a/vendor/symfony/process/Exception/ProcessSignaledException.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * Exception that is thrown when a process has been signaled. - * - * @author Sullivan Senechal - */ -final class ProcessSignaledException extends RuntimeException -{ - private Process $process; - public function __construct(Process $process) - { - $this->process = $process; - parent::__construct(\sprintf('The process has been signaled with signal "%s".', $process->getTermSignal())); - } - public function getProcess(): Process - { - return $this->process; - } - public function getSignal(): int - { - return $this->getProcess()->getTermSignal(); - } -} diff --git a/vendor/symfony/process/Exception/ProcessStartFailedException.php b/vendor/symfony/process/Exception/ProcessStartFailedException.php deleted file mode 100644 index b4d7bee7042..00000000000 --- a/vendor/symfony/process/Exception/ProcessStartFailedException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * Exception for processes failed during startup. - */ -class ProcessStartFailedException extends ProcessFailedException -{ - private Process $process; - public function __construct(Process $process, ?string $message) - { - $this->process = $process; - if ($process->isStarted()) { - throw new InvalidArgumentException('Expected a process that failed during startup, but the given process was started successfully.'); - } - $error = \sprintf('The command "%s" failed.' . "\n\nWorking directory: %s\n\nError: %s", $process->getCommandLine(), $process->getWorkingDirectory(), $message ?? 'unknown'); - // Skip parent constructor - RuntimeException::__construct($error); - } - public function getProcess(): Process - { - return $this->process; - } -} diff --git a/vendor/symfony/process/Exception/ProcessTimedOutException.php b/vendor/symfony/process/Exception/ProcessTimedOutException.php deleted file mode 100644 index 63dcf47b5d9..00000000000 --- a/vendor/symfony/process/Exception/ProcessTimedOutException.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * Exception that is thrown when a process times out. - * - * @author Johannes M. Schmitt - */ -class ProcessTimedOutException extends RuntimeException -{ - private Process $process; - private int $timeoutType; - public const TYPE_GENERAL = 1; - public const TYPE_IDLE = 2; - public function __construct(Process $process, int $timeoutType) - { - $this->process = $process; - $this->timeoutType = $timeoutType; - parent::__construct(\sprintf('The process "%s" exceeded the timeout of %s seconds.', $process->getCommandLine(), $this->getExceededTimeout())); - } - public function getProcess(): Process - { - return $this->process; - } - public function isGeneralTimeout(): bool - { - return self::TYPE_GENERAL === $this->timeoutType; - } - public function isIdleTimeout(): bool - { - return self::TYPE_IDLE === $this->timeoutType; - } - public function getExceededTimeout(): ?float - { - switch ($this->timeoutType) { - case self::TYPE_GENERAL: - return $this->process->getTimeout(); - case self::TYPE_IDLE: - return $this->process->getIdleTimeout(); - default: - throw new \LogicException(\sprintf('Unknown timeout type "%d".', $this->timeoutType)); - } - } -} diff --git a/vendor/symfony/process/Exception/RunProcessFailedException.php b/vendor/symfony/process/Exception/RunProcessFailedException.php deleted file mode 100644 index 5d405e4f3d2..00000000000 --- a/vendor/symfony/process/Exception/RunProcessFailedException.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -use RectorPrefix202608\Symfony\Component\Process\Messenger\RunProcessContext; -/** - * @author Kevin Bond - */ -final class RunProcessFailedException extends RuntimeException -{ - /** - * @readonly - */ - public RunProcessContext $context; - public function __construct(ProcessFailedException $exception, RunProcessContext $context) - { - $this->context = $context; - parent::__construct($exception->getMessage(), $exception->getCode()); - } -} diff --git a/vendor/symfony/process/Exception/RuntimeException.php b/vendor/symfony/process/Exception/RuntimeException.php deleted file mode 100644 index 531e5dffbe3..00000000000 --- a/vendor/symfony/process/Exception/RuntimeException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Exception; - -/** - * RuntimeException for the Process Component. - * - * @author Johannes M. Schmitt - */ -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/process/ExecutableFinder.php b/vendor/symfony/process/ExecutableFinder.php deleted file mode 100644 index 949bdcbefaf..00000000000 --- a/vendor/symfony/process/ExecutableFinder.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process; - -/** - * Generic executable finder. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class ExecutableFinder -{ - private const CMD_BUILTINS = ['assoc', 'break', 'call', 'cd', 'chdir', 'cls', 'color', 'copy', 'date', 'del', 'dir', 'echo', 'endlocal', 'erase', 'exit', 'for', 'ftype', 'goto', 'help', 'if', 'label', 'md', 'mkdir', 'mklink', 'move', 'path', 'pause', 'popd', 'prompt', 'pushd', 'rd', 'rem', 'ren', 'rename', 'rmdir', 'set', 'setlocal', 'shift', 'start', 'time', 'title', 'type', 'ver', 'vol']; - private array $suffixes = []; - /** - * Replaces default suffixes of executable. - */ - public function setSuffixes(array $suffixes): void - { - $this->suffixes = $suffixes; - } - /** - * Adds new possible suffix to check for executable, including the dot (.). - * - * $finder = new ExecutableFinder(); - * $finder->addSuffix('.foo'); - */ - public function addSuffix(string $suffix): void - { - $this->suffixes[] = $suffix; - } - /** - * Finds an executable by name. - * - * @param string $name The executable name (without the extension) - * @param string|null $default The default to return if no executable is found - * @param array $extraDirs Additional dirs to check into - */ - public function find(string $name, ?string $default = null, array $extraDirs = []): ?string - { - // windows built-in commands that are present in cmd.exe should not be resolved using PATH as they do not exist as exes - if ('\\' === \DIRECTORY_SEPARATOR && \in_array(strtolower($name), self::CMD_BUILTINS, \true)) { - return $name; - } - $dirs = array_merge(explode(\PATH_SEPARATOR, (getenv('PATH') ?: getenv('Path')) ?: ''), $extraDirs); - $suffixes = $this->suffixes; - if ('\\' === \DIRECTORY_SEPARATOR) { - $pathExt = getenv('PATHEXT') ?: ''; - $suffixes = array_merge($suffixes, $pathExt ? explode(\PATH_SEPARATOR, $pathExt) : ['.exe', '.bat', '.cmd', '.com']); - } - $suffixes = '' !== pathinfo($name, \PATHINFO_EXTENSION) ? array_merge([''], $suffixes) : array_merge($suffixes, ['']); - foreach ($suffixes as $suffix) { - foreach ($dirs as $dir) { - if ('' === $dir) { - $dir = '.'; - } - if (@is_file($file = $dir . \DIRECTORY_SEPARATOR . $name . $suffix) && ('\\' === \DIRECTORY_SEPARATOR || @is_executable($file))) { - return $file; - } - if (!@is_dir($dir) && basename($dir) === $name . $suffix && @is_executable($dir)) { - return $dir; - } - } - } - if ('\\' === \DIRECTORY_SEPARATOR || !\function_exists('exec') || \strlen($name) !== strcspn($name, '/' . \DIRECTORY_SEPARATOR)) { - return $default; - } - $execResult = exec('command -v -- ' . escapeshellarg($name)); - if (($executablePath = (string) substr($execResult, 0, strpos($execResult, \PHP_EOL) ?: null)) && @is_executable($executablePath)) { - return $executablePath; - } - return $default; - } -} diff --git a/vendor/symfony/process/InputStream.php b/vendor/symfony/process/InputStream.php deleted file mode 100644 index da5604724e9..00000000000 --- a/vendor/symfony/process/InputStream.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process; - -use RectorPrefix202608\Symfony\Component\Process\Exception\RuntimeException; -/** - * Provides a way to continuously write to the input of a Process until the InputStream is closed. - * - * @author Nicolas Grekas - * - * @implements \IteratorAggregate - */ -class InputStream implements \IteratorAggregate -{ - private ?\Closure $onEmpty = null; - private array $input = []; - private bool $open = \true; - /** - * Sets a callback that is called when the write buffer becomes empty. - */ - public function onEmpty(?callable $onEmpty = null): void - { - $this->onEmpty = null !== $onEmpty ? \Closure::fromCallable($onEmpty) : null; - } - /** - * Appends an input to the write buffer. - * - * @param mixed $input The input to append as scalar, - * stream resource or \Traversable - */ - public function write($input): void - { - if (null === $input) { - return; - } - if ($this->isClosed()) { - throw new RuntimeException(\sprintf('"%s" is closed.', static::class)); - } - $this->input[] = ProcessUtils::validateInput(__METHOD__, $input); - } - /** - * Closes the write buffer. - */ - public function close(): void - { - $this->open = \false; - } - /** - * Tells whether the write buffer is closed or not. - */ - public function isClosed(): bool - { - return !$this->open; - } - public function getIterator(): \Traversable - { - $this->open = \true; - while ($this->open || $this->input) { - if (!$this->input) { - yield ''; - continue; - } - $current = array_shift($this->input); - if ($current instanceof \Iterator) { - yield from $current; - } else { - yield $current; - } - if (!$this->input && $this->open && null !== $onEmpty = $this->onEmpty) { - $this->write($onEmpty($this)); - } - } - } -} diff --git a/vendor/symfony/process/LICENSE b/vendor/symfony/process/LICENSE deleted file mode 100644 index 0138f8f0713..00000000000 --- a/vendor/symfony/process/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/symfony/process/Messenger/RunProcessContext.php b/vendor/symfony/process/Messenger/RunProcessContext.php deleted file mode 100644 index 2bbb771ee96..00000000000 --- a/vendor/symfony/process/Messenger/RunProcessContext.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Messenger; - -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * @author Kevin Bond - */ -final class RunProcessContext -{ - /** - * @readonly - */ - public RunProcessMessage $message; - /** - * @readonly - */ - public ?int $exitCode; - /** - * @readonly - */ - public ?string $output; - /** - * @readonly - */ - public ?string $errorOutput; - public function __construct(RunProcessMessage $message, Process $process) - { - $this->message = $message; - $this->exitCode = $process->getExitCode(); - $this->output = !$process->isStarted() || $process->isOutputDisabled() ? null : $process->getOutput(); - $this->errorOutput = !$process->isStarted() || $process->isOutputDisabled() ? null : $process->getErrorOutput(); - } -} diff --git a/vendor/symfony/process/Messenger/RunProcessMessage.php b/vendor/symfony/process/Messenger/RunProcessMessage.php deleted file mode 100644 index b59e041297c..00000000000 --- a/vendor/symfony/process/Messenger/RunProcessMessage.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Messenger; - -/** - * @author Kevin Bond - */ -class RunProcessMessage -{ - /** - * @readonly - */ - public array $command; - /** - * @readonly - */ - public ?string $cwd = null; - /** - * @readonly - */ - public ?array $env = null; - /** - * @readonly - * @var mixed - */ - public $input = null; - /** - * @readonly - */ - public ?float $timeout = 60.0; - public ?string $commandLine = null; - /** - * @param mixed $input - */ - public function __construct(array $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60.0) - { - $this->command = $command; - $this->cwd = $cwd; - $this->env = $env; - $this->input = $input; - $this->timeout = $timeout; - } - public function __toString(): string - { - return $this->commandLine ?? implode(' ', $this->command); - } - /** - * Create a process message instance that will instantiate a Process using the fromShellCommandline method. - * - * @see Process::fromShellCommandline - * @param mixed $input - */ - public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60): self - { - $message = new self([], $cwd, $env, $input, $timeout); - $message->commandLine = $command; - return $message; - } -} diff --git a/vendor/symfony/process/Messenger/RunProcessMessageHandler.php b/vendor/symfony/process/Messenger/RunProcessMessageHandler.php deleted file mode 100644 index c6f9045ea78..00000000000 --- a/vendor/symfony/process/Messenger/RunProcessMessageHandler.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Messenger; - -use RectorPrefix202608\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202608\Symfony\Component\Process\Exception\RunProcessFailedException; -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * @author Kevin Bond - */ -final class RunProcessMessageHandler -{ - public function __invoke(RunProcessMessage $message): RunProcessContext - { - switch ($message->commandLine) { - case null: - $process = new Process($message->command, $message->cwd, $message->env, $message->input, $message->timeout); - break; - default: - $process = Process::fromShellCommandline($message->commandLine, $message->cwd, $message->env, $message->input, $message->timeout); - break; - } - try { - return new RunProcessContext($message, $process->mustRun()); - } catch (ProcessFailedException $e) { - throw new RunProcessFailedException($e, new RunProcessContext($message, $e->getProcess())); - } - } -} diff --git a/vendor/symfony/process/PhpExecutableFinder.php b/vendor/symfony/process/PhpExecutableFinder.php deleted file mode 100644 index bdb6415537d..00000000000 --- a/vendor/symfony/process/PhpExecutableFinder.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process; - -/** - * An executable finder specifically designed for the PHP executable. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class PhpExecutableFinder -{ - private ExecutableFinder $executableFinder; - public function __construct() - { - $this->executableFinder = new ExecutableFinder(); - } - /** - * Finds The PHP executable. - * @return string|false - */ - public function find(bool $includeArgs = \true) - { - if ($php = getenv('PHP_BINARY')) { - if (!is_executable($php) && !$php = $this->executableFinder->find($php)) { - return \false; - } - if (@is_dir($php)) { - return \false; - } - return $php; - } - $args = $this->findArguments(); - $args = $includeArgs && $args ? ' ' . implode(' ', $args) : ''; - // PHP_BINARY return the current sapi executable - if (\PHP_BINARY && \in_array(\PHP_SAPI, ['cli', 'cli-server', 'phpdbg'], \true)) { - return \PHP_BINARY . $args; - } - if ($php = getenv('PHP_PATH')) { - if (!@is_executable($php) || @is_dir($php)) { - return \false; - } - return $php; - } - if ($php = getenv('PHP_PEAR_PHP_BIN')) { - if (@is_executable($php) && !@is_dir($php)) { - return $php; - } - } - if (@is_executable($php = \PHP_BINDIR . ('\\' === \DIRECTORY_SEPARATOR ? '\php.exe' : '/php')) && !@is_dir($php)) { - return $php; - } - $dirs = [\PHP_BINDIR]; - if ('\\' === \DIRECTORY_SEPARATOR) { - $dirs[] = 'C:\xampp\php\\'; - } - if ($herdPath = getenv('HERD_HOME')) { - $dirs[] = $herdPath . \DIRECTORY_SEPARATOR . 'bin'; - } - return $this->executableFinder->find('php', \false, $dirs); - } - /** - * Finds the PHP executable arguments. - * - * @return list - */ - public function findArguments(): array - { - $arguments = []; - if ('phpdbg' === \PHP_SAPI) { - $arguments[] = '-qrr'; - } - return $arguments; - } -} diff --git a/vendor/symfony/process/PhpProcess.php b/vendor/symfony/process/PhpProcess.php deleted file mode 100644 index da049983b1c..00000000000 --- a/vendor/symfony/process/PhpProcess.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process; - -use RectorPrefix202608\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202608\Symfony\Component\Process\Exception\RuntimeException; -/** - * PhpProcess runs a PHP script in an independent process. - * - * $p = new PhpProcess(''); - * $p->run(); - * print $p->getOutput()."\n"; - * - * @author Fabien Potencier - * - * @psalm-import-type EnvArray from Process - */ -class PhpProcess extends Process -{ - /** - * @param string $script The PHP script to run (as a string) - * @param string|null $cwd The working directory or null to use the working dir of the current PHP process - * @param EnvArray|null $env The environment variables or null to use the same environment as the current PHP process - * @param int $timeout The timeout in seconds - * @param array|null $php Path to the PHP binary to use with any additional arguments - */ - public function __construct(string $script, ?string $cwd = null, ?array $env = null, int $timeout = 60, ?array $php = null) - { - if (null === $php) { - $executableFinder = new PhpExecutableFinder(); - $php = $executableFinder->find(\false); - $php = \false === $php ? null : array_merge([$php], $executableFinder->findArguments()); - } - if ('phpdbg' === \PHP_SAPI) { - $file = tempnam(sys_get_temp_dir(), 'dbg'); - file_put_contents($file, $script); - register_shutdown_function('unlink', $file); - $php[] = $file; - $script = null; - } - parent::__construct($php, $cwd, $env, $script, $timeout); - } - /** - * @param mixed $input - * @return static - */ - public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) - { - throw new LogicException(\sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); - } - /** - * @param (callable('out'|'err', string):void)|null $callback - * @param EnvArray $env - */ - public function start(?callable $callback = null, array $env = []): void - { - if (null === $this->getCommandLine()) { - throw new RuntimeException('Unable to find the PHP executable.'); - } - parent::start($callback, $env); - } -} diff --git a/vendor/symfony/process/PhpSubprocess.php b/vendor/symfony/process/PhpSubprocess.php deleted file mode 100644 index 24013ef9de5..00000000000 --- a/vendor/symfony/process/PhpSubprocess.php +++ /dev/null @@ -1,145 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process; - -use RectorPrefix202608\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202608\Symfony\Component\Process\Exception\RuntimeException; -/** - * PhpSubprocess runs a PHP command as a subprocess while keeping the original php.ini settings. - * - * For this, it generates a temporary php.ini file taking over all the current settings and disables - * loading additional .ini files. Basically, your command gets prefixed using "php -n -c /tmp/temp.ini". - * - * Given your php.ini contains "memory_limit=-1" and you have a "MemoryTest.php" with the following content: - * - * run(); - * print $p->getOutput()."\n"; - * - * This will output "string(2) "-1", because the process is started with the default php.ini settings. - * - * $p = new PhpSubprocess(['MemoryTest.php'], null, null, 60, ['php', '-d', 'memory_limit=256M']); - * $p->run(); - * print $p->getOutput()."\n"; - * - * This will output "string(4) "256M"", because the process is started with the temporarily created php.ini settings. - * - * @author Yanick Witschi - * @author Partially copied and heavily inspired from composer/xdebug-handler by John Stevenson - * - * @psalm-import-type EnvArray from Process - */ -class PhpSubprocess extends Process -{ - /** - * @param array $command The command to run and its arguments listed as separate entries. They will automatically - * get prefixed with the PHP binary - * @param string|null $cwd The working directory or null to use the working dir of the current PHP process - * @param EnvArray|null $env The environment variables or null to use the same environment as the current PHP process - * @param int $timeout The timeout in seconds - * @param array|null $php Path to the PHP binary to use with any additional arguments - */ - public function __construct(array $command, ?string $cwd = null, ?array $env = null, int $timeout = 60, ?array $php = null) - { - if (null === $php) { - $executableFinder = new PhpExecutableFinder(); - $php = $executableFinder->find(\false); - $php = \false === $php ? null : array_merge([$php], $executableFinder->findArguments()); - } - if (null === $php) { - throw new RuntimeException('Unable to find PHP binary.'); - } - $tmpIni = $this->writeTmpIni($this->getAllIniFiles(), sys_get_temp_dir()); - $php = array_merge($php, ['-n', '-c', $tmpIni]); - register_shutdown_function('unlink', $tmpIni); - $command = array_merge($php, $command); - parent::__construct($command, $cwd, $env, null, $timeout); - } - /** - * @param mixed $input - * @return static - */ - public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) - { - throw new LogicException(\sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); - } - /** - * @param (callable('out'|'err', string):void)|null $callback - */ - public function start(?callable $callback = null, array $env = []): void - { - if (null === $this->getCommandLine()) { - throw new RuntimeException('Unable to find the PHP executable.'); - } - parent::start($callback, $env); - } - private function writeTmpIni(array $iniFiles, string $tmpDir): string - { - if (\false === $tmpfile = @tempnam($tmpDir, '')) { - throw new RuntimeException('Unable to create temporary ini file.'); - } - // $iniFiles has at least one item and it may be empty - if ('' === $iniFiles[0]) { - array_shift($iniFiles); - } - $content = ''; - foreach ($iniFiles as $file) { - // Check for inaccessible ini files - if (($data = @file_get_contents($file)) === \false) { - throw new RuntimeException('Unable to read ini: ' . $file); - } - // Check and remove directives after HOST and PATH sections - if (preg_match('/^\s*\[(?:PATH|HOST)\s*=/mi', $data, $matches, \PREG_OFFSET_CAPTURE)) { - $data = (string) substr($data, 0, $matches[0][1]); - } - $content .= $data . "\n"; - } - // Merge loaded settings into our ini content, if it is valid - $config = parse_ini_string($content); - $loaded = ini_get_all(null, \false); - if (\false === $config || \false === $loaded) { - throw new RuntimeException('Unable to parse ini data.'); - } - $content .= $this->mergeLoadedConfig($loaded, $config); - // Work-around for https://bugs.php.net/bug.php?id=75932 - $content .= "opcache.enable_cli=0\n"; - if (\false === @file_put_contents($tmpfile, $content)) { - throw new RuntimeException('Unable to write temporary ini file.'); - } - return $tmpfile; - } - private function mergeLoadedConfig(array $loadedConfig, array $iniConfig): string - { - $content = ''; - foreach ($loadedConfig as $name => $value) { - if (!\is_string($value)) { - continue; - } - if (!isset($iniConfig[$name]) || $iniConfig[$name] !== $value) { - // Double-quote escape each value - $content .= $name . '="' . addcslashes($value, '\"') . "\"\n"; - } - } - return $content; - } - private function getAllIniFiles(): array - { - $paths = [(string) php_ini_loaded_file()]; - if (\false !== $scanned = php_ini_scanned_files()) { - $paths = array_merge($paths, array_map('trim', explode(',', $scanned))); - } - return $paths; - } -} diff --git a/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/symfony/process/Pipes/AbstractPipes.php deleted file mode 100644 index 0467c707490..00000000000 --- a/vendor/symfony/process/Pipes/AbstractPipes.php +++ /dev/null @@ -1,191 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Pipes; - -use RectorPrefix202608\Symfony\Component\Process\Exception\InvalidArgumentException; -/** - * @author Romain Neutron - * - * @internal - */ -abstract class AbstractPipes implements PipesInterface -{ - public array $pipes = []; - private string $inputBuffer = ''; - /** @var resource|string|\Iterator */ - private $input; - private bool $blocked = \true; - private ?string $lastError = null; - /** - * @param resource|string|\Iterator $input - */ - public function __construct($input) - { - if (\is_resource($input) || $input instanceof \Iterator) { - $this->input = $input; - } else { - $this->inputBuffer = (string) $input; - } - } - public function close(): void - { - foreach ($this->pipes as $pipe) { - if (\is_resource($pipe)) { - fclose($pipe); - } - } - $this->pipes = []; - } - /** - * Returns true if a system call has been interrupted. - * - * stream_select() returns false when the `select` system call is interrupted by an incoming signal. - */ - protected function hasSystemCallBeenInterrupted(): bool - { - $lastError = $this->lastError; - $this->lastError = null; - if (null === $lastError) { - return \false; - } - if (\false !== stripos($lastError, 'interrupted system call')) { - return \true; - } - // on applications with a different locale than english, the message above is not found because - // it's translated. So we also check for the SOCKET_EINTR constant which is defined under - // Windows and UNIX-like platforms (if available on the platform). - return \defined('SOCKET_EINTR') && strncmp($lastError, 'stream_select(): Unable to select [' . \SOCKET_EINTR . ']', strlen('stream_select(): Unable to select [' . \SOCKET_EINTR . ']')) === 0; - } - /** - * Unblocks streams. - */ - protected function unblock(): void - { - if (!$this->blocked) { - return; - } - foreach ($this->pipes as $pipe) { - stream_set_blocking($pipe, \false); - } - if (\is_resource($this->input)) { - stream_set_blocking($this->input, \false); - } - $this->blocked = \false; - } - /** - * Writes input to stdin. - * - * @throws InvalidArgumentException When an input iterator yields a non supported value - */ - protected function write(): ?array - { - if (!isset($this->pipes[0])) { - return null; - } - $input = $this->input; - if ($input instanceof \Iterator) { - if (!$input->valid()) { - $input = null; - } elseif (\is_resource($input = $input->current())) { - stream_set_blocking($input, \false); - } elseif (!isset($this->inputBuffer[0])) { - if (!\is_string($input)) { - if (!\is_scalar($input)) { - throw new InvalidArgumentException(\sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input))); - } - $input = (string) $input; - } - $this->inputBuffer = $input; - $this->input->next(); - $input = null; - } else { - $input = null; - } - } - $r = $e = []; - $w = [$this->pipes[0]]; - // let's have a look if something changed in streams - if (\false === @stream_select($r, $w, $e, 0, 0)) { - return null; - } - foreach ($w as $stdin) { - if (isset($this->inputBuffer[0])) { - if (\false === $written = @fwrite($stdin, $this->inputBuffer)) { - return $this->closeBrokenInputPipe(); - } - $this->inputBuffer = (string) substr($this->inputBuffer, $written); - if (isset($this->inputBuffer[0]) && isset($this->pipes[0])) { - return [$this->pipes[0]]; - } - } - if ($input) { - while (\true) { - $data = fread($input, self::CHUNK_SIZE); - if (!isset($data[0])) { - break; - } - if (\false === $written = @fwrite($stdin, $data)) { - return $this->closeBrokenInputPipe(); - } - $data = (string) substr($data, $written); - if (isset($data[0])) { - $this->inputBuffer = $data; - return isset($this->pipes[0]) ? [$this->pipes[0]] : null; - } - } - if (feof($input)) { - if ($this->input instanceof \Iterator) { - $this->input->next(); - } else { - $this->input = null; - } - } - } - } - // no input to read on resource, buffer is empty - if (!isset($this->inputBuffer[0]) && !($this->input instanceof \Iterator ? $this->input->valid() : $this->input)) { - $this->input = null; - fclose($this->pipes[0]); - unset($this->pipes[0]); - } elseif (!$w || $this->hasReadyInput()) { - return [$this->pipes[0]]; - } - return null; - } - /** - * Tells whether the next chunk of input can be written without waiting. - */ - private function hasReadyInput(): bool - { - if (!$this->input instanceof \Iterator || !$this->input->valid()) { - return \false; - } - $input = $this->input->current(); - return \is_scalar($input) && '' !== (string) $input; - } - private function closeBrokenInputPipe(): void - { - $this->lastError = error_get_last()['message'] ?? null; - if (\is_resource($this->pipes[0] ?? null)) { - fclose($this->pipes[0]); - } - unset($this->pipes[0]); - $this->input = null; - $this->inputBuffer = ''; - } - /** - * @internal - */ - public function handleError(int $type, string $msg): void - { - $this->lastError = $msg; - } -} diff --git a/vendor/symfony/process/Pipes/PipesInterface.php b/vendor/symfony/process/Pipes/PipesInterface.php deleted file mode 100644 index 188dc4eb5a3..00000000000 --- a/vendor/symfony/process/Pipes/PipesInterface.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Pipes; - -/** - * PipesInterface manages descriptors and pipes for the use of proc_open. - * - * @author Romain Neutron - * - * @internal - */ -interface PipesInterface -{ - public const CHUNK_SIZE = 16384; - /** - * Returns an array of descriptors for the use of proc_open. - */ - public function getDescriptors(): array; - /** - * Returns an array of filenames indexed by their related stream in case these pipes use temporary files. - * - * @return string[] - */ - public function getFiles(): array; - /** - * Reads data in file handles and pipes. - * - * @param bool $blocking Whether to use blocking calls or not - * @param bool $close Whether to close pipes if they've reached EOF - * - * @return string[] An array of read data indexed by their fd - */ - public function readAndWrite(bool $blocking, bool $close = \false): array; - /** - * Returns if the current state has open file handles or pipes. - */ - public function areOpen(): bool; - /** - * Returns if pipes are able to read output. - */ - public function haveReadSupport(): bool; - /** - * Closes file handles and pipes. - */ - public function close(): void; -} diff --git a/vendor/symfony/process/Pipes/UnixPipes.php b/vendor/symfony/process/Pipes/UnixPipes.php deleted file mode 100644 index 484afecf756..00000000000 --- a/vendor/symfony/process/Pipes/UnixPipes.php +++ /dev/null @@ -1,116 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Pipes; - -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * UnixPipes implementation uses unix pipes as handles. - * - * @author Romain Neutron - * - * @internal - */ -class UnixPipes extends AbstractPipes -{ - private ?bool $ttyMode; - private bool $ptyMode; - private bool $haveReadSupport; - /** - * @param mixed $input - */ - public function __construct(?bool $ttyMode, bool $ptyMode, $input, bool $haveReadSupport) - { - $this->ttyMode = $ttyMode; - $this->ptyMode = $ptyMode; - $this->haveReadSupport = $haveReadSupport; - parent::__construct($input); - } - public function __serialize(): array - { - throw new \BadMethodCallException('Cannot serialize ' . __CLASS__); - } - public function __unserialize(array $data): void - { - throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); - } - public function __destruct() - { - $this->close(); - } - public function getDescriptors(): array - { - if (!$this->haveReadSupport) { - $nullstream = fopen('/dev/null', 'c'); - return [['pipe', 'r'], $nullstream, $nullstream]; - } - if ($this->ttyMode) { - return [['file', '/dev/tty', 'r'], ['file', '/dev/tty', 'w'], ['file', '/dev/tty', 'w']]; - } - if ($this->ptyMode && Process::isPtySupported()) { - return [['pty'], ['pty'], ['pipe', 'w']]; - } - return [ - ['pipe', 'r'], - ['pipe', 'w'], - // stdout - ['pipe', 'w'], - ]; - } - public function getFiles(): array - { - return []; - } - public function readAndWrite(bool $blocking, bool $close = \false): array - { - $this->unblock(); - $w = $this->write(); - $read = $e = []; - $r = $this->pipes; - unset($r[0]); - // let's have a look if something changed in streams - set_error_handler(\Closure::fromCallable([$this, 'handleError'])); - if (($r || $w) && \false === stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1000000.0 : 0)) { - restore_error_handler(); - // if a system call has been interrupted, forget about it, let's try again - // otherwise, an error occurred, let's reset pipes - if (!$this->hasSystemCallBeenInterrupted()) { - $this->pipes = []; - } - return $read; - } - restore_error_handler(); - foreach ($r as $pipe) { - // prior PHP 5.4 the array passed to stream_select is modified and - // lose key association, we have to find back the key - $read[$type = array_search($pipe, $this->pipes, \true)] = ''; - do { - $data = @fread($pipe, self::CHUNK_SIZE); - $read[$type] .= $data; - } while (isset($data[0]) && ($close || isset($data[self::CHUNK_SIZE - 1]))); - if (!isset($read[$type][0])) { - unset($read[$type]); - } - if ($close && feof($pipe)) { - fclose($pipe); - unset($this->pipes[$type]); - } - } - return $read; - } - public function haveReadSupport(): bool - { - return $this->haveReadSupport; - } - public function areOpen(): bool - { - return (bool) $this->pipes; - } -} diff --git a/vendor/symfony/process/Pipes/WindowsPipes.php b/vendor/symfony/process/Pipes/WindowsPipes.php deleted file mode 100644 index a3f5151aa9d..00000000000 --- a/vendor/symfony/process/Pipes/WindowsPipes.php +++ /dev/null @@ -1,156 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process\Pipes; - -use RectorPrefix202608\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202608\Symfony\Component\Process\Process; -/** - * WindowsPipes implementation uses temporary files as handles. - * - * @see https://bugs.php.net/51800 - * @see https://bugs.php.net/65650 - * - * @author Romain Neutron - * - * @internal - */ -class WindowsPipes extends AbstractPipes -{ - private bool $haveReadSupport; - private array $files = []; - private array $fileHandles = []; - private array $lockHandles = []; - private array $readBytes = [Process::STDOUT => 0, Process::STDERR => 0]; - /** - * @param mixed $input - */ - public function __construct($input, bool $haveReadSupport) - { - $this->haveReadSupport = $haveReadSupport; - if ($this->haveReadSupport) { - // Fix for PHP bug #51800: reading from STDOUT pipe hangs forever on Windows if the output is too big. - // Workaround for this problem is to use temporary files instead of pipes on Windows platform. - // - // @see https://bugs.php.net/51800 - $pipes = [Process::STDOUT => Process::OUT, Process::STDERR => Process::ERR]; - $tmpDir = sys_get_temp_dir(); - $lastError = 'unknown reason'; - set_error_handler(static function ($type, $msg) use (&$lastError) { - $lastError = $msg; - }); - for ($i = 0;; ++$i) { - foreach ($pipes as $pipe => $name) { - $file = \sprintf('%s\sf_proc_%02X.%s', $tmpDir, $i, $name); - if (!$h = fopen($file . '.lock', 'w')) { - if (file_exists($file . '.lock')) { - continue 2; - } - restore_error_handler(); - throw new RuntimeException('A temporary file could not be opened to write the process output: ' . $lastError); - } - if (!flock($h, \LOCK_EX | \LOCK_NB)) { - continue 2; - } - if (isset($this->lockHandles[$pipe])) { - flock($this->lockHandles[$pipe], \LOCK_UN); - fclose($this->lockHandles[$pipe]); - } - $this->lockHandles[$pipe] = $h; - if (!($h = fopen($file, 'w')) || !fclose($h) || !$h = fopen($file, 'r')) { - flock($this->lockHandles[$pipe], \LOCK_UN); - fclose($this->lockHandles[$pipe]); - unset($this->lockHandles[$pipe]); - continue 2; - } - $this->fileHandles[$pipe] = $h; - $this->files[$pipe] = $file; - } - break; - } - restore_error_handler(); - } - parent::__construct($input); - } - public function __serialize(): array - { - throw new \BadMethodCallException('Cannot serialize ' . __CLASS__); - } - public function __unserialize(array $data): void - { - throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); - } - public function __destruct() - { - $this->close(); - } - public function getDescriptors(): array - { - if (!$this->haveReadSupport) { - $nullstream = fopen('NUL', 'c'); - return [['pipe', 'r'], $nullstream, $nullstream]; - } - // We're not using pipe on Windows platform as it hangs (https://bugs.php.net/51800) - // We're not using file handles as it can produce corrupted output https://bugs.php.net/65650 - // So we redirect output within the commandline and pass the nul device to the process - return [['pipe', 'r'], ['file', 'NUL', 'w'], ['file', 'NUL', 'w']]; - } - public function getFiles(): array - { - return $this->files; - } - public function readAndWrite(bool $blocking, bool $close = \false): array - { - $this->unblock(); - $w = $this->write(); - $read = $r = $e = []; - if ($blocking) { - if ($w) { - @stream_select($r, $w, $e, 0, Process::TIMEOUT_PRECISION * 1000000.0); - } elseif ($this->fileHandles) { - usleep((int) (Process::TIMEOUT_PRECISION * 1000000.0)); - } - } - foreach ($this->fileHandles as $type => $fileHandle) { - $data = stream_get_contents($fileHandle, -1, $this->readBytes[$type]); - if (isset($data[0])) { - $this->readBytes[$type] += \strlen($data); - $read[$type] = $data; - } - if ($close) { - ftruncate($fileHandle, 0); - fclose($fileHandle); - flock($this->lockHandles[$type], \LOCK_UN); - fclose($this->lockHandles[$type]); - unset($this->fileHandles[$type], $this->lockHandles[$type]); - } - } - return $read; - } - public function haveReadSupport(): bool - { - return $this->haveReadSupport; - } - public function areOpen(): bool - { - return $this->pipes && $this->fileHandles; - } - public function close(): void - { - parent::close(); - foreach ($this->fileHandles as $type => $handle) { - ftruncate($handle, 0); - fclose($handle); - flock($this->lockHandles[$type], \LOCK_UN); - fclose($this->lockHandles[$type]); - } - $this->fileHandles = $this->lockHandles = []; - } -} diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php deleted file mode 100644 index 3aa6a171592..00000000000 --- a/vendor/symfony/process/Process.php +++ /dev/null @@ -1,1512 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process; - -use RectorPrefix202608\Symfony\Component\Process\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202608\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202608\Symfony\Component\Process\Exception\ProcessSignaledException; -use RectorPrefix202608\Symfony\Component\Process\Exception\ProcessStartFailedException; -use RectorPrefix202608\Symfony\Component\Process\Exception\ProcessTimedOutException; -use RectorPrefix202608\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202608\Symfony\Component\Process\Pipes\UnixPipes; -use RectorPrefix202608\Symfony\Component\Process\Pipes\WindowsPipes; -/** - * Process is a thin wrapper around proc_* functions to easily - * start independent PHP processes. - * - * @author Fabien Potencier - * @author Romain Neutron - * - * @implements \IteratorAggregate - * - * @psalm-type EnvArray = array - */ -class Process implements \IteratorAggregate -{ - public const ERR = 'err'; - public const OUT = 'out'; - public const STATUS_READY = 'ready'; - public const STATUS_STARTED = 'started'; - public const STATUS_TERMINATED = 'terminated'; - public const STDIN = 0; - public const STDOUT = 1; - public const STDERR = 2; - // Timeout Precision in seconds. - public const TIMEOUT_PRECISION = 0.2; - public const ITER_NON_BLOCKING = 1; - // By default, iterating over outputs is a blocking call, use this flag to make it non-blocking - public const ITER_KEEP_OUTPUT = 2; - // By default, outputs are cleared while iterating, use this flag to keep them in memory - public const ITER_SKIP_OUT = 4; - // Use this flag to skip STDOUT while iterating - public const ITER_SKIP_ERR = 8; - // Use this flag to skip STDERR while iterating - /** - * Maximum number of UTF-16 code units allowed in the Windows environment block. - * - * The Win32 CreateProcess API encodes env vars as KEY=VALUE\0 in UTF-16LE, - * terminated by an extra \0. Exceeding this limit causes proc_open() to hang - * silently rather than returning false. - * - * @see https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa - */ - private const WINDOWS_ENV_BLOCK_MAX_LENGTH = 32767; - /** @var \Closure('out'|'err', string):bool|null */ - private ?\Closure $callback = null; - /** @var string[]|string */ - private $commandline; - private ?string $cwd; - /** @var EnvArray */ - private array $env = []; - /** @var resource|string|\Iterator|null */ - private $input; - private ?float $starttime = null; - private ?float $lastOutputTime = null; - private ?float $timeout = null; - private ?float $idleTimeout = null; - private ?int $exitcode = null; - private array $fallbackStatus = []; - private array $processInformation; - private bool $outputDisabled = \false; - /** @var resource */ - private $stdout; - /** @var resource */ - private $stderr; - /** @var resource|null */ - private $process; - private string $status = self::STATUS_READY; - private int $incrementalOutputOffset = 0; - private int $incrementalErrorOutputOffset = 0; - private bool $tty = \false; - private bool $pty; - private array $options = ['suppress_errors' => \true, 'bypass_shell' => \true]; - private array $ignoredSignals = []; - /** - * @var \Symfony\Component\Process\Pipes\WindowsPipes|\Symfony\Component\Process\Pipes\UnixPipes - */ - private $processPipes; - private ?int $latestSignal = null; - private static ?bool $sigchild = null; - private static array $executables = []; - /** - * Exit codes translation table. - * - * User-defined errors must use exit codes in the 64-113 range. - */ - public static array $exitCodes = [ - 0 => 'OK', - 1 => 'General error', - 2 => 'Misuse of shell builtins', - 126 => 'Invoked command cannot execute', - 127 => 'Command not found', - 128 => 'Invalid exit argument', - // signals - 129 => 'Hangup', - 130 => 'Interrupt', - 131 => 'Quit and dump core', - 132 => 'Illegal instruction', - 133 => 'Trace/breakpoint trap', - 134 => 'Process aborted', - 135 => 'Bus error: "access to undefined portion of memory object"', - 136 => 'Floating point exception: "erroneous arithmetic operation"', - 137 => 'Kill (terminate immediately)', - 138 => 'User-defined 1', - 139 => 'Segmentation violation', - 140 => 'User-defined 2', - 141 => 'Write to pipe with no one reading', - 142 => 'Signal raised by alarm', - 143 => 'Termination (request to terminate)', - // 144 - not defined - 145 => 'Child process terminated, stopped (or continued*)', - 146 => 'Continue if stopped', - 147 => 'Stop executing temporarily', - 148 => 'Terminal stop signal', - 149 => 'Background process attempting to read from tty ("in")', - 150 => 'Background process attempting to write to tty ("out")', - 151 => 'Urgent data available on socket', - 152 => 'CPU time limit exceeded', - 153 => 'File size limit exceeded', - 154 => 'Signal raised by timer counting virtual time: "virtual timer expired"', - 155 => 'Profiling timer expired', - // 156 - not defined - 157 => 'Pollable event', - // 158 - not defined - 159 => 'Bad syscall', - ]; - /** - * @param string[] $command The command to run and its arguments listed as separate entries - * @param string|null $cwd The working directory or null to use the working dir of the current PHP process - * @param EnvArray|null $env The environment variables or null to use the same environment as the current PHP process - * @param mixed $input The input as stream resource, scalar or \Traversable, or null for no input - * @param int|float|null $timeout The timeout in seconds or null to disable - * - * @throws LogicException When proc_open is not installed - */ - public function __construct(array $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) - { - if (!\function_exists('proc_open') && !\function_exists('RectorPrefix202608\proc_open')) { - throw new LogicException('The Process class relies on proc_open, which is not available on your PHP installation.'); - } - $this->commandline = $command; - $this->cwd = $cwd; - // on Windows, if the cwd changed via chdir(), proc_open defaults to the dir where PHP was started - // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected - // @see : https://bugs.php.net/51800 - // @see : https://bugs.php.net/50524 - if (null === $this->cwd && (\defined('ZEND_THREAD_SAFE') || '\\' === \DIRECTORY_SEPARATOR)) { - $this->cwd = getcwd(); - } - if (null !== $env) { - $this->setEnv($env); - } - $this->setInput($input); - $this->setTimeout($timeout); - $this->pty = \false; - } - /** - * Creates a Process instance as a command-line to be run in a shell wrapper. - * - * Command-lines are parsed by the shell of your OS (/bin/sh on Unix-like, cmd.exe on Windows.) - * This allows using e.g. pipes or conditional execution. In this mode, signals are sent to the - * shell wrapper and not to your commands. - * - * In order to inject dynamic values into command-lines, we strongly recommend using placeholders. - * This will save escaping values, which is not portable nor secure anyway: - * - * $process = Process::fromShellCommandline('my_command "${:MY_VAR}"'); - * $process->run(null, ['MY_VAR' => $theValue]); - * - * @param string $command The command line to pass to the shell of the OS - * @param string|null $cwd The working directory or null to use the working dir of the current PHP process - * @param EnvArray|null $env The environment variables or null to use the same environment as the current PHP process - * @param mixed $input The input as stream resource, scalar or \Traversable, or null for no input - * @param int|float|null $timeout The timeout in seconds or null to disable - * - * @throws LogicException When proc_open is not installed - * @return static - */ - public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) - { - $process = new static([], $cwd, $env, $input, $timeout); - $process->commandline = $command; - return $process; - } - public function __serialize(): array - { - throw new \BadMethodCallException('Cannot serialize ' . __CLASS__); - } - public function __unserialize(array $data): void - { - throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); - } - public function __destruct() - { - if ($this->options['create_new_console'] ?? \false) { - $this->processPipes->close(); - } else { - $this->stop(0); - } - } - public function __clone() - { - $this->resetProcessData(); - } - /** - * Runs the process. - * - * The callback receives the type of output (out or err) and - * some bytes from the output in real-time. It allows to have feedback - * from the independent process during execution. - * - * The STDOUT and STDERR are also available after the process is finished - * via the getOutput() and getErrorOutput() methods. - * - * @param (callable('out'|'err', string):void)|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * @param EnvArray $env - * - * @return int The exit status code - * - * @throws ProcessStartFailedException When process can't be launched - * @throws RuntimeException When process is already running - * @throws ProcessTimedOutException When process timed out - * @throws ProcessSignaledException When process stopped after receiving signal - * - * @final - */ - public function run(?callable $callback = null, array $env = []): int - { - $this->start($callback, $env); - return $this->wait(); - } - /** - * Runs the process. - * - * This is identical to run() except that an exception is thrown if the process - * exits with a non-zero exit code. - * - * @param (callable('out'|'err', string):void)|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * @param EnvArray $env - * - * @return $this - * - * @throws ProcessFailedException When process didn't terminate successfully - * @throws RuntimeException When process can't be launched - * @throws RuntimeException When process is already running - * @throws ProcessTimedOutException When process timed out - * @throws ProcessSignaledException When process stopped after receiving signal - * - * @final - */ - public function mustRun(?callable $callback = null, array $env = []) - { - if (0 !== $this->run($callback, $env)) { - throw new ProcessFailedException($this); - } - return $this; - } - /** - * Starts the process and returns after writing the input to STDIN. - * - * This method blocks until all STDIN data is sent to the process then it - * returns while the process runs in the background. - * - * The termination of the process can be awaited with wait(). - * - * The callback receives the type of output (out or err) and some bytes from - * the output in real-time while writing the standard input to the process. - * It allows to have feedback from the independent process during execution. - * - * @param (callable('out'|'err', string):void)|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * @param EnvArray $env - * - * @throws ProcessStartFailedException When process can't be launched - * @throws RuntimeException When process is already running - */ - public function start(?callable $callback = null, array $env = []): void - { - if ($this->isRunning()) { - throw new RuntimeException('Process is already running.'); - } - $this->resetProcessData(); - $this->starttime = $this->lastOutputTime = microtime(\true); - $this->callback = $this->buildCallback($callback); - $descriptors = $this->getDescriptors(null !== $callback); - if ($this->env) { - $env += '\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($this->env, $env, 'strcasecmp') : $this->env; - } - $env += '\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($this->getDefaultEnv(), $env, 'strcasecmp') : $this->getDefaultEnv(); - if (\is_array($commandline = $this->commandline)) { - $commandline = array_values(array_map(\Closure::fromCallable('strval'), $commandline)); - } else { - $commandline = $this->replacePlaceholders($commandline, $env); - } - if ('\\' === \DIRECTORY_SEPARATOR) { - $commandline = $this->prepareWindowsCommandLine($commandline, $env); - } elseif ($this->isSigchildEnabled()) { - // last exit code is output on the fourth pipe and caught to work around --enable-sigchild - $descriptors[3] = ['pipe', 'w']; - if (\is_array($commandline)) { - // exec is mandatory to deal with sending a signal to the process - $commandline = 'exec ' . $this->buildShellCommandline($commandline); - } - // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input - $commandline = '{ (' . $commandline . ') <&3 3<&- 3>/dev/null & } 3<&0;'; - $commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'; - } - $envPairs = []; - foreach ($env as $k => $v) { - if (!\is_scalar($v ?? '') && !(is_object($v) && method_exists($v, '__toString'))) { - continue; - } - if (\false !== $v && !\in_array($k = (string) $k, ['', 'argc', 'argv', 'ARGC', 'ARGV'], \true) && strpos($k, '=') === \false && strpos($k, "\x00") === \false) { - $envPairs[] = $k . '=' . $v; - } - } - if ('\\' === \DIRECTORY_SEPARATOR) { - $this->validateWindowsEnvBlockSize($envPairs); - } - if (!is_dir($this->cwd)) { - throw new RuntimeException(\sprintf('The provided cwd "%s" does not exist.', $this->cwd)); - } - $lastError = null; - set_error_handler(static function ($type, $msg) use (&$lastError) { - $lastError = $msg; - return \true; - }); - $oldMask = []; - if ($this->ignoredSignals && \function_exists('pcntl_sigprocmask')) { - // we block signals we want to ignore, as proc_open will use fork / posix_spawn which will copy the signal mask this allow to block - // signals in the child process - pcntl_sigprocmask(\SIG_BLOCK, $this->ignoredSignals, $oldMask); - } - try { - $process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); - // Ensure array vs string commands behave the same - if (!$process && \is_array($commandline)) { - $process = @proc_open('exec ' . $this->buildShellCommandline($commandline), $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); - } - } finally { - if ($this->ignoredSignals && \function_exists('pcntl_sigprocmask')) { - // we restore the signal mask here to avoid any side effects - pcntl_sigprocmask(\SIG_SETMASK, $oldMask); - } - restore_error_handler(); - } - if (!$process) { - throw new ProcessStartFailedException($this, $lastError); - } - $this->process = $process; - $this->status = self::STATUS_STARTED; - if (isset($descriptors[3])) { - $this->fallbackStatus['pid'] = (int) fgets($this->processPipes->pipes[3]); - } - if ($this->tty) { - return; - } - $this->updateStatus(\false); - $this->checkTimeout(); - } - /** - * Restarts the process. - * - * Be warned that the process is cloned before being started. - * - * @param (callable('out'|'err', string):void)|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * @param EnvArray $env - * - * @throws ProcessStartFailedException When process can't be launched - * @throws RuntimeException When process is already running - * - * @see start() - * - * @final - * @return static - */ - public function restart(?callable $callback = null, array $env = []) - { - if ($this->isRunning()) { - throw new RuntimeException('Process is already running.'); - } - $process = clone $this; - $process->start($callback, $env); - return $process; - } - /** - * Waits for the process to terminate. - * - * The callback receives the type of output (out or err) and some bytes - * from the output in real-time while writing the standard input to the process. - * It allows to have feedback from the independent process during execution. - * - * @param (callable('out'|'err', string):void)|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * - * @return int The exitcode of the process - * - * @throws ProcessTimedOutException When process timed out - * @throws ProcessSignaledException When process stopped after receiving signal - * @throws LogicException When process is not yet started - */ - public function wait(?callable $callback = null): int - { - $this->requireProcessIsStarted(__FUNCTION__); - $this->updateStatus(\false); - if (null !== $callback) { - if (!$this->processPipes->haveReadSupport()) { - $this->stop(0); - throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::wait".'); - } - $this->callback = $this->buildCallback($callback); - } - do { - $this->checkTimeout(); - $running = $this->isRunning() && ('\\' === \DIRECTORY_SEPARATOR || $this->processPipes->areOpen()); - $this->readPipes($running, '\\' !== \DIRECTORY_SEPARATOR || !$running); - } while ($running); - while ($this->isRunning()) { - $this->checkTimeout(); - usleep(1000); - } - if ($this->processInformation['signaled'] && $this->processInformation['termsig'] !== $this->latestSignal) { - throw new ProcessSignaledException($this); - } - return $this->exitcode; - } - /** - * Waits until the callback returns true. - * - * The callback receives the type of output (out or err) and some bytes - * from the output in real-time while writing the standard input to the process. - * It allows to have feedback from the independent process during execution. - * - * @param-immediately-invoked-callable $callback - * - * @param (callable('out'|'err', string):bool)|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * - * @throws RuntimeException When process timed out - * @throws LogicException When process is not yet started - * @throws ProcessTimedOutException In case the timeout was reached - */ - public function waitUntil(callable $callback): bool - { - $this->requireProcessIsStarted(__FUNCTION__); - $this->updateStatus(\false); - if (!$this->processPipes->haveReadSupport()) { - $this->stop(0); - throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::waitUntil".'); - } - $callback = $this->buildCallback($callback); - $ready = \false; - while (\true) { - $this->checkTimeout(); - $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen(); - $output = $this->processPipes->readAndWrite($running, '\\' !== \DIRECTORY_SEPARATOR || !$running); - foreach ($output as $type => $data) { - if (3 !== $type) { - $ready = $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data) || $ready; - } elseif (!isset($this->fallbackStatus['signaled'])) { - $this->fallbackStatus['exitcode'] = (int) $data; - } - } - if ($ready) { - return \true; - } - if (!$running) { - return \false; - } - usleep(1000); - } - } - /** - * Returns the Pid (process identifier), if applicable. - * - * @return int|null The process id if running, null otherwise - */ - public function getPid(): ?int - { - return $this->isRunning() ? $this->processInformation['pid'] : null; - } - /** - * Sends a POSIX signal to the process. - * - * @param int $signal A valid POSIX signal (see https://php.net/pcntl.constants) - * - * @return $this - * - * @throws LogicException In case the process is not running - * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed - * @throws RuntimeException In case of failure - */ - public function signal(int $signal) - { - $this->doSignal($signal, \true); - return $this; - } - /** - * Disables fetching output and error output from the underlying process. - * - * @return $this - * - * @throws RuntimeException In case the process is already running - * @throws LogicException if an idle timeout is set - */ - public function disableOutput() - { - if ($this->isRunning()) { - throw new RuntimeException('Disabling output while the process is running is not possible.'); - } - if (null !== $this->idleTimeout) { - throw new LogicException('Output cannot be disabled while an idle timeout is set.'); - } - $this->outputDisabled = \true; - return $this; - } - /** - * Enables fetching output and error output from the underlying process. - * - * @return $this - * - * @throws RuntimeException In case the process is already running - */ - public function enableOutput() - { - if ($this->isRunning()) { - throw new RuntimeException('Enabling output while the process is running is not possible.'); - } - $this->outputDisabled = \false; - return $this; - } - /** - * Returns true in case the output is disabled, false otherwise. - */ - public function isOutputDisabled(): bool - { - return $this->outputDisabled; - } - /** - * Returns the current output of the process (STDOUT). - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getOutput(): string - { - $this->readPipesForOutput(__FUNCTION__); - if (\false === $ret = stream_get_contents($this->stdout, -1, 0)) { - return ''; - } - return $ret; - } - /** - * Returns the output incrementally. - * - * In comparison with the getOutput method which always return the whole - * output, this one returns the new output since the last call. - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getIncrementalOutput(): string - { - $this->readPipesForOutput(__FUNCTION__); - $latest = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset); - $this->incrementalOutputOffset = ftell($this->stdout); - if (\false === $latest) { - return ''; - } - return $latest; - } - /** - * Returns an iterator to the output of the process, with the output type as keys (Process::OUT/ERR). - * - * @param int $flags A bit field of Process::ITER_* flags - * - * @return \Generator - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getIterator(int $flags = 0): \Generator - { - $this->readPipesForOutput(__FUNCTION__, \false); - $clearOutput = !(self::ITER_KEEP_OUTPUT & $flags); - $blocking = !(self::ITER_NON_BLOCKING & $flags); - $yieldOut = !(self::ITER_SKIP_OUT & $flags); - $yieldErr = !(self::ITER_SKIP_ERR & $flags); - while (null !== $this->callback || $yieldOut && !feof($this->stdout) || $yieldErr && !feof($this->stderr)) { - if ($yieldOut) { - $out = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset); - if (isset($out[0])) { - if ($clearOutput) { - $this->clearOutput(); - } else { - $this->incrementalOutputOffset = ftell($this->stdout); - } - yield self::OUT => $out; - } - } - if ($yieldErr) { - $err = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset); - if (isset($err[0])) { - if ($clearOutput) { - $this->clearErrorOutput(); - } else { - $this->incrementalErrorOutputOffset = ftell($this->stderr); - } - yield self::ERR => $err; - } - } - if (!$blocking && !isset($out[0]) && !isset($err[0])) { - yield self::OUT => ''; - } - $this->checkTimeout(); - $this->readPipesForOutput(__FUNCTION__, $blocking); - } - } - /** - * Clears the process output. - * - * @return $this - */ - public function clearOutput() - { - ftruncate($this->stdout, 0); - fseek($this->stdout, 0); - $this->incrementalOutputOffset = 0; - return $this; - } - /** - * Returns the current error output of the process (STDERR). - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getErrorOutput(): string - { - $this->readPipesForOutput(__FUNCTION__); - if (\false === $ret = stream_get_contents($this->stderr, -1, 0)) { - return ''; - } - return $ret; - } - /** - * Returns the errorOutput incrementally. - * - * In comparison with the getErrorOutput method which always return the - * whole error output, this one returns the new error output since the last - * call. - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getIncrementalErrorOutput(): string - { - $this->readPipesForOutput(__FUNCTION__); - $latest = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset); - $this->incrementalErrorOutputOffset = ftell($this->stderr); - if (\false === $latest) { - return ''; - } - return $latest; - } - /** - * Clears the process output. - * - * @return $this - */ - public function clearErrorOutput() - { - ftruncate($this->stderr, 0); - fseek($this->stderr, 0); - $this->incrementalErrorOutputOffset = 0; - return $this; - } - /** - * Returns the exit code returned by the process. - * - * @return int|null The exit status code, null if the Process is not terminated - */ - public function getExitCode(): ?int - { - $this->updateStatus(\false); - return $this->exitcode; - } - /** - * Returns a string representation for the exit code returned by the process. - * - * This method relies on the Unix exit code status standardization - * and might not be relevant for other operating systems. - * - * @return string|null A string representation for the exit status code, null if the Process is not terminated - * - * @see http://tldp.org/LDP/abs/html/exitcodes.html - * @see http://en.wikipedia.org/wiki/Unix_signal - */ - public function getExitCodeText(): ?string - { - if (null === $exitcode = $this->getExitCode()) { - return null; - } - return self::$exitCodes[$exitcode] ?? 'Unknown error'; - } - /** - * Checks if the process ended successfully. - */ - public function isSuccessful(): bool - { - return 0 === $this->getExitCode(); - } - /** - * Returns true if the child process has been terminated by an uncaught signal. - * - * It always returns false on Windows. - * - * @throws LogicException In case the process is not terminated - */ - public function hasBeenSignaled(): bool - { - $this->requireProcessIsTerminated(__FUNCTION__); - return $this->processInformation['signaled']; - } - /** - * Returns the number of the signal that caused the child process to terminate its execution. - * - * It is only meaningful if hasBeenSignaled() returns true. - * - * @throws RuntimeException In case --enable-sigchild is activated - * @throws LogicException In case the process is not terminated - */ - public function getTermSignal(): int - { - $this->requireProcessIsTerminated(__FUNCTION__); - if ($this->isSigchildEnabled() && -1 === $this->processInformation['termsig']) { - throw new RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal cannot be retrieved.'); - } - return $this->processInformation['termsig']; - } - /** - * Returns true if the child process has been stopped by a signal. - * - * It always returns false on Windows. - * - * @throws LogicException In case the process is not terminated - */ - public function hasBeenStopped(): bool - { - $this->requireProcessIsTerminated(__FUNCTION__); - return $this->processInformation['stopped']; - } - /** - * Returns the number of the signal that caused the child process to stop its execution. - * - * It is only meaningful if hasBeenStopped() returns true. - * - * @throws LogicException In case the process is not terminated - */ - public function getStopSignal(): int - { - $this->requireProcessIsTerminated(__FUNCTION__); - return $this->processInformation['stopsig']; - } - /** - * Checks if the process is currently running. - */ - public function isRunning(): bool - { - if (self::STATUS_STARTED !== $this->status) { - return \false; - } - $this->updateStatus(\false); - return $this->processInformation['running']; - } - /** - * Checks if the process has been started with no regard to the current state. - */ - public function isStarted(): bool - { - return self::STATUS_READY != $this->status; - } - /** - * Checks if the process is terminated. - */ - public function isTerminated(): bool - { - $this->updateStatus(\false); - return self::STATUS_TERMINATED == $this->status; - } - /** - * Gets the process status. - * - * The status is one of: ready, started, terminated. - */ - public function getStatus(): string - { - $this->updateStatus(\false); - return $this->status; - } - /** - * Stops the process. - * - * @param int|float $timeout The timeout in seconds - * @param int|null $signal A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9) - * - * @return int|null The exit-code of the process or null if it's not running - */ - public function stop(float $timeout = 10, ?int $signal = null): ?int - { - $timeoutMicro = microtime(\true) + $timeout; - if ($this->isRunning()) { - // given SIGTERM may not be defined and that "proc_terminate" uses the constant value and not the constant itself, we use the same here - $this->doSignal(15, \false); - do { - usleep(1000); - } while ($this->isRunning() && microtime(\true) < $timeoutMicro); - if ($this->isRunning()) { - // Avoid exception here: process is supposed to be running, but it might have stopped just - // after this line. In any case, let's silently discard the error, we cannot do anything. - $this->doSignal($signal ?: 9, \false); - } - } - if ($this->isRunning()) { - if (isset($this->fallbackStatus['pid'])) { - unset($this->fallbackStatus['pid']); - return $this->stop(0, $signal); - } - $this->close(); - } - return $this->exitcode; - } - /** - * Adds a line to the STDOUT stream. - * - * @internal - */ - public function addOutput(string $line): void - { - $this->lastOutputTime = microtime(\true); - fseek($this->stdout, 0, \SEEK_END); - fwrite($this->stdout, $line); - fseek($this->stdout, $this->incrementalOutputOffset); - } - /** - * Adds a line to the STDERR stream. - * - * @internal - */ - public function addErrorOutput(string $line): void - { - $this->lastOutputTime = microtime(\true); - fseek($this->stderr, 0, \SEEK_END); - fwrite($this->stderr, $line); - fseek($this->stderr, $this->incrementalErrorOutputOffset); - } - /** - * Gets the last output time in seconds. - */ - public function getLastOutputTime(): ?float - { - return $this->lastOutputTime; - } - /** - * Gets the command line to be executed. - */ - public function getCommandLine(): string - { - return $this->buildShellCommandline($this->commandline); - } - /** - * Gets the process timeout in seconds (max. runtime). - */ - public function getTimeout(): ?float - { - return $this->timeout; - } - /** - * Gets the process idle timeout in seconds (max. time since last output). - */ - public function getIdleTimeout(): ?float - { - return $this->idleTimeout; - } - /** - * Sets the process timeout (max. runtime) in seconds. - * - * To disable the timeout, set this value to null. - * - * @return $this - * - * @throws InvalidArgumentException if the timeout is negative - */ - public function setTimeout(?float $timeout) - { - $this->timeout = $this->validateTimeout($timeout); - return $this; - } - /** - * Sets the process idle timeout (max. time since last output) in seconds. - * - * To disable the timeout, set this value to null. - * - * @return $this - * - * @throws LogicException if the output is disabled - * @throws InvalidArgumentException if the timeout is negative - */ - public function setIdleTimeout(?float $timeout) - { - if (null !== $timeout && $this->outputDisabled) { - throw new LogicException('Idle timeout cannot be set while the output is disabled.'); - } - $this->idleTimeout = $this->validateTimeout($timeout); - return $this; - } - /** - * Enables or disables the TTY mode. - * - * @return $this - * - * @throws RuntimeException In case the TTY mode is not supported - */ - public function setTty(bool $tty) - { - if ('\\' === \DIRECTORY_SEPARATOR && $tty) { - throw new RuntimeException('TTY mode is not supported on Windows platform.'); - } - if ($tty && !self::isTtySupported()) { - throw new RuntimeException('TTY mode requires /dev/tty to be read/writable.'); - } - $this->tty = $tty; - return $this; - } - /** - * Checks if the TTY mode is enabled. - */ - public function isTty(): bool - { - return $this->tty; - } - /** - * Sets PTY mode. - * - * @return $this - */ - public function setPty(bool $bool) - { - $this->pty = $bool; - return $this; - } - /** - * Returns PTY state. - */ - public function isPty(): bool - { - return $this->pty; - } - /** - * Gets the working directory. - */ - public function getWorkingDirectory(): ?string - { - if (null === $this->cwd) { - // getcwd() will return false if any one of the parent directories does not have - // the readable or search mode set, even if the current directory does - return getcwd() ?: null; - } - return $this->cwd; - } - /** - * Sets the current working directory. - * - * @return $this - */ - public function setWorkingDirectory(string $cwd) - { - $this->cwd = $cwd; - return $this; - } - /** - * Gets the environment variables. - * - * @psalm-return EnvArray - */ - public function getEnv(): array - { - return $this->env; - } - /** - * Sets the environment variables. - * - * @param EnvArray $env The new environment variables - * - * @return $this - */ - public function setEnv(array $env) - { - $this->env = $env; - return $this; - } - /** - * Gets the Process input. - * - * @return resource|string|\Iterator|null - */ - public function getInput() - { - return $this->input; - } - /** - * Sets the input. - * - * This content will be passed to the underlying process standard input. - * - * @param mixed $input The content - * - * @return $this - * - * @throws LogicException In case the process is running - */ - public function setInput($input) - { - if ($this->isRunning()) { - throw new LogicException('Input cannot be set while the process is running.'); - } - $this->input = ProcessUtils::validateInput(__METHOD__, $input); - return $this; - } - /** - * Performs a check between the timeout definition and the time the process started. - * - * In case you run a background process (with the start method), you should - * trigger this method regularly to ensure the process timeout - * - * @throws ProcessTimedOutException In case the timeout was reached - */ - public function checkTimeout(): void - { - if (self::STATUS_STARTED !== $this->status) { - return; - } - if (null !== $this->timeout && $this->timeout < microtime(\true) - $this->starttime) { - $this->stop(0); - throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_GENERAL); - } - if (null !== $this->idleTimeout && $this->idleTimeout < microtime(\true) - $this->lastOutputTime) { - $this->stop(0); - throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_IDLE); - } - } - /** - * @throws LogicException in case process is not started - */ - public function getStartTime(): float - { - if (!$this->isStarted()) { - throw new LogicException('Start time is only available after process start.'); - } - return $this->starttime; - } - /** - * Defines options to pass to the underlying proc_open(). - * - * @see https://php.net/proc_open for the options supported by PHP. - * - * Enabling the "create_new_console" option allows a subprocess to continue - * to run after the main process exited, on both Windows and *nix - */ - public function setOptions(array $options): void - { - if ($this->isRunning()) { - throw new RuntimeException('Setting options while the process is running is not possible.'); - } - $defaultOptions = $this->options; - $existingOptions = ['blocking_pipes', 'create_process_group', 'create_new_console']; - foreach ($options as $key => $value) { - if (!\in_array($key, $existingOptions)) { - $this->options = $defaultOptions; - throw new LogicException(\sprintf('Invalid option "%s" passed to "%s()". Supported options are "%s".', $key, __METHOD__, implode('", "', $existingOptions))); - } - $this->options[$key] = $value; - } - } - /** - * Defines a list of posix signals that will not be propagated to the process. - * - * @param list<\SIG*> $signals - */ - public function setIgnoredSignals(array $signals): void - { - if ($this->isRunning()) { - throw new RuntimeException('Setting ignored signals while the process is running is not possible.'); - } - $this->ignoredSignals = $signals; - } - /** - * Returns whether TTY is supported on the current operating system. - */ - public static function isTtySupported(): bool - { - static $isTtySupported; - return $isTtySupported ??= '/' === \DIRECTORY_SEPARATOR && stream_isatty(\STDOUT) && @is_writable('/dev/tty'); - } - /** - * Returns whether PTY is supported on the current operating system. - */ - public static function isPtySupported(): bool - { - static $result; - if (null !== $result) { - return $result; - } - if ('\\' === \DIRECTORY_SEPARATOR) { - return $result = \false; - } - return $result = (bool) @proc_open('echo 1 >/dev/null', [['pty'], ['pty'], ['pty']], $pipes); - } - /** - * Creates the descriptors needed by the proc_open. - */ - private function getDescriptors(bool $hasCallback): array - { - if ($this->input instanceof \Iterator) { - $this->input->rewind(); - } - if ('\\' === \DIRECTORY_SEPARATOR) { - $this->processPipes = new WindowsPipes($this->input, !$this->outputDisabled || $hasCallback); - } else { - $this->processPipes = new UnixPipes($this->isTty(), $this->isPty(), $this->input, !$this->outputDisabled || $hasCallback); - } - return $this->processPipes->getDescriptors(); - } - /** - * Builds up the callback used by wait(). - * - * The callbacks adds all occurred output to the specific buffer and calls - * the user callback (if present) with the received output. - * - * @param (callable('out'|'err', string):void)|null $callback - * - * @return \Closure('out'|'err', string):bool - */ - protected function buildCallback(?callable $callback = null): \Closure - { - if ($this->outputDisabled) { - return static fn($type, $data): bool => null !== $callback && $callback($type, $data); - } - return function ($type, $data) use ($callback): bool { - switch ($type) { - case self::OUT: - $this->addOutput($data); - break; - case self::ERR: - $this->addErrorOutput($data); - break; - } - return null !== $callback && $callback($type, $data); - }; - } - /** - * Updates the status of the process, reads pipes. - * - * @param bool $blocking Whether to use a blocking read call - */ - protected function updateStatus(bool $blocking): void - { - if (self::STATUS_STARTED !== $this->status) { - return; - } - if ($this->processInformation['running'] ?? \true) { - $this->processInformation = proc_get_status($this->process); - } - $running = $this->processInformation['running']; - $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running); - if ($this->fallbackStatus && $this->isSigchildEnabled()) { - $this->processInformation = $this->fallbackStatus + $this->processInformation; - } - if (!$running) { - $this->close(); - } - } - /** - * Returns whether PHP has been compiled with the '--enable-sigchild' option or not. - */ - protected function isSigchildEnabled(): bool - { - if (null !== self::$sigchild) { - return self::$sigchild; - } - if (!\function_exists('phpinfo') && !\function_exists('RectorPrefix202608\phpinfo')) { - return self::$sigchild = \false; - } - ob_start(); - phpinfo(\INFO_GENERAL); - return self::$sigchild = strpos(ob_get_clean(), '--enable-sigchild') !== \false; - } - /** - * Reads pipes for the freshest output. - * - * @param string $caller The name of the method that needs fresh outputs - * @param bool $blocking Whether to use blocking calls or not - * - * @throws LogicException in case output has been disabled or process is not started - */ - private function readPipesForOutput(string $caller, bool $blocking = \false): void - { - if ($this->outputDisabled) { - throw new LogicException('Output has been disabled.'); - } - $this->requireProcessIsStarted($caller); - $this->updateStatus($blocking); - } - /** - * Validates and returns the filtered timeout. - * - * @throws InvalidArgumentException if the given timeout is a negative number - */ - private function validateTimeout(?float $timeout): ?float - { - $timeout = (float) $timeout; - if (0.0 === $timeout) { - $timeout = null; - } elseif ($timeout < 0) { - throw new InvalidArgumentException('The timeout value must be a valid positive integer or float number.'); - } - return $timeout; - } - /** - * Reads pipes, executes callback. - * - * @param bool $blocking Whether to use blocking calls or not - * @param bool $close Whether to close file handles or not - */ - private function readPipes(bool $blocking, bool $close): void - { - $result = $this->processPipes->readAndWrite($blocking, $close); - $callback = $this->callback; - foreach ($result as $type => $data) { - if (3 !== $type) { - $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data); - } elseif (!isset($this->fallbackStatus['signaled'])) { - $this->fallbackStatus['exitcode'] = (int) $data; - } - } - } - /** - * Closes process resource, closes file handles, sets the exitcode. - * - * @return int The exitcode - */ - private function close(): int - { - $this->processPipes->close(); - if ($this->process) { - proc_close($this->process); - $this->process = null; - } - $this->exitcode = $this->processInformation['exitcode']; - $this->status = self::STATUS_TERMINATED; - if (-1 === $this->exitcode) { - if ($this->processInformation['signaled'] && 0 < $this->processInformation['termsig']) { - // if process has been signaled, no exitcode but a valid termsig, apply Unix convention - $this->exitcode = 128 + $this->processInformation['termsig']; - } elseif ($this->isSigchildEnabled()) { - $this->processInformation['signaled'] = \true; - $this->processInformation['termsig'] = -1; - } - } - // Free memory from self-reference callback created by buildCallback - // Doing so in other contexts like __destruct or by garbage collector is ineffective - // Now pipes are closed, so the callback is no longer necessary - $this->callback = null; - return $this->exitcode; - } - /** - * Resets data related to the latest run of the process. - */ - private function resetProcessData(): void - { - $this->starttime = null; - $this->callback = null; - $this->exitcode = null; - $this->fallbackStatus = []; - $this->processInformation = []; - $this->stdout = fopen('php://temp/maxmemory:' . 1024 * 1024, 'w+'); - $this->stderr = fopen('php://temp/maxmemory:' . 1024 * 1024, 'w+'); - $this->process = null; - $this->latestSignal = null; - $this->status = self::STATUS_READY; - $this->incrementalOutputOffset = 0; - $this->incrementalErrorOutputOffset = 0; - } - /** - * Sends a POSIX signal to the process. - * - * @param int $signal A valid POSIX signal (see https://php.net/pcntl.constants) - * @param bool $throwException Whether to throw exception in case signal failed - * - * @throws LogicException In case the process is not running - * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed - * @throws RuntimeException In case of failure - */ - private function doSignal(int $signal, bool $throwException): bool - { - // Signal seems to be send when sigchild is enable, this allow blocking the signal correctly in this case - if ($this->isSigchildEnabled() && \in_array($signal, $this->ignoredSignals)) { - return \false; - } - if (null === $pid = $this->getPid()) { - if ($throwException) { - throw new LogicException('Cannot send signal on a non running process.'); - } - return \false; - } - if ('\\' === \DIRECTORY_SEPARATOR) { - exec(\sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode); - if ($exitCode && $this->isRunning()) { - if ($throwException) { - throw new RuntimeException(\sprintf('Unable to kill the process (%s).', implode(' ', $output))); - } - return \false; - } - } else { - if (!$this->isSigchildEnabled()) { - $ok = @proc_terminate($this->process, $signal); - } elseif (\function_exists('posix_kill')) { - $ok = @posix_kill($pid, $signal); - } elseif ($ok = proc_open(\sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) { - $ok = \false === fgets($pipes[2]); - } - if (!$ok) { - if ($throwException) { - throw new RuntimeException(\sprintf('Error while sending signal "%s".', $signal)); - } - return \false; - } - } - $this->latestSignal = $signal; - $this->fallbackStatus['signaled'] = \true; - $this->fallbackStatus['exitcode'] = -1; - $this->fallbackStatus['termsig'] = $this->latestSignal; - return \true; - } - /** - * @param string|list $commandline - */ - private function buildShellCommandline($commandline): string - { - if (\is_string($commandline)) { - return $commandline; - } - if ('\\' === \DIRECTORY_SEPARATOR && isset($commandline[0][0]) && \strlen($commandline[0]) === strcspn($commandline[0], ':/\\')) { - // On Windows, we don't rely on the OS to find the executable if possible to avoid lookups - // in the current directory which could be untrusted. Instead we use the ExecutableFinder. - $commandline[0] = (self::$executables[$commandline[0]] ??= (new ExecutableFinder())->find($commandline[0])) ?? $commandline[0]; - } - return implode(' ', array_map(\Closure::fromCallable([$this, 'escapeArgument']), $commandline)); - } - /** - * @param string|list $cmd - * @param EnvArray $env - * - * @param-out EnvArray $env - */ - private function prepareWindowsCommandLine($cmd, array &$env): string - { - $cmd = $this->buildShellCommandline($cmd); - $uid = bin2hex(random_bytes(4)); - $cmd = preg_replace_callback('/"(?:( - [^"%!^]*+ - (?: - (?: !LF! | "(?:\^[%!^])?+" ) - [^"%!^]*+ - )++ - ) | [^"]*+ )"/x', static function ($m) use (&$env, $uid) { - static $varCount = 0; - static $varCache = []; - if (!isset($m[1])) { - return $m[0]; - } - if (isset($varCache[$m[0]])) { - return $varCache[$m[0]]; - } - if (strpos($value = $m[1], "\x00") !== \false) { - $value = str_replace("\x00", '?', $value); - } - if (\false === strpbrk($value, "\"%!\n")) { - return '"' . $value . '"'; - } - $value = str_replace(['!LF!', '"^!"', '"^%"', '"^^"', '""'], ["\n", '!', '%', '^', '"'], $value); - $value = '"' . preg_replace('/(\\\\*)"/', '$1$1\"', $value) . '"'; - $var = $uid . ++$varCount; - $env[$var] = $value; - return $varCache[$m[0]] = '!' . $var . '!'; - }, $cmd); - static $comSpec; - if (!$comSpec && $comSpec = (new ExecutableFinder())->find('cmd.exe')) { - // Escape according to CommandLineToArgvW rules - $comSpec = '"' . preg_replace('{(\\\\*+)"}', '$1$1\"', $comSpec) . '"'; - } - $cmd = ($comSpec ?? 'cmd') . ' /V:ON /E:ON /D /C (' . str_replace("\n", ' ', $cmd) . ')'; - foreach ($this->processPipes->getFiles() as $offset => $filename) { - $cmd .= ' ' . $offset . '>"' . $filename . '"'; - } - return $cmd; - } - /** - * Ensures the process is running or terminated, throws a LogicException if the process has a not started. - * - * @throws LogicException if the process has not run - */ - private function requireProcessIsStarted(string $functionName): void - { - if (!$this->isStarted()) { - throw new LogicException(\sprintf('Process must be started before calling "%s()".', $functionName)); - } - } - /** - * Ensures the process is terminated, throws a LogicException if the process has a status different than "terminated". - * - * @throws LogicException if the process is not yet terminated - */ - private function requireProcessIsTerminated(string $functionName): void - { - if (!$this->isTerminated()) { - throw new LogicException(\sprintf('Process must be terminated before calling "%s()".', $functionName)); - } - } - /** - * Escapes a string to be used as a shell argument. - */ - private function escapeArgument(?string $argument): string - { - if ('' === $argument || null === $argument) { - return '""'; - } - if ('\\' !== \DIRECTORY_SEPARATOR) { - return "'" . str_replace("'", "'\\''", $argument) . "'"; - } - if (strpos($argument, "\x00") !== \false) { - $argument = str_replace("\x00", '?', $argument); - } - if (!preg_match('/[()%!^"<>&|\s[\]=;*?\'$]/', $argument)) { - return $argument; - } - $argument = preg_replace('/(\\\\+)$/', '$1$1', $argument); - return '"' . str_replace(['"', '^', '%', '!', "\n"], ['""', '"^^"', '"^%"', '"^!"', '!LF!'], $argument) . '"'; - } - /** - * @param EnvArray $env - */ - private function replacePlaceholders(string $commandline, array $env): string - { - return preg_replace_callback('/"\$\{:([_a-zA-Z]++[_a-zA-Z0-9]*+)\}"/', function ($matches) use ($commandline, $env) { - if (!isset($env[$matches[1]]) || \false === $env[$matches[1]]) { - throw new InvalidArgumentException(\sprintf('Command line is missing a value for parameter "%s": ', $matches[1]) . $commandline); - } - return $this->escapeArgument($env[$matches[1]]); - }, $commandline); - } - /** - * @return EnvArray - */ - private function getDefaultEnv(): array - { - $env = getenv(); - $env = ('\\' === \DIRECTORY_SEPARATOR ? array_intersect_ukey($env, $_SERVER, 'strcasecmp') : array_intersect_key($env, $_SERVER)) ?: $env; - $env = $_ENV + ('\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($env, $_ENV, 'strcasecmp') : $env); - if (\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], \true)) { - return $env; - } - // On non-CLI SAPIs (notably PHP-FPM and CGI), CGI/FastCGI request-context - // vars are exposed through $_SERVER, $_ENV and getenv(), and must not - // propagate to subprocesses. - foreach ($env as $k => $v) { - if (strncmp($k, 'HTTP_', strlen('HTTP_')) === 0 || strncmp($k, 'ORIG_', strlen('ORIG_')) === 0 || strncmp($k, 'REDIRECT_', strlen('REDIRECT_')) === 0 || \in_array($k, ['AUTH_TYPE', 'CONTENT_LENGTH', 'CONTENT_TYPE', 'DOCUMENT_ROOT', 'DOCUMENT_URI', 'GATEWAY_INTERFACE', 'HTTPS', 'PATH_INFO', 'PATH_TRANSLATED', 'PHP_AUTH_DIGEST', 'PHP_AUTH_PW', 'PHP_AUTH_USER', 'PHP_SELF', 'QUERY_STRING', 'REMOTE_ADDR', 'REMOTE_HOST', 'REMOTE_IDENT', 'REMOTE_PORT', 'REMOTE_USER', 'REQUEST_METHOD', 'REQUEST_SCHEME', 'REQUEST_TIME', 'REQUEST_TIME_FLOAT', 'REQUEST_URI', 'SCRIPT_FILENAME', 'SCRIPT_NAME', 'SCRIPT_URI', 'SCRIPT_URL', 'SERVER_ADDR', 'SERVER_ADMIN', 'SERVER_NAME', 'SERVER_PORT', 'SERVER_PROTOCOL', 'SERVER_SIGNATURE', 'SERVER_SOFTWARE'], \true)) { - unset($env[$k]); - } - } - return $env; - } - private function validateWindowsEnvBlockSize(array $envPairs): void - { - $block = implode("\x00", $envPairs) . "\x00"; - @preg_replace('/./u', '', $block, -1, $blockLength) ?? preg_replace('/./', '', $block, -1, $blockLength); - $blockLength += 1 + preg_match_all('/[\xF0-\xF4][\x80-\xBF]{3}/', $block); - if ($blockLength > self::WINDOWS_ENV_BLOCK_MAX_LENGTH) { - throw new InvalidArgumentException(\sprintf('The environment block size (%d) exceeds the Windows limit of %d UTF-16 code units.', $blockLength, self::WINDOWS_ENV_BLOCK_MAX_LENGTH)); - } - } -} diff --git a/vendor/symfony/process/ProcessUtils.php b/vendor/symfony/process/ProcessUtils.php deleted file mode 100644 index 2f47384ab29..00000000000 --- a/vendor/symfony/process/ProcessUtils.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202608\Symfony\Component\Process; - -use RectorPrefix202608\Symfony\Component\Process\Exception\InvalidArgumentException; -/** - * ProcessUtils is a bunch of utility methods. - * - * This class contains static methods only and is not meant to be instantiated. - * - * @author Martin Hasoň - */ -class ProcessUtils -{ - /** - * This class should not be instantiated. - */ - private function __construct() - { - } - /** - * Validates and normalizes a Process input. - * - * @param string $caller The name of method call that validates the input - * @param mixed $input The input to validate - * - * @throws InvalidArgumentException In case the input is not valid - * @return mixed - */ - public static function validateInput(string $caller, $input) - { - if (null !== $input) { - if (\is_resource($input)) { - return $input; - } - if (\is_scalar($input)) { - return (string) $input; - } - if ($input instanceof Process) { - return $input->getIterator($input::ITER_SKIP_ERR); - } - if ($input instanceof \Iterator) { - return $input; - } - if ($input instanceof \Traversable) { - return new \IteratorIterator($input); - } - throw new InvalidArgumentException(\sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller)); - } - return $input; - } -} diff --git a/vendor/symfony/process/README.md b/vendor/symfony/process/README.md deleted file mode 100644 index ab632d83ed2..00000000000 --- a/vendor/symfony/process/README.md +++ /dev/null @@ -1,23 +0,0 @@ -Process Component -================= - -The Process component executes commands in sub-processes. - -Sponsor -------- - -This package is looking for a [backer][1]. - -Help Symfony by [sponsoring][3] its development! - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/process.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) - -[1]: https://symfony.com/backers -[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/process/composer.json b/vendor/symfony/process/composer.json deleted file mode 100644 index c1cac317072..00000000000 --- a/vendor/symfony/process/composer.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "symfony\/process", - "type": "library", - "description": "Executes commands in sub-processes", - "keywords": [], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.4.1" - }, - "autoload": { - "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "\/Tests\/" - ] - }, - "minimum-stability": "dev" -} \ No newline at end of file From 89f7cf2789f1d36d069bfc7010f639b073da483e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 17:34:56 +0000 Subject: [PATCH 073/169] Updated Rector to commit b22371b99695a4c8f3de0dbe8a0d1e431ba287fd --- vendor/composer/installed.json | 32 +++++++++---------- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- ...ractArrayArgOnQueryBuilderSelectRector.php | 10 +++--- ...igrateQueryBuilderResetQueryPartRector.php | 4 +-- ...iteExpressionAddMultipleWithWithRector.php | 4 +-- .../MethodCall/IterateToToIterableRector.php | 8 ++--- .../SetParametersArrayToCollectionRector.php | 10 +++--- .../FuncCall/DowngradeSubstrFalsyRector.php | 1 + .../Class_/AddSeeTestAnnotationRector.php | 2 +- ...eWillReturnCallableArrowFunctionRector.php | 1 + ...etMockBuilderGetMockToCreateMockRector.php | 6 ++-- ...ameResponseCodeWithDebugContentsRector.php | 8 ++--- .../AddViolationToBuildViolationRector.php | 6 ++-- ...oleExceptionToErrorEventConstantRector.php | 14 ++++---- ...ntainerBuilderCompileEnvArgumentRector.php | 4 +-- .../VarDumperTestTraitMethodArgsRector.php | 4 +-- ...izationCheckerIsGrantedExtractorRector.php | 6 ++-- ...yOnWindowsOptionToFollowSymlinksRector.php | 4 +-- 19 files changed, 65 insertions(+), 63 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index aec4dbda042..28698de4df6 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "bb4ccbae623032910224d0c1e8ea80255d3be72d" + "reference": "b997d3fa0f1a131c206b16c7b9708f05ec0a27fd" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/bb4ccbae623032910224d0c1e8ea80255d3be72d", - "reference": "bb4ccbae623032910224d0c1e8ea80255d3be72d", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/b997d3fa0f1a131c206b16c7b9708f05ec0a27fd", + "reference": "b997d3fa0f1a131c206b16c7b9708f05ec0a27fd", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-27T11:04:30+00:00", + "time": "2026-08-29T17:32:02+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "10f6785919554577089f3e2acbc1552224679bdd" + "reference": "4010c8b39b2f6127f55f4f9073ddbbffe7da2155" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/10f6785919554577089f3e2acbc1552224679bdd", - "reference": "10f6785919554577089f3e2acbc1552224679bdd", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/4010c8b39b2f6127f55f4f9073ddbbffe7da2155", + "reference": "4010c8b39b2f6127f55f4f9073ddbbffe7da2155", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-26T19:40:06+00:00", + "time": "2026-08-29T17:32:07+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "25ece8dc6156e7907637b522897b430d4db5bdd8" + "reference": "e3e455387c465cd2c053251edf1be2095cabd13f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/25ece8dc6156e7907637b522897b430d4db5bdd8", - "reference": "25ece8dc6156e7907637b522897b430d4db5bdd8", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/e3e455387c465cd2c053251edf1be2095cabd13f", + "reference": "e3e455387c465cd2c053251edf1be2095cabd13f", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-27T17:46:53+00:00", + "time": "2026-08-29T17:32:10+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "6ffbf70fab112ae2dc9e039a161f422718155d5b" + "reference": "2529e11b25a4c4521626aa7fd024d567d82619fc" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/6ffbf70fab112ae2dc9e039a161f422718155d5b", - "reference": "6ffbf70fab112ae2dc9e039a161f422718155d5b", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/2529e11b25a4c4521626aa7fd024d567d82619fc", + "reference": "2529e11b25a4c4521626aa7fd024d567d82619fc", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-29T08:25:06+00:00", + "time": "2026-08-29T17:32:13+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b5ed7809749..2b714a94b90 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bb4ccbae623032910224d0c1e8ea80255d3be72d', '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' => '10f6785919554577089f3e2acbc1552224679bdd', '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' => '25ece8dc6156e7907637b522897b430d4db5bdd8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6ffbf70fab112ae2dc9e039a161f422718155d5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '4010c8b39b2f6127f55f4f9073ddbbffe7da2155', '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' => 'e3e455387c465cd2c053251edf1be2095cabd13f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 caa92bfac8e..615fdcc2bbc 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bb4ccba'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 10f6785'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 25ece8d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 6ffbf70')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 4010c8b'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e3e4553'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php b/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php index 767fd78643c..36796a57068 100644 --- a/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php +++ b/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php @@ -55,17 +55,17 @@ function query(\Doctrine\DBAL\Query\QueryBuilder $queryBuilder) */ public function refactor(Node $node): ?MethodCall { - $varType = $this->nodeTypeResolver->getType($node->var); - if (!$varType instanceof ObjectType) { + if (!$this->isNames($node->name, ['select', 'addSelect', 'groupBy', 'addGroupBy'])) { return null; } - if (!$varType->isInstanceOf(DoctrineClass::DBAL_QUERY_BUILDER)->yes()) { + if ($node->isFirstClassCallable()) { return null; } - if (!$this->isNames($node->name, ['select', 'addSelect', 'groupBy', 'addGroupBy'])) { + $varType = $this->nodeTypeResolver->getType($node->var); + if (!$varType instanceof ObjectType) { return null; } - if ($node->isFirstClassCallable()) { + if (!$varType->isInstanceOf(DoctrineClass::DBAL_QUERY_BUILDER)->yes()) { return null; } $args = $node->getArgs(); diff --git a/vendor/rector/rector-doctrine/rules/Dbal36/Rector/MethodCall/MigrateQueryBuilderResetQueryPartRector.php b/vendor/rector/rector-doctrine/rules/Dbal36/Rector/MethodCall/MigrateQueryBuilderResetQueryPartRector.php index d4b753fffac..4531a5378ee 100644 --- a/vendor/rector/rector-doctrine/rules/Dbal36/Rector/MethodCall/MigrateQueryBuilderResetQueryPartRector.php +++ b/vendor/rector/rector-doctrine/rules/Dbal36/Rector/MethodCall/MigrateQueryBuilderResetQueryPartRector.php @@ -71,10 +71,10 @@ public function resetQueryPart(\Doctrine\DBAL\Query\QueryBuilder $queryBuilder) */ public function refactor(Node $node): ?Node { - if (!$this->isObjectType($node->var, new ObjectType(DoctrineClass::DBAL_QUERY_BUILDER))) { + if (!$this->isName($node->name, 'resetQueryPart')) { return null; } - if (!$this->isName($node->name, 'resetQueryPart')) { + if (!$this->isObjectType($node->var, new ObjectType(DoctrineClass::DBAL_QUERY_BUILDER))) { return null; } $args = $node->args; diff --git a/vendor/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php b/vendor/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php index e0164f4b548..6e168bf4eac 100644 --- a/vendor/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php +++ b/vendor/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php @@ -68,10 +68,10 @@ public function refactor(Node $node): ?Node if (!$this->isName($node->name, 'addMultiple')) { return null; } - if (!$this->nodeTypeResolver->isObjectType($node->var, new ObjectType(DoctrineClass::COMPOSITE_EXPRESSION))) { + if ($node->isFirstClassCallable()) { return null; } - if ($node->isFirstClassCallable()) { + if (!$this->nodeTypeResolver->isObjectType($node->var, new ObjectType(DoctrineClass::COMPOSITE_EXPRESSION))) { return null; } $node->name = new Identifier('with'); diff --git a/vendor/rector/rector-doctrine/rules/Orm28/Rector/MethodCall/IterateToToIterableRector.php b/vendor/rector/rector-doctrine/rules/Orm28/Rector/MethodCall/IterateToToIterableRector.php index 9bc26fe31fc..456ab987de1 100644 --- a/vendor/rector/rector-doctrine/rules/Orm28/Rector/MethodCall/IterateToToIterableRector.php +++ b/vendor/rector/rector-doctrine/rules/Orm28/Rector/MethodCall/IterateToToIterableRector.php @@ -83,6 +83,10 @@ public function refactor(Node $node) if ($node instanceof Foreach_) { return $this->refactorForeach($node); } + // Change iterate() method calls to toIterable() + if (!$this->isName($node->name, 'iterate')) { + return null; + } $varType = $this->nodeTypeResolver->getType($node->var); if (!$varType instanceof ObjectType) { return null; @@ -90,10 +94,6 @@ public function refactor(Node $node) if (!$varType->isInstanceOf(DoctrineClass::ABSTRACT_QUERY)->yes()) { return null; } - // Change iterate() method calls to toIterable() - if (!$this->isName($node->name, 'iterate')) { - return null; - } $node->name = new Identifier('toIterable'); return $node; } diff --git a/vendor/rector/rector-doctrine/rules/Orm30/Rector/MethodCall/SetParametersArrayToCollectionRector.php b/vendor/rector/rector-doctrine/rules/Orm30/Rector/MethodCall/SetParametersArrayToCollectionRector.php index 72628d3e157..814c7994e63 100644 --- a/vendor/rector/rector-doctrine/rules/Orm30/Rector/MethodCall/SetParametersArrayToCollectionRector.php +++ b/vendor/rector/rector-doctrine/rules/Orm30/Rector/MethodCall/SetParametersArrayToCollectionRector.php @@ -130,17 +130,17 @@ private function getAffectedVariables(ClassMethod $classMethod): iterable } private function refactorMethodCall(MethodCall $methodCall): ?\PhpParser\Node { - $varType = $this->nodeTypeResolver->getType($methodCall->var); - if (!$varType instanceof ObjectType) { + if ($methodCall->isFirstClassCallable()) { return null; } - if (!$varType->isInstanceOf('Doctrine\ORM\QueryBuilder')->yes()) { + if (!$this->isNames($methodCall->name, ['setParameters'])) { return null; } - if ($methodCall->isFirstClassCallable()) { + $varType = $this->nodeTypeResolver->getType($methodCall->var); + if (!$varType instanceof ObjectType) { return null; } - if (!$this->isNames($methodCall->name, ['setParameters'])) { + if (!$varType->isInstanceOf('Doctrine\ORM\QueryBuilder')->yes()) { return null; } $args = $methodCall->getArgs(); diff --git a/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php b/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php index 600c7d987a0..8a394925118 100644 --- a/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php +++ b/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php @@ -139,6 +139,7 @@ public function refactor(Node $node): ?Node } } } + // @phpstan-ignore rector.rectorCheaperGuardsFirst (cannot hoist above the CallLike block, which marks IS_FALSY_UNCASTABLE on non-substr nodes) if (!$this->isName($node, 'substr')) { return null; } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddSeeTestAnnotationRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddSeeTestAnnotationRector.php index 893fd3900c0..349661e4076 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddSeeTestAnnotationRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddSeeTestAnnotationRector.php @@ -98,10 +98,10 @@ public function refactor(Node $node): ?Node } $possibleTestClassNames = $this->testClassNameResolver->resolve($className); $matchingTestClassName = $this->matchExistingClassName($possibleTestClassNames); - $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); if ($matchingTestClassName === null) { return null; } + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); if ($this->hasAlreadySeeAnnotation($phpDocInfo, $matchingTestClassName)) { return null; } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php index d73552c6f07..0dad80d0950 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php @@ -218,6 +218,7 @@ public function refactor(Node $node): ?Class_ } } }); + // @phpstan-ignore rector.rectorCheaperGuardsFirst ($hasChanged is set by-reference inside the traversal above that holds the expensive calls) if (!$hasChanged) { return null; } diff --git a/vendor/rector/rector-phpunit/rules/PHPUnit60/Rector/MethodCall/GetMockBuilderGetMockToCreateMockRector.php b/vendor/rector/rector-phpunit/rules/PHPUnit60/Rector/MethodCall/GetMockBuilderGetMockToCreateMockRector.php index 765cdc74aeb..116c2e2b0de 100644 --- a/vendor/rector/rector-phpunit/rules/PHPUnit60/Rector/MethodCall/GetMockBuilderGetMockToCreateMockRector.php +++ b/vendor/rector/rector-phpunit/rules/PHPUnit60/Rector/MethodCall/GetMockBuilderGetMockToCreateMockRector.php @@ -88,11 +88,11 @@ public function refactor(Node $node): ?Node if (!$this->isLocalScopeCaller($currentMethodCall)) { return null; } - // must be be test case class - if (!$this->isObjectType($currentMethodCall->var, new ObjectType('PHPUnit\Framework\TestCase'))) { + if (!$this->isName($currentMethodCall->name, 'getMockBuilder')) { return null; } - if (!$this->isName($currentMethodCall->name, 'getMockBuilder')) { + // must be be test case class + if (!$this->isObjectType($currentMethodCall->var, new ObjectType('PHPUnit\Framework\TestCase'))) { return null; } $args = $currentMethodCall->args; diff --git a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/AssertSameResponseCodeWithDebugContentsRector.php b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/AssertSameResponseCodeWithDebugContentsRector.php index ce5e138cb84..02758aabca1 100644 --- a/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/AssertSameResponseCodeWithDebugContentsRector.php +++ b/vendor/rector/rector-symfony/rules/CodeQuality/Rector/MethodCall/AssertSameResponseCodeWithDebugContentsRector.php @@ -109,6 +109,10 @@ private function matchResponseExpr(Expr $expr): ?Expr if (!$expr instanceof MethodCall) { return null; } + // must be status method call + if (!$this->isName($expr->name, 'getStatusCode')) { + return null; + } $varType = $this->nodeTypeResolver->getType($expr->var); if (!$varType instanceof ObjectType) { return null; @@ -116,10 +120,6 @@ private function matchResponseExpr(Expr $expr): ?Expr if (!$varType->isInstanceof(ResponseClass::BASIC)->yes()) { return null; } - // must be status method call - if (!$this->isName($expr->name, 'getStatusCode')) { - return null; - } return $expr->var; } } diff --git a/vendor/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/AddViolationToBuildViolationRector.php b/vendor/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/AddViolationToBuildViolationRector.php index 95fc5cd7560..00ce6bf38a9 100644 --- a/vendor/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/AddViolationToBuildViolationRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/AddViolationToBuildViolationRector.php @@ -54,6 +54,9 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?MethodCall { + if (!$this->isName($node->name, 'addViolationAt')) { + return null; + } $objectType = $this->nodeTypeResolver->getType($node->var); if (!$objectType instanceof ObjectType) { return null; @@ -62,9 +65,6 @@ public function refactor(Node $node): ?MethodCall if (!$executionContext->isSuperTypeOf($objectType)->yes()) { return null; } - if (!$this->isName($node->name, 'addViolationAt')) { - return null; - } $args = $node->getArgs(); $path = $args[0]; $message = $args[1]; diff --git a/vendor/rector/rector-symfony/rules/Symfony33/Rector/ClassConstFetch/ConsoleExceptionToErrorEventConstantRector.php b/vendor/rector/rector-symfony/rules/Symfony33/Rector/ClassConstFetch/ConsoleExceptionToErrorEventConstantRector.php index 219d48e2ff2..c658c111f9e 100644 --- a/vendor/rector/rector-symfony/rules/Symfony33/Rector/ClassConstFetch/ConsoleExceptionToErrorEventConstantRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony33/Rector/ClassConstFetch/ConsoleExceptionToErrorEventConstantRector.php @@ -50,15 +50,15 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node instanceof ClassConstFetch && ($this->isObjectType($node->class, $this->consoleEventsObjectType) && $this->isName($node->name, 'EXCEPTION'))) { + if ($node instanceof String_) { + if ($node->value !== 'console.exception') { + return null; + } return $this->nodeFactory->createClassConstFetch($this->consoleEventsObjectType->getClassName(), 'ERROR'); } - if (!$node instanceof String_) { - return null; - } - if ($node->value !== 'console.exception') { - return null; + if ($this->isObjectType($node->class, $this->consoleEventsObjectType) && $this->isName($node->name, 'EXCEPTION')) { + return $this->nodeFactory->createClassConstFetch($this->consoleEventsObjectType->getClassName(), 'ERROR'); } - return $this->nodeFactory->createClassConstFetch($this->consoleEventsObjectType->getClassName(), 'ERROR'); + return null; } } diff --git a/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/ContainerBuilderCompileEnvArgumentRector.php b/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/ContainerBuilderCompileEnvArgumentRector.php index df0a32d53da..966fc65c5e8 100644 --- a/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/ContainerBuilderCompileEnvArgumentRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/ContainerBuilderCompileEnvArgumentRector.php @@ -51,10 +51,10 @@ public function refactor(Node $node): ?Node if (!$this->isName($node->name, 'compile')) { return null; } - if (!$this->isObjectType($node->var, new ObjectType('Symfony\Component\DependencyInjection\ContainerBuilder'))) { + if (count($node->args) === 1) { return null; } - if (count($node->args) === 1) { + if (!$this->isObjectType($node->var, new ObjectType('Symfony\Component\DependencyInjection\ContainerBuilder'))) { return null; } $node->args = $this->nodeFactory->createArgs([$this->nodeFactory->createTrue()]); diff --git a/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/VarDumperTestTraitMethodArgsRector.php b/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/VarDumperTestTraitMethodArgsRector.php index d6b5929d9ac..8f8867ce39c 100644 --- a/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/VarDumperTestTraitMethodArgsRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony40/Rector/MethodCall/VarDumperTestTraitMethodArgsRector.php @@ -42,10 +42,10 @@ public function refactor(Node $node): ?Node if (!$this->isNames($node->name, ['assertDumpEquals', 'assertDumpMatchesFormat'])) { return null; } - if (!$this->isObjectType($node->var, new ObjectType('Symfony\Component\VarDumper\Test\VarDumperTestTrait'))) { + if (count($node->args) <= 2) { return null; } - if (count($node->args) <= 2) { + if (!$this->isObjectType($node->var, new ObjectType('Symfony\Component\VarDumper\Test\VarDumperTestTrait'))) { return null; } $secondArg = $node->args[2]; diff --git a/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/AuthorizationCheckerIsGrantedExtractorRector.php b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/AuthorizationCheckerIsGrantedExtractorRector.php index c35a41b4eb1..e428db0b3dd 100644 --- a/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/AuthorizationCheckerIsGrantedExtractorRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/AuthorizationCheckerIsGrantedExtractorRector.php @@ -107,6 +107,9 @@ public function refactor(Node $node) } return null; } + if (!$this->isName($node->name, 'isGranted')) { + return null; + } $objectType = $this->nodeTypeResolver->getType($node->var); if (!$objectType instanceof ObjectType) { return null; @@ -115,9 +118,6 @@ public function refactor(Node $node) if (!$authorizationChecker->isSuperTypeOf($objectType)->yes()) { return null; } - if (!$this->isName($node->name, 'isGranted')) { - return null; - } return $this->handleIsGranted($node); } /** diff --git a/vendor/rector/rector-symfony/rules/Symfony81/Rector/MethodCall/RenameCopyOnWindowsOptionToFollowSymlinksRector.php b/vendor/rector/rector-symfony/rules/Symfony81/Rector/MethodCall/RenameCopyOnWindowsOptionToFollowSymlinksRector.php index 55ff85040da..01eadc86813 100644 --- a/vendor/rector/rector-symfony/rules/Symfony81/Rector/MethodCall/RenameCopyOnWindowsOptionToFollowSymlinksRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony81/Rector/MethodCall/RenameCopyOnWindowsOptionToFollowSymlinksRector.php @@ -70,10 +70,10 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if (!$this->isObjectType($node->var, new ObjectType('Symfony\Component\Filesystem\Filesystem'))) { + if (!$this->isName($node->name, 'mirror')) { return null; } - if (!$this->isName($node->name, 'mirror')) { + if (!$this->isObjectType($node->var, new ObjectType('Symfony\Component\Filesystem\Filesystem'))) { return null; } $optionsArg = null; From cafd5682622b055999892e8241d7fe9eb52000c5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 17:42:55 +0000 Subject: [PATCH 074/169] Updated Rector to commit 6af747ae61b0a57c9d050fac873b2050a35ad66a https://github.com/rectorphp/rector-src/commit/6af747ae61b0a57c9d050fac873b2050a35ad66a Reuse RectorCheaperGuardsFirstRule from symplify/phpstan-rules (#8404) --- src/Application/VersionResolver.php | 4 ++-- src/Set/ValueObject/SetList.php | 1 + vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 10 +++++----- vendor/composer/autoload_static.php | 8 ++++---- vendor/scoper-autoload.php | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 5b0119e7c2a..11a44a91bc2 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 = 'b22371b99695a4c8f3de0dbe8a0d1e431ba287fd'; + public const PACKAGE_VERSION = '6af747ae61b0a57c9d050fac873b2050a35ad66a'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 19:11:59'; + public const RELEASE_DATE = '2026-08-29 19:40:29'; /** * @var int */ diff --git a/src/Set/ValueObject/SetList.php b/src/Set/ValueObject/SetList.php index 7b8c0370a22..a6a58efd651 100644 --- a/src/Set/ValueObject/SetList.php +++ b/src/Set/ValueObject/SetList.php @@ -125,6 +125,7 @@ final class SetList */ public const TYPE_DECLARATION_DOCBLOCKS = __DIR__ . '/../../../config/set/type-declaration-docblocks.php'; /** + * @deprecated Use code-quality set instead, as all early return rules were moved there * @var string */ public const EARLY_RETURN = __DIR__ . '/../../../config/set/early-return.php'; diff --git a/vendor/autoload.php b/vendor/autoload.php index f820368d56d..8a611af0db7 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148::getLoader(); +return ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 059ee4b140b..2e5eecc2972 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148 +class ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$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 3ea3fc49e44..c306af09287 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148 +class ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -3026,9 +3026,9 @@ class ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitc423eb83aa3bc08df4fed218e95ec148::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index db714fa9362..2cb50f249fa 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148', 'RectorPrefix202608\ComposerAutoloaderInitc423eb83aa3bc08df4fed218e95ec148'); +humbug_phpscoper_expose_class('ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25', 'RectorPrefix202608\ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); From b53fabc838443d0b86ac7714a77f020535cc9ac7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 17:50:46 +0000 Subject: [PATCH 075/169] Updated Rector to commit 6af747ae61b0a57c9d050fac873b2050a35ad66a --- vendor/composer/installed.json | 10 +++++----- vendor/composer/installed.php | 2 +- .../rector/extension-installer/src/GeneratedConfig.php | 2 +- vendor/rector/rector-downgrade-php/composer.json | 2 +- .../Rector/FuncCall/DowngradeSubstrFalsyRector.php | 1 - 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 28698de4df6..082a28d7d08 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "4010c8b39b2f6127f55f4f9073ddbbffe7da2155" + "reference": "a3ba7ce6033e90ed2a0cd56ebc4812315369f701" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/4010c8b39b2f6127f55f4f9073ddbbffe7da2155", - "reference": "4010c8b39b2f6127f55f4f9073ddbbffe7da2155", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/a3ba7ce6033e90ed2a0cd56ebc4812315369f701", + "reference": "a3ba7ce6033e90ed2a0cd56ebc4812315369f701", "shasum": "" }, "require": { @@ -1635,14 +1635,14 @@ "rector\/swiss-knife": "^2.4", "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-extensions": "^12.0", - "symplify\/phpstan-rules": "^14.12", + "symplify\/phpstan-rules": "^14.13.1", "symplify\/rule-doc-generator": "^12.2", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-29T17:32:07+00:00", + "time": "2026-08-29T17:48:26+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 2b714a94b90..47c8e7c434a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '4010c8b39b2f6127f55f4f9073ddbbffe7da2155', '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' => 'e3e455387c465cd2c053251edf1be2095cabd13f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'a3ba7ce6033e90ed2a0cd56ebc4812315369f701', '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' => 'e3e455387c465cd2c053251edf1be2095cabd13f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 615fdcc2bbc..d19a2e17f31 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 4010c8b'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e3e4553'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main a3ba7ce'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e3e4553'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-downgrade-php/composer.json b/vendor/rector/rector-downgrade-php/composer.json index 1a27716633a..14fec0d1d3b 100644 --- a/vendor/rector/rector-downgrade-php/composer.json +++ b/vendor/rector/rector-downgrade-php/composer.json @@ -17,7 +17,7 @@ "rector\/swiss-knife": "^2.4", "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-extensions": "^12.0", - "symplify\/phpstan-rules": "^14.12", + "symplify\/phpstan-rules": "^14.13.1", "symplify\/rule-doc-generator": "^12.2", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", diff --git a/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php b/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php index 8a394925118..600c7d987a0 100644 --- a/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php +++ b/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/FuncCall/DowngradeSubstrFalsyRector.php @@ -139,7 +139,6 @@ public function refactor(Node $node): ?Node } } } - // @phpstan-ignore rector.rectorCheaperGuardsFirst (cannot hoist above the CallLike block, which marks IS_FALSY_UNCASTABLE on non-substr nodes) if (!$this->isName($node, 'substr')) { return null; } From 4e6ac7ab9093ad77c7919647e8fb36410c8ea6c1 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 20:11:28 +0000 Subject: [PATCH 076/169] Updated Rector to commit fa3b728a2ab7ac1eaf7315de79103a6a3ac4a90f https://github.com/rectorphp/rector-src/commit/fa3b728a2ab7ac1eaf7315de79103a6a3ac4a90f [dx] load composer-based sets from laravel and drupal, deprecate the group approach (#8406) --- src/Application/VersionResolver.php | 4 +-- src/Configuration/RectorConfigBuilder.php | 27 +++++-------------- src/Set/Enum/SetGroup.php | 2 ++ vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 10 +++---- vendor/composer/autoload_static.php | 8 +++--- vendor/composer/installed.json | 10 +++---- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- vendor/rector/rector-phpunit/composer.json | 2 +- ...eWillReturnCallableArrowFunctionRector.php | 1 - vendor/scoper-autoload.php | 2 +- 12 files changed, 30 insertions(+), 42 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 11a44a91bc2..10eddce7c50 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 = '6af747ae61b0a57c9d050fac873b2050a35ad66a'; + public const PACKAGE_VERSION = 'fa3b728a2ab7ac1eaf7315de79103a6a3ac4a90f'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 19:40:29'; + public const RELEASE_DATE = '2026-08-29 22:08:55'; /** * @var int */ diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index cc7d581e24f..8f4a1d31080 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -23,7 +23,6 @@ use Rector\Exception\Configuration\InvalidConfigurationException; use Rector\Php\PhpVersionResolver\ComposerJsonPhpVersionResolver; use Rector\PHPUnit\Set\PHPUnitSetList; -use Rector\Set\Enum\SetGroup; use Rector\Set\ValueObject\DowngradeLevelSetList; use Rector\Set\ValueObject\SetList; use Rector\Symfony\Set\SymfonyInternalSetList; @@ -31,6 +30,7 @@ use Rector\Symfony\Set\TwigSetList; use Rector\ValueObject\Configuration\LevelOverflow; use Rector\ValueObject\PhpVersion; +use RectorLaravel\Set\LaravelSetList; use RectorPrefix202608\Symfony\Component\Finder\Finder; use RectorPrefix202608\Webmozart\Assert\Assert; /** @@ -49,13 +49,6 @@ final class RectorConfigBuilder * @var array level method name => [set file path, set title] */ private const LEVEL_METHOD_TO_SET = ['withTypeCoverageLevel' => [SetList::TYPE_DECLARATION, 'type declarations'], 'withTypeCoverageDocblockLevel' => [SetList::TYPE_DECLARATION_DOCBLOCKS, 'type declaration docblocks'], 'withDeadCodeLevel' => [SetList::DEAD_CODE, 'dead code'], 'withCodeQualityLevel' => [SetList::CODE_QUALITY, 'code quality'], 'withCodingStyleLevel' => [SetList::CODING_STYLE, 'coding style']]; - /** - * The composer-based set of the extensions that rector-src does not require, so their set list class cannot be - * imported here. Resolved at run-time; an extension that ships no such set falls back to its set group. - * - * @var array - */ - private const EXTENSION_COMPOSER_BASED_SET_LISTS = [SetGroup::LARAVEL => 'RectorLaravel\Set\LaravelSetList::COMPOSER_BASED', SetGroup::DRUPAL => 'DrupalRector\Set\DrupalSetList::COMPOSER_BASED']; /** * @var string[] */ @@ -443,18 +436,12 @@ public function withPreparedSets(bool $deadCode = \false, bool $codeQuality = \f } public function withComposerBased(bool $twig = \false, bool $doctrine = \false, bool $phpunit = \false, bool $symfony = \false, bool $netteUtils = \false, bool $laravel = \false, bool $drupal = \false): self { - $setMap = [SetGroup::LARAVEL => $laravel, SetGroup::DRUPAL => $drupal]; - foreach ($setMap as $setGroup => $isEnabled) { - if (!$isEnabled) { - continue; - } - $setListConstant = self::EXTENSION_COMPOSER_BASED_SET_LISTS[$setGroup]; - if (defined($setListConstant)) { - $setFilePath = constant($setListConstant); - Assert::string($setFilePath); - // single set, as every rule inside is bound to the installed package version on its own - $this->sets[] = $setFilePath; - } + if ($laravel && class_exists('RectorLaravel\Set\LaravelSetList') && constant('RectorLaravel\Set\LaravelSetList::COMPOSER_BASED')) { + $this->sets[] = LaravelSetList::COMPOSER_BASED; + } + if ($drupal && class_exists('DrupalRector\Set\DrupalSetList') && constant('DrupalRector\Set\DrupalSetList::COMPOSER_BASED')) { + // waits on https://github.com/palantirnet/drupal-rector/pull/419/files#diff-c6bd4ee854830efc1363a7d99c1b6a2e7e64f2499a51e503174ab777de7e64e5 + $this->sets[] = \RectorPrefix202608\DrupalRector\Set\DrupalSetList::COMPOSER_BASED; } if ($phpunit) { // single set, as every rule inside is bound to the installed PHPUnit version on its own diff --git a/src/Set/Enum/SetGroup.php b/src/Set/Enum/SetGroup.php index 6aa3992e227..711912f088e 100644 --- a/src/Set/Enum/SetGroup.php +++ b/src/Set/Enum/SetGroup.php @@ -17,11 +17,13 @@ final class SetGroup */ public const PHP = 'php'; /** + * @deprecated Use composer-based.php set instead * Version-based set provider * @var string */ public const LARAVEL = 'laravel'; /** + * @deprecated Use composer-based.php set instead * Version-based set provider * @var string */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 8a611af0db7..2beb4318313 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25::getLoader(); +return ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 2e5eecc2972..e50002275a4 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25 +class ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$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 c306af09287..92718e910b5 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25 +class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -3026,9 +3026,9 @@ class ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit7b38cf7c8d2f102425e34eafbe202a25::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 082a28d7d08..ad9baf06082 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "e3e455387c465cd2c053251edf1be2095cabd13f" + "reference": "c4e571ee6d61aa0bf68346bab12b85e2df3aead2" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/e3e455387c465cd2c053251edf1be2095cabd13f", - "reference": "e3e455387c465cd2c053251edf1be2095cabd13f", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/c4e571ee6d61aa0bf68346bab12b85e2df3aead2", + "reference": "c4e571ee6d61aa0bf68346bab12b85e2df3aead2", "shasum": "" }, "require": { @@ -1696,13 +1696,13 @@ "rector\/swiss-knife": "^2.4", "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-extensions": "^12.0", - "symplify\/phpstan-rules": "^14.12", + "symplify\/phpstan-rules": "^14.13.1", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-29T17:32:10+00:00", + "time": "2026-08-29T17:48:30+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 47c8e7c434a..ffd56faf1a3 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'a3ba7ce6033e90ed2a0cd56ebc4812315369f701', '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' => 'e3e455387c465cd2c053251edf1be2095cabd13f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'a3ba7ce6033e90ed2a0cd56ebc4812315369f701', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 d19a2e17f31..d8e5a6b631d 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main a3ba7ce'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main e3e4553'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main a3ba7ce'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/composer.json b/vendor/rector/rector-phpunit/composer.json index a395909467a..b2fd79e9791 100644 --- a/vendor/rector/rector-phpunit/composer.json +++ b/vendor/rector/rector-phpunit/composer.json @@ -17,7 +17,7 @@ "rector\/swiss-knife": "^2.4", "symplify\/easy-coding-standard": "^13.2", "symplify\/phpstan-extensions": "^12.0", - "symplify\/phpstan-rules": "^14.12", + "symplify\/phpstan-rules": "^14.13.1", "tomasvotruba\/class-leak": "^2.1", "tomasvotruba\/type-coverage": "^2.3", "tomasvotruba\/unused-public": "^2.2", diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php index 0dad80d0950..d73552c6f07 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TypeWillReturnCallableArrowFunctionRector.php @@ -218,7 +218,6 @@ public function refactor(Node $node): ?Class_ } } }); - // @phpstan-ignore rector.rectorCheaperGuardsFirst ($hasChanged is set by-reference inside the traversal above that holds the expensive calls) if (!$hasChanged) { return null; } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 2cb50f249fa..053682ae762 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25', 'RectorPrefix202608\ComposerAutoloaderInit7b38cf7c8d2f102425e34eafbe202a25'); +humbug_phpscoper_expose_class('ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97', 'RectorPrefix202608\ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); From df8e723bc4aa95bac2e32de0aca496d73a1c1111 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 21:10:33 +0000 Subject: [PATCH 077/169] Updated Rector to commit cdfd2b5d462d13b168985682ac17954a75e92a0f https://github.com/rectorphp/rector-src/commit/cdfd2b5d462d13b168985682ac17954a75e92a0f [dx] Deprecate SetList::PHP_* constants in favor of withPhpSets()/withPhpLevel(), introduce ruleWithConfigurationPhpVersionBound() (#8405) --- config/set/php-version-based.php | 408 ++++++++++++++++++ src/Application/VersionResolver.php | 4 +- src/Config/RectorConfig.php | 31 ++ src/Configuration/PhpLevelSetResolver.php | 35 -- src/Configuration/RectorConfigBuilder.php | 33 +- src/Console/Notifier.php | 6 + src/Set/ValueObject/SetList.php | 22 + src/VersionBonding/PhpVersionedFilter.php | 8 +- vendor/composer/autoload_classmap.php | 43 +- vendor/composer/autoload_psr4.php | 1 + vendor/composer/autoload_static.php | 48 ++- vendor/composer/installed.json | 18 +- vendor/composer/installed.php | 2 +- vendor/tomasvotruba/class-leak/composer.json | 12 +- .../config/unused-public-extension.neon | 2 + vendor/tomasvotruba/class-leak/ecs.php | 4 +- .../unused-public/config/extension.neon | 110 +++++ .../unused-public/src/ApiDocStmtAnalyzer.php | 30 ++ .../CallReferece/CallReferencesFlatter.php | 28 ++ .../ParentCallReferenceResolver.php | 34 ++ .../src/ClassMethodCallReferenceResolver.php | 39 ++ .../unused-public/src/ClassTypeDetector.php | 20 + .../MethodCallCollectorMapper.php | 55 +++ .../Callable_/AttributeCallableCollector.php | 81 ++++ .../Callable_/CallableTypeCollector.php | 73 ++++ .../Collectors/ClassConstFetchCollector.php | 70 +++ .../src/Collectors/FormTypeClassCollector.php | 52 +++ .../MethodCall/MethodCallCollector.php | 82 ++++ .../MethodCall/MethodCallableCollector.php | 69 +++ .../PublicClassLikeConstCollector.php | 63 +++ .../Collectors/PublicClassMethodCollector.php | 129 ++++++ .../Collectors/PublicPropertyCollector.php | 155 +++++++ .../PublicPropertyFetchCollector.php | 77 ++++ .../PublicStaticPropertyFetchCollector.php | 72 ++++ .../StaticCall/StaticMethodCallCollector.php | 59 +++ .../StaticMethodCallableCollector.php | 59 +++ .../unused-public/src/Configuration.php | 73 ++++ .../src/Enum/ReferenceMarker.php | 12 + .../unused-public/src/Enum/RuleIdentifier.php | 12 + .../unused-public/src/Enum/RuleTips.php | 17 + .../src/Enum/Template/BladeRegex.php | 33 ++ .../src/Enum/Template/TwigRegex.php | 18 + .../src/Finder/TemplateFilesFinder.php | 27 ++ .../unused-public/src/MethodTypeDetector.php | 40 ++ .../src/NodeCollectorExtractor.php | 45 ++ .../src/PublicClassMethodMatcher.php | 80 ++++ .../Rules/LocalOnlyPublicClassMethodRule.php | 100 +++++ .../RelativeUnusedPublicClassMethodRule.php | 127 ++++++ .../src/Rules/UnusedPublicClassConstRule.php | 90 ++++ .../src/Rules/UnusedPublicClassMethodRule.php | 107 +++++ .../src/Rules/UnusedPublicPropertyRule.php | 87 ++++ .../Templates/TemplateMethodCallsProvider.php | 45 ++ .../src/Templates/TemplateRegexFinder.php | 54 +++ .../src/Templates/UsedMethodAnalyzer.php | 33 ++ .../unused-public/src/Utils/Arrays.php | 23 + .../unused-public/src/Utils/Strings.php | 24 ++ .../ValueObject/ClassAndMethodArrayExprs.php | 30 ++ .../LocalAndExternalMethodCallReferences.php | 41 ++ .../src/ValueObject/MethodCallReference.php | 38 ++ .../stubs/Doctrine/Common/EventSubscriber.php | 12 + .../Handler/SubscribingHandlerInterface.php | 12 + .../stubs/Laravel/Console/Command.php | 8 + .../stubs/Livewire/Component.php | 8 + .../FramworkBundle/Controller/Controller.php | 11 + .../Symfony/Component/Form/AbstractType.php | 12 + .../OptionsResolver/OptionsResolver.php | 11 + .../stubs/Twig/AbstractExtension.php | 11 + .../stubs/Twig/ExtensionInterface.php | 12 + vendor/tomasvotruba/class-leak/phpstan.neon | 13 + vendor/tomasvotruba/class-leak/phpunit.xml | 1 + vendor/tomasvotruba/class-leak/rector.php | 2 +- 71 files changed, 3239 insertions(+), 64 deletions(-) create mode 100644 config/set/php-version-based.php delete mode 100644 src/Configuration/PhpLevelSetResolver.php create mode 100644 vendor/tomasvotruba/class-leak/config/unused-public-extension.neon create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/config/extension.neon create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleIdentifier.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleTips.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/BladeRegex.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/MethodTypeDetector.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Utils/Arrays.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/Utils/Strings.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/ClassAndMethodArrayExprs.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Doctrine/Common/EventSubscriber.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/JMS/Serializer/Handler/SubscribingHandlerInterface.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Laravel/Console/Command.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Livewire/Component.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Symfony/Bundle/FramworkBundle/Controller/Controller.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Symfony/Component/Form/AbstractType.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Symfony/Component/OptionsResolver/OptionsResolver.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Twig/AbstractExtension.php create mode 100644 vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Twig/ExtensionInterface.php diff --git a/config/set/php-version-based.php b/config/set/php-version-based.php new file mode 100644 index 00000000000..cd77527232d --- /dev/null +++ b/config/set/php-version-based.php @@ -0,0 +1,408 @@ +rules([ + // PHP 5.2 + VarToPublicPropertyRector::class, + ContinueToBreakInSwitchRector::class, + // PHP 5.3 + ExplicitPublicClassMethodRector::class, + TernaryToElvisRector::class, + DirNameFileConstantToDirConstantRector::class, + ReplaceHttpServerVarsByServerRector::class, + // PHP 5.4 + LongArrayToShortArrayRector::class, + RemoveReferenceFromCallRector::class, + RemoveZeroBreakContinueRector::class, + // PHP 5.5 + StringClassNameToClassConstantRector::class, + ClassConstantToSelfClassRector::class, + PregReplaceEModifierRector::class, + GetCalledClassToSelfClassRector::class, + GetCalledClassToStaticClassRector::class, + StaticToSelfOnFinalClassRector::class, + // PHP 5.6 + PowToExpRector::class, + // PHP 7.0 + Php4ConstructorRector::class, + TernaryToNullCoalescingRector::class, + RandomFunctionRector::class, + ExceptionHandlerTypehintRector::class, + MultiDirnameRector::class, + ListSplitStringRector::class, + EmptyListRector::class, + ListSwapArrayOrderRector::class, + CallUserMethodRector::class, + EregToPregMatchRector::class, + ReduceMultipleDefaultSwitchRector::class, + TernaryToSpaceshipRector::class, + WrapVariableVariableNameInCurlyBracesRector::class, + IfToSpaceshipRector::class, + ThisCallOnStaticMethodToStaticCallRector::class, + BreakNotInLoopOrSwitchToReturnRector::class, + RenameMktimeWithoutArgsToTimeRector::class, + IfIssetToCoalescingRector::class, + // PHP 7.1 + IsIterableRector::class, + MultiExceptionCatchRector::class, + AssignArrayToStringRector::class, + RemoveExtraParametersRector::class, + BinaryOpBetweenNumberAndStringRector::class, + ListToArrayDestructRector::class, + // PHP 7.2 + GetClassOnNullRector::class, + ParseStrWithResultArgumentRector::class, + StringsAssertNakedRector::class, + CreateFunctionToAnonymousFunctionRector::class, + StringifyDefineRector::class, + WhileEachToForeachRector::class, + ListEachRector::class, + ReplaceEachAssignmentWithKeyCurrentRector::class, + UnsetCastRector::class, + // PHP 7.3 + StringifyStrNeedlesRector::class, + RegexDashEscapeRector::class, + SetCookieRector::class, + IsCountableRector::class, + ArrayKeyFirstLastRector::class, + ArrayKeysToArrayKeyFirstLastRector::class, + SensitiveDefineRector::class, + SensitiveConstantNameRector::class, + SensitiveHereNowDocRector::class, + // PHP 7.4 + ArrayKeyExistsOnPropertyRector::class, + FilterVarToAddSlashesRector::class, + ExportToReflectionFunctionRector::class, + MbStrrposEncodingArgumentPositionRector::class, + NullCoalescingOperatorRector::class, + IfToNullCoalescingAssignRector::class, + ClosureToArrowFunctionRector::class, + RestoreDefaultNullToNullableTypePropertyRector::class, + CurlyToSquareBracketArrayStringRector::class, + MoneyFormatToNumberFormatRector::class, + ParenthesizeNestedTernaryRector::class, + RestoreIncludePathToIniRestoreRector::class, + HebrevcToNl2brHebrevRector::class, + // PHP 8.0 + StrContainsRector::class, + StrStartsWithRector::class, + StrEndsWithRector::class, + StringableForToStringRector::class, + ClassOnObjectRector::class, + GetDebugTypeRector::class, + RemoveUnusedVariableInCatchRector::class, + ClassPropertyAssignToConstructorPromotionRector::class, + ChangeSwitchToMatchRector::class, + RemoveParentCallWithoutParentRector::class, + SetStateToStaticRector::class, + FinalPrivateToPrivateVisibilityRector::class, + AddParamBasedOnParentClassMethodRector::class, + ClassOnThisVariableObjectRector::class, + ConsistentImplodeRector::class, + OptionalParametersAfterRequiredRector::class, + // PHP 8.1 + ReturnNeverTypeRector::class, + MyCLabsClassToEnumRector::class, + MyCLabsMethodCallToEnumConstRector::class, + MyCLabsConstructorCallToEnumFromRector::class, + ReadOnlyPropertyRector::class, + SpatieEnumClassToEnumRector::class, + SpatieEnumMethodCallToEnumConstRector::class, + NullToStrictIntPregSlitFuncCallLimitArgRector::class, + ArrayToFirstClassCallableRector::class, + ArrowFunctionDelegatingCallToFirstClassCallableRector::class, + ClosureDelegatingCallToFirstClassCallableRector::class, + ClosureFromCallableToFirstClassCallableRector::class, + FunctionFirstClassCallableRector::class, + RemoveReflectionSetAccessibleCallsRector::class, + // PHP 8.2 + ReadOnlyClassRector::class, + Utf8DecodeEncodeToMbConvertEncodingRector::class, + FilesystemIteratorSkipDotsRector::class, + VariableInStringInterpolationFixerRector::class, + // PHP 8.3 + AddTypeToConstRector::class, + CombineHostPortLdapUriRector::class, + RemoveGetClassGetParentClassNoArgsRector::class, + ReadOnlyAnonymousClassRector::class, + DynamicClassConstFetchRector::class, + JsonValidateRector::class, + // PHP 8.4 + ExplicitNullableParamTypeRector::class, + RoundingModeEnumRector::class, + AddEscapeArgumentRector::class, + NewMethodCallWithoutParenthesesRector::class, + ForeachToArrayFindRector::class, + ForeachToArrayFindKeyRector::class, + ForeachToArrayAllRector::class, + ForeachToArrayAnyRector::class, + // PHP 8.5 + ArrayFirstLastRector::class, + RemoveFinfoBufferContextArgRector::class, + NullDebugInfoReturnRector::class, + ColonAfterSwitchCaseRector::class, + ArrayKeyExistsNullToEmptyStringRector::class, + ChrArgModuloRector::class, + SleepToSerializeRector::class, + OrdSingleByteRector::class, + WakeupToUnserializeRector::class, + ShellExecFunctionCallOverBackticksRector::class, + AddOverrideAttributeToOverriddenPropertiesRector::class, + // PHP 8.6 + MinMaxToClampRector::class, + ]); + // configured rules, each bound to the PHP version its configuration targets + // PHP 5.2 + $rectorConfig->ruleWithConfigurationPhpVersionBound(RemoveFuncCallArgRector::class, [ + // see https://www.php.net/manual/en/function.ldap-first-attribute.php + new RemoveFuncCallArg('ldap_first_attribute', 2), + ], PhpVersion::PHP_52); + // PHP 5.4 + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameFunctionRector::class, ['mysqli_param_count' => 'mysqli_stmt_param_count'], PhpVersion::PHP_54); + // PHP 5.6 + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameFunctionRector::class, ['mcrypt_generic_end' => 'mcrypt_generic_deinit', 'set_socket_blocking' => 'stream_set_blocking', 'ocibindbyname' => 'oci_bind_by_name', 'ocicancel' => 'oci_cancel', 'ocicolumnisnull' => 'oci_field_is_null', 'ocicolumnname' => 'oci_field_name', 'ocicolumnprecision' => 'oci_field_precision', 'ocicolumnscale' => 'oci_field_scale', 'ocicolumnsize' => 'oci_field_size', 'ocicolumntype' => 'oci_field_type', 'ocicolumntyperaw' => 'oci_field_type_raw', 'ocicommit' => 'oci_commit', 'ocidefinebyname' => 'oci_define_by_name', 'ocierror' => 'oci_error', 'ociexecute' => 'oci_execute', 'ocifetch' => 'oci_fetch', 'ocifetchstatement' => 'oci_fetch_all', 'ocifreecursor' => 'oci_free_statement', 'ocifreestatement' => 'oci_free_statement', 'ociinternaldebug' => 'oci_internal_debug', 'ocilogoff' => 'oci_close', 'ocilogon' => 'oci_connect', 'ocinewcollection' => 'oci_new_collection', 'ocinewcursor' => 'oci_new_cursor', 'ocinewdescriptor' => 'oci_new_descriptor', 'ocinlogon' => 'oci_new_connect', 'ocinumcols' => 'oci_num_fields', 'ociparse' => 'oci_parse', 'ociplogon' => 'oci_pconnect', 'ociresult' => 'oci_result', 'ocirollback' => 'oci_rollback', 'ocirowcount' => 'oci_num_rows', 'ociserverversion' => 'oci_server_version', 'ocisetprefetch' => 'oci_set_prefetch', 'ocistatementtype' => 'oci_statement_type'], PhpVersion::PHP_56); + // PHP 7.2 + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameFunctionRector::class, [ + # and imagewbmp + 'jpeg2wbmp' => 'imagecreatefromjpeg', + # or imagewbmp + 'png2wbmp' => 'imagecreatefrompng', + # migration72.deprecated.gmp_random-function + # http://php.net/manual/en/migration72.deprecated.php + # or gmp_random_range + 'gmp_random' => 'gmp_random_bits', + 'read_exif_data' => 'exif_read_data', + ], PhpVersion::PHP_72); + // PHP 7.3 + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameFunctionRector::class, [ + # https://wiki.php.net/rfc/deprecations_php_7_3 + 'image2wbmp' => 'imagewbmp', + 'mbregex_encoding' => 'mb_regex_encoding', + 'mbereg' => 'mb_ereg', + 'mberegi' => 'mb_eregi', + 'mbereg_replace' => 'mb_ereg_replace', + 'mberegi_replace' => 'mb_eregi_replace', + 'mbsplit' => 'mb_split', + 'mbereg_match' => 'mb_ereg_match', + 'mbereg_search' => 'mb_ereg_search', + 'mbereg_search_pos' => 'mb_ereg_search_pos', + 'mbereg_search_regs' => 'mb_ereg_search_regs', + 'mbereg_search_init' => 'mb_ereg_search_init', + 'mbereg_search_getregs' => 'mb_ereg_search_getregs', + 'mbereg_search_getpos' => 'mb_ereg_search_getpos', + ], PhpVersion::PHP_73); + // PHP 7.4 + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameFunctionRector::class, [ + # the_real_type + # https://wiki.php.net/rfc/deprecations_php_7_4 + 'is_real' => 'is_float', + ], PhpVersion::PHP_74); + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameCastRector::class, [new RenameCast(Double::class, Double::KIND_REAL, Double::KIND_FLOAT)], PhpVersion::PHP_74); + // PHP 8.0 + $rectorConfig->ruleWithConfigurationPhpVersionBound(StaticCallToFuncCallRector::class, [new StaticCallToFuncCall('Nette\Utils\Strings', 'startsWith', 'str_starts_with'), new StaticCallToFuncCall('Nette\Utils\Strings', 'endsWith', 'str_ends_with'), new StaticCallToFuncCall('Nette\Utils\Strings', 'contains', 'str_contains')], PhpVersion::PHP_80); + // nette\utils and Strings::replace() + $rectorConfig->ruleWithConfigurationPhpVersionBound(ArgumentAdderRector::class, [new ArgumentAdder('Nette\Utils\Strings', 'replace', 2, 'replacement', '')], PhpVersion::PHP_80); + // @see https://php.watch/versions/8.0/pgsql-aliases-deprecated + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameFunctionRector::class, ['pg_clientencoding' => 'pg_client_encoding', 'pg_cmdtuples' => 'pg_affected_rows', 'pg_errormessage' => 'pg_last_error', 'pg_fieldisnull' => 'pg_field_is_null', 'pg_fieldname' => 'pg_field_name', 'pg_fieldnum' => 'pg_field_num', 'pg_fieldprtlen' => 'pg_field_prtlen', 'pg_fieldsize' => 'pg_field_size', 'pg_fieldtype' => 'pg_field_type', 'pg_freeresult' => 'pg_free_result', 'pg_getlastoid' => 'pg_last_oid', 'pg_loclose' => 'pg_lo_close', 'pg_locreate' => 'pg_lo_create', 'pg_loexport' => 'pg_lo_export', 'pg_loimport' => 'pg_lo_import', 'pg_loopen' => 'pg_lo_open', 'pg_loread' => 'pg_lo_read', 'pg_loreadall' => 'pg_lo_read_all', 'pg_lounlink' => 'pg_lo_unlink', 'pg_lowrite' => 'pg_lo_write', 'pg_numfields' => 'pg_num_fields', 'pg_numrows' => 'pg_num_rows', 'pg_result' => 'pg_fetch_result', 'pg_setclientencoding' => 'pg_set_client_encoding'], PhpVersion::PHP_80); + $rectorConfig->ruleWithConfigurationPhpVersionBound(FunctionArgumentDefaultValueReplacerRector::class, [new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'gte', 'ge'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'lte', 'le'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '', '!='), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '!', '!='), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'g', 'gt'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'l', 'lt'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'n', 'ne'), new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 0, \false), new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 1, \true)], PhpVersion::PHP_80); + // PHP 8.5 + $rectorConfig->ruleWithConfigurationPhpVersionBound(RemoveFuncCallArgRector::class, [ + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_key_length_parameter_of_openssl_pkey_derive + new RemoveFuncCallArg('openssl_pkey_derive', 2), + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_exclude_disabled_parameter_of_get_defined_functions + new RemoveFuncCallArg('get_defined_functions', 0), + ], PhpVersion::PHP_85); + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameMethodRector::class, [ + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_splobjectstoragecontains_splobjectstorageattach_and_splobjectstoragedetach + new MethodCallRename('SplObjectStorage', 'contains', 'offsetExists'), + new MethodCallRename('SplObjectStorage', 'attach', 'offsetSet'), + new MethodCallRename('SplObjectStorage', 'detach', 'offsetUnset'), + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_driver_specific_pdo_constants_and_methods + new MethodCallRename('PDO', 'pgsqlCopyFromArray', 'copyFromArray'), + new MethodCallRename('PDO', 'pgsqlCopyFromFile', 'copyFromFile'), + new MethodCallRename('PDO', 'pgsqlCopyToArray', 'copyToArray'), + new MethodCallRename('PDO', 'pgsqlCopyToFile', 'copyToFile'), + new MethodCallRename('PDO', 'pgsqlGetNotify', 'getNotify'), + new MethodCallRename('PDO', 'pgsqlGetPid', 'getPid'), + new MethodCallRename('PDO', 'pgsqlLOBCreate', 'lobCreate'), + new MethodCallRename('PDO', 'pgsqlLOBOpen', 'lobOpen'), + new MethodCallRename('PDO', 'pgsqlLOBUnlink', 'lobUnlink'), + new MethodCallRename('PDO', 'sqliteCreateAggregate', 'createAggregate'), + new MethodCallRename('PDO', 'sqliteCreateCollation', 'createCollation'), + new MethodCallRename('PDO', 'sqliteCreateFunction', 'createFunction'), + ], PhpVersion::PHP_85); + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameFunctionRector::class, [ + // https://wiki.php.net/rfc/deprecations_php_8_5#formally_deprecate_socket_set_timeout + 'socket_set_timeout' => 'stream_set_timeout', + // https://wiki.php.net/rfc/deprecations_php_8_5#formally_deprecate_mysqli_execute + 'mysqli_execute' => 'mysqli_stmt_execute', + ], PhpVersion::PHP_85); + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_driver_specific_pdo_constants_and_methods + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameClassConstFetchRector::class, [new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_CONNECTION_TIMEOUT', 'Pdo\Dblib', 'ATTR_CONNECTION_TIMEOUT'), new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_QUERY_TIMEOUT', 'Pdo\Dblib', 'ATTR_QUERY_TIMEOUT'), new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER', 'Pdo\Dblib', 'ATTR_STRINGIFY_UNIQUEIDENTIFIER'), new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_VERSION', 'Pdo\Dblib', 'ATTR_VERSION'), new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_TDS_VERSION', 'Pdo\Dblib', 'ATTR_TDS_VERSION'), new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_SKIP_EMPTY_ROWSETS', 'Pdo\Dblib', 'ATTR_SKIP_EMPTY_ROWSETS'), new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_DATETIME_CONVERT', 'Pdo\Dblib', 'ATTR_DATETIME_CONVERT'), new RenameClassAndConstFetch('PDO', 'FB_ATTR_DATE_FORMAT', 'Pdo\Firebird', 'ATTR_DATE_FORMAT'), new RenameClassAndConstFetch('PDO', 'FB_ATTR_TIME_FORMAT', 'Pdo\Firebird', 'ATTR_TIME_FORMAT'), new RenameClassAndConstFetch('PDO', 'FB_ATTR_TIMESTAMP_FORMAT', 'Pdo\Firebird', 'ATTR_TIMESTAMP_FORMAT'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_USE_BUFFERED_QUERY', 'Pdo\Mysql', 'ATTR_USE_BUFFERED_QUERY'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_LOCAL_INFILE', 'Pdo\Mysql', 'ATTR_LOCAL_INFILE'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_LOCAL_INFILE_DIRECTORY', 'Pdo\Mysql', 'ATTR_LOCAL_INFILE_DIRECTORY'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_INIT_COMMAND', 'Pdo\Mysql', 'ATTR_INIT_COMMAND'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_MAX_BUFFER_SIZE', 'Pdo\Mysql', 'ATTR_MAX_BUFFER_SIZE'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_READ_DEFAULT_FILE', 'Pdo\Mysql', 'ATTR_READ_DEFAULT_FILE'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_READ_DEFAULT_GROUP', 'Pdo\Mysql', 'ATTR_READ_DEFAULT_GROUP'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_COMPRESS', 'Pdo\Mysql', 'ATTR_COMPRESS'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_DIRECT_QUERY', 'Pdo\Mysql', 'ATTR_DIRECT_QUERY'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_FOUND_ROWS', 'Pdo\Mysql', 'ATTR_FOUND_ROWS'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_IGNORE_SPACE', 'Pdo\Mysql', 'ATTR_IGNORE_SPACE'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_KEY', 'Pdo\Mysql', 'ATTR_SSL_KEY'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CERT', 'Pdo\Mysql', 'ATTR_SSL_CERT'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CA', 'Pdo\Mysql', 'ATTR_SSL_CA'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CAPATH', 'Pdo\Mysql', 'ATTR_SSL_CAPATH'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CIPHER', 'Pdo\Mysql', 'ATTR_SSL_CIPHER'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_VERIFY_SERVER_CERT', 'Pdo\Mysql', 'ATTR_SSL_VERIFY_SERVER_CERT'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SERVER_PUBLIC_KEY', 'Pdo\Mysql', 'ATTR_SERVER_PUBLIC_KEY'), new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_MULTI_STATEMENTS', 'Pdo\Mysql', 'ATTR_MULTI_STATEMENTS'), new RenameClassAndConstFetch('PDO', 'ODBC_ATTR_USE_CURSOR_LIBRARY', 'Pdo\Odbc', 'ATTR_USE_CURSOR_LIBRARY'), new RenameClassAndConstFetch('PDO', 'ODBC_ATTR_ASSUME_UTF8', 'Pdo\Odbc', 'ATTR_ASSUME_UTF8'), new RenameClassAndConstFetch('PDO', 'ODBC_SQL_USE_IF_NEEDED', 'Pdo\Odbc', 'SQL_USE_IF_NEEDED'), new RenameClassAndConstFetch('PDO', 'ODBC_SQL_USE_DRIVER', 'Pdo\Odbc', 'SQL_USE_DRIVER'), new RenameClassAndConstFetch('PDO', 'ODBC_SQL_USE_ODBC', 'Pdo\Odbc', 'SQL_USE_ODBC'), new RenameClassAndConstFetch('PDO', 'PGSQL_ATTR_DISABLE_PREPARES', 'Pdo\Pgsql', 'ATTR_DISABLE_PREPARES'), new RenameClassAndConstFetch('PDO', 'SQLITE_ATTR_EXTENDED_RESULT_CODES', 'Pdo\Sqlite', 'ATTR_EXTENDED_RESULT_CODES'), new RenameClassAndConstFetch('PDO', 'SQLITE_ATTR_OPEN_FLAGS', 'Pdo\Sqlite', 'OPEN_FLAGS'), new RenameClassAndConstFetch('PDO', 'SQLITE_ATTR_READONLY_STATEMENT', 'Pdo\Sqlite', 'ATTR_READONLY_STATEMENT'), new RenameClassAndConstFetch('PDO', 'SQLITE_DETERMINISTIC', 'Pdo\Sqlite', 'DETERMINISTIC'), new RenameClassAndConstFetch('PDO', 'SQLITE_OPEN_READONLY', 'Pdo\Sqlite', 'OPEN_READONLY'), new RenameClassAndConstFetch('PDO', 'SQLITE_OPEN_READWRITE', 'Pdo\Sqlite', 'OPEN_READWRITE'), new RenameClassAndConstFetch('PDO', 'SQLITE_OPEN_CREATE', 'Pdo\Sqlite', 'OPEN_CREATE')], PhpVersion::PHP_85); + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameCastRector::class, [new RenameCast(Int_::class, Int_::KIND_INTEGER, Int_::KIND_INT), new RenameCast(Bool_::class, Bool_::KIND_BOOLEAN, Bool_::KIND_BOOL), new RenameCast(Double::class, Double::KIND_DOUBLE, Double::KIND_FLOAT), new RenameCast(String_::class, String_::KIND_BINARY, String_::KIND_STRING)], PhpVersion::PHP_85); + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_no-op_functions_from_the_resource_to_object_conversion + // these function have no effect when use + $rectorConfig->ruleWithConfigurationPhpVersionBound(RemoveFuncCallRector::class, ['curl_close', 'curl_share_close', 'finfo_close', 'imagedestroy', 'xml_parser_free'], PhpVersion::PHP_85); + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_filter_default_constant + $rectorConfig->ruleWithConfigurationPhpVersionBound(RenameConstantRector::class, ['FILTER_DEFAULT' => 'FILTER_UNSAFE_RAW'], PhpVersion::PHP_85); +}; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 10eddce7c50..7f77b0259dc 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 = 'fa3b728a2ab7ac1eaf7315de79103a6a3ac4a90f'; + public const PACKAGE_VERSION = 'cdfd2b5d462d13b168985682ac17954a75e92a0f'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 22:08:55'; + public const RELEASE_DATE = '2026-08-29 23:08:47'; /** * @var int */ diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index 9b1adc4884b..37afa41c3a1 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -15,6 +15,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\Enum\Config\Defaults; use Rector\Exception\ShouldNotHappenException; +use Rector\Php\PhpVersionResolver\ComposerJsonPhpVersionResolver; use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; use Rector\Validation\RectorConfigValidator; use Rector\ValueObject\Configuration\LevelOverflow; @@ -212,6 +213,21 @@ public function ruleWithConfigurationComposerVersionBound(string $rectorClass, a } $this->ruleWithConfiguration($rectorClass, $configuration); } + /** + * Register the rule configuration only if the target PHP version is at least $phpVersion. + * Useful for a configuration valid from a specific PHP version, e.g. a function renamed in PHP 8.0. + * + * @param class-string $rectorClass + * @param mixed[] $configuration + * @param PhpVersion::* $phpVersion + */ + public function ruleWithConfigurationPhpVersionBound(string $rectorClass, array $configuration, int $phpVersion): void + { + if ($this->resolveTargetPhpVersion() < $phpVersion) { + return; + } + $this->ruleWithConfiguration($rectorClass, $configuration); + } /** * @param class-string $rectorClass */ @@ -493,4 +509,19 @@ private function resolveInstalledPackageVersion(string $packageName): ?string } return $this->installedPackageResolver->resolvePackageVersion($packageName); } + private function resolveTargetPhpVersion(): int + { + // an explicitly picked withPhpSets(phpXX: true) version is the target for its sets, + // even when it is above the project composer.json PHP version + if (SimpleParameterProvider::hasParameter(Option::POLYFILL_CEILING_PHP_VERSION)) { + $ceilingPhpVersion = SimpleParameterProvider::provideIntParameter(Option::POLYFILL_CEILING_PHP_VERSION); + if ($ceilingPhpVersion > 0) { + return $ceilingPhpVersion; + } + } + if (SimpleParameterProvider::hasParameter(Option::PHP_VERSION_FEATURES)) { + return SimpleParameterProvider::provideIntParameter(Option::PHP_VERSION_FEATURES); + } + return ComposerJsonPhpVersionResolver::resolve(getcwd() . '/composer.json') ?? \PHP_VERSION_ID; + } } diff --git a/src/Configuration/PhpLevelSetResolver.php b/src/Configuration/PhpLevelSetResolver.php deleted file mode 100644 index 0f04cb3411b..00000000000 --- a/src/Configuration/PhpLevelSetResolver.php +++ /dev/null @@ -1,35 +0,0 @@ - - */ - private const VERSION_LOWER_BOUND_CONFIGS = [PhpVersion::PHP_52 => SetList::PHP_52, PhpVersion::PHP_53 => SetList::PHP_53, PhpVersion::PHP_54 => SetList::PHP_54, PhpVersion::PHP_55 => SetList::PHP_55, PhpVersion::PHP_56 => SetList::PHP_56, PhpVersion::PHP_70 => SetList::PHP_70, PhpVersion::PHP_71 => SetList::PHP_71, PhpVersion::PHP_72 => SetList::PHP_72, PhpVersion::PHP_73 => SetList::PHP_73, PhpVersion::PHP_74 => SetList::PHP_74, PhpVersion::PHP_80 => SetList::PHP_80, PhpVersion::PHP_81 => SetList::PHP_81, PhpVersion::PHP_82 => SetList::PHP_82, PhpVersion::PHP_83 => SetList::PHP_83, PhpVersion::PHP_84 => SetList::PHP_84, PhpVersion::PHP_85 => SetList::PHP_85, PhpVersion::PHP_86 => SetList::PHP_86]; - /** - * @param PhpVersion::* $phpVersion - * @return string[] - */ - public static function resolveFromPhpVersion(int $phpVersion): array - { - $configFilePaths = []; - foreach (self::VERSION_LOWER_BOUND_CONFIGS as $versionLowerBound => $phpSetFilePath) { - if ($versionLowerBound <= $phpVersion) { - $configFilePaths[] = $phpSetFilePath; - } - } - Assert::allFileExists($configFilePaths); - return $configFilePaths; - } -} diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index 8f4a1d31080..60f5150f544 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -4,6 +4,8 @@ namespace Rector\Configuration; use Deprecated; +use RectorPrefix202608\DrupalRector\Set\DrupalSetList; +use RectorPrefix202608\Nette\Utils\Strings; use PhpParser\NodeVisitor; use Rector\Bridge\SetRectorsResolver; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; @@ -42,6 +44,11 @@ final class RectorConfigBuilder * @var int */ private const MAX_LEVEL_GAP = 10; + /** + * Matches the deprecated per-version PHP set files, e.g. .../config/set/php82.php + * @var string + */ + private const DEPRECATED_PHP_SET_REGEX = '#/config/set/php\d+\.php$#'; /** * A level method and the set that contains the very same rules, * so they are never enabled both at once @@ -128,6 +135,11 @@ final class RectorConfigBuilder private ?bool $isWithPhpSetsUsed = null; private ?bool $isWithPhpLevelUsed = null; private ?int $pickedPhpSetsVersion = null; + /** + * Only an explicitly picked withPhpSets(phpXX) version acts as a ceiling; the composer.json + * fallback must not, so polyfilled rules can still be raised above the project PHP version + */ + private bool $isPhpSetsVersionPicked = \false; /** * @var LevelOverflow[] */ @@ -138,7 +150,7 @@ public function __invoke(RectorConfig $rectorConfig): void if ($this->isWithPhpSetsUsed === \true) { $this->sets[] = SetList::PHP_POLYFILLS; } - if ($this->pickedPhpSetsVersion !== null) { + if ($this->isPhpSetsVersionPicked && $this->pickedPhpSetsVersion !== null) { SimpleParameterProvider::setParameter(\Rector\Configuration\Option::POLYFILL_CEILING_PHP_VERSION, $this->pickedPhpSetsVersion); } $uniqueSets = array_unique($this->sets); @@ -291,6 +303,12 @@ public function withRootFiles(): self */ public function withSets(array $sets): self { + foreach ($sets as $set) { + if (Strings::match($set, self::DEPRECATED_PHP_SET_REGEX) === null) { + continue; + } + Notifier::notifyDeprecatedPhpSet($set); + } $this->sets = array_merge($this->sets, $sets); return $this; } @@ -377,12 +395,12 @@ public function withPhpSets( if (count($pickedPhpVersions) > 1) { throw new InvalidConfigurationException(sprintf('Pick only one version target in "withPhpSets()". All rules up to this version will be used.%sTo use your composer.json PHP version, keep arguments empty.', \PHP_EOL)); } - // no version picked, resolve it from the project composer.json + // no version picked, target the project composer.json PHP version if ($pickedPhpVersions === []) { return $this->addPhpLevelSets(ComposerJsonPhpVersionResolver::resolveFromCwdOrFail()); } // explicitly picked version is a ceiling, even for polyfilled rules - $this->pickedPhpSetsVersion = $pickedPhpVersions[0]; + $this->isPhpSetsVersionPicked = \true; return $this->addPhpLevelSets($pickedPhpVersions[0]); } public function withPhp53Sets(): self @@ -441,7 +459,7 @@ public function withComposerBased(bool $twig = \false, bool $doctrine = \false, } if ($drupal && class_exists('DrupalRector\Set\DrupalSetList') && constant('DrupalRector\Set\DrupalSetList::COMPOSER_BASED')) { // waits on https://github.com/palantirnet/drupal-rector/pull/419/files#diff-c6bd4ee854830efc1363a7d99c1b6a2e7e64f2499a51e503174ab777de7e64e5 - $this->sets[] = \RectorPrefix202608\DrupalRector\Set\DrupalSetList::COMPOSER_BASED; + $this->sets[] = DrupalSetList::COMPOSER_BASED; } if ($phpunit) { // single set, as every rule inside is bound to the installed PHPUnit version on its own @@ -636,10 +654,8 @@ public function withPhpLevel(int $level): self { Assert::natural($level); $this->isWithPhpLevelUsed = \true; - $phpVersion = ComposerJsonPhpVersionResolver::resolveFromCwdOrFail(); $setRectorsResolver = new SetRectorsResolver(); - $setFilePaths = \Rector\Configuration\PhpLevelSetResolver::resolveFromPhpVersion($phpVersion); - $rectorRulesWithConfiguration = $setRectorsResolver->resolveFromFilePathsIncludingConfiguration($setFilePaths); + $rectorRulesWithConfiguration = $setRectorsResolver->resolveFromFilePathIncludingConfiguration(SetList::PHP_VERSION_BASED_SET); foreach ($rectorRulesWithConfiguration as $position => $rectorRuleWithConfiguration) { // add rules until level is reached if ($position > $level) { @@ -762,7 +778,8 @@ public function withSetProviders(): self private function addPhpLevelSets(int $phpVersion): self { $this->isWithPhpSetsUsed = \true; - $this->sets = array_merge($this->sets, \Rector\Configuration\PhpLevelSetResolver::resolveFromPhpVersion($phpVersion)); + $this->pickedPhpSetsVersion = $phpVersion; + $this->sets[] = SetList::PHP_VERSION_BASED_SET; return $this; } private function reportDeprecatedPhpSetsMethod(string $methodName): self diff --git a/src/Console/Notifier.php b/src/Console/Notifier.php index 0ecd700edb5..2cf2484625a 100644 --- a/src/Console/Notifier.php +++ b/src/Console/Notifier.php @@ -19,6 +19,12 @@ public static function notifyNotSuitableMethodForPHP74(string $calledMethod): vo $symfonyStyle->warning($message); sleep(3); } + public static function notifyDeprecatedPhpSet(string $set): void + { + $message = sprintf('The per-version PHP set "%s" is deprecated. Use "withPhpSets()" or "withPhpLevel()" instead, ' . 'they pick the rules by your PHP version automatically.', $set); + $symfonyStyle = new SymfonyStyle(new ArgvInput(), new ConsoleOutput()); + $symfonyStyle->warning($message); + } public static function errorWithPhpSetsNotSuitableForPHP74AndLower(): void { if (\PHP_VERSION_ID >= 80000) { diff --git a/src/Set/ValueObject/SetList.php b/src/Set/ValueObject/SetList.php index a6a58efd651..bfcb5769565 100644 --- a/src/Set/ValueObject/SetList.php +++ b/src/Set/ValueObject/SetList.php @@ -45,70 +45,87 @@ final class SetList */ public const RECTOR_PRESET = __DIR__ . '/../../../config/set/rector-preset.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_52 = __DIR__ . '/../../../config/set/php52.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_53 = __DIR__ . '/../../../config/set/php53.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_54 = __DIR__ . '/../../../config/set/php54.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_55 = __DIR__ . '/../../../config/set/php55.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_56 = __DIR__ . '/../../../config/set/php56.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_70 = __DIR__ . '/../../../config/set/php70.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_71 = __DIR__ . '/../../../config/set/php71.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_72 = __DIR__ . '/../../../config/set/php72.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_73 = __DIR__ . '/../../../config/set/php73.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_74 = __DIR__ . '/../../../config/set/php74.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_80 = __DIR__ . '/../../../config/set/php80.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_81 = __DIR__ . '/../../../config/set/php81.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_82 = __DIR__ . '/../../../config/set/php82.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_83 = __DIR__ . '/../../../config/set/php83.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_84 = __DIR__ . '/../../../config/set/php84.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_85 = __DIR__ . '/../../../config/set/php85.php'; /** + * @deprecated Use withPhpSets() or withPhpLevel() instead * @var string */ public const PHP_86 = __DIR__ . '/../../../config/set/php86.php'; @@ -145,4 +162,9 @@ final class SetList * @var string */ public const BEHAT_ANNOTATIONS_TO_ATTRIBUTES = __DIR__ . '/../../../config/set/behat-annotations-to-attributes.php'; + /** + * All PHP version rules in one set; each rule gates itself by PHP version at runtime + * @var string + */ + public const PHP_VERSION_BASED_SET = __DIR__ . '/../../../config/set/php-version-based.php'; } diff --git a/src/VersionBonding/PhpVersionedFilter.php b/src/VersionBonding/PhpVersionedFilter.php index f3e714fa836..7b9c287796a 100644 --- a/src/VersionBonding/PhpVersionedFilter.php +++ b/src/VersionBonding/PhpVersionedFilter.php @@ -51,7 +51,13 @@ public function filter(array $rectors): array $activeRectors[] = $rector; continue; } - $maxPhpVersion = $rector instanceof RelatedPolyfillInterface && $ceilingPhpVersion !== null ? $ceilingPhpVersion : $minProjectPhpVersion; + // an explicitly picked withPhpSets() version caps the whole set: + // polyfilled rules up to the ceiling, the rest up to the lower of ceiling and project version + if ($ceilingPhpVersion !== null) { + $maxPhpVersion = $rector instanceof RelatedPolyfillInterface ? $ceilingPhpVersion : min($ceilingPhpVersion, $minProjectPhpVersion); + } else { + $maxPhpVersion = $minProjectPhpVersion; + } // does satisfy version? → include if ($rector->provideMinPhpVersion() <= $maxPhpVersion) { $activeRectors[] = $rector; diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index ef20b5a6b3e..ceb147b6c97 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -887,6 +887,48 @@ 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\ClassNames' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/ClassNames.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\FileWithClass' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\UnusedClassesResult' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ApiDocStmtAnalyzer' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\CallReferencesFlatter' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\ParentCallReferenceResolver' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassMethodCallReferenceResolver' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassTypeDetector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CollectorMapper\\MethodCallCollectorMapper' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\AttributeCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\CallableTypeCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\ClassConstFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\FormTypeClassCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassLikeConstCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassMethodCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicStaticPropertyFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Configuration' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\ReferenceMarker' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleIdentifier' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleIdentifier.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleTips' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleTips.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\BladeRegex' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/BladeRegex.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\TwigRegex' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Finder\\TemplateFilesFinder' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\MethodTypeDetector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/MethodTypeDetector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\NodeCollectorExtractor' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\PublicClassMethodMatcher' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\LocalOnlyPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\RelativeUnusedPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassConstRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicPropertyRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateMethodCallsProvider' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateRegexFinder' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\UsedMethodAnalyzer' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Arrays' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Arrays.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Strings' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Strings.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\ClassAndMethodArrayExprs' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/ClassAndMethodArrayExprs.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\LocalAndExternalMethodCallReferences' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\MethodCallReference' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php', 'RectorPrefix202608\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', 'RectorPrefix202608\\Webmozart\\Assert\\HasAssert' => $vendorDir . '/webmozart/assert/src/HasAssert.php', 'RectorPrefix202608\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', @@ -1184,7 +1226,6 @@ 'Rector\\Configuration\\Option' => $baseDir . '/src/Configuration/Option.php', 'Rector\\Configuration\\Parameter\\FeatureFlags' => $baseDir . '/src/Configuration/Parameter/FeatureFlags.php', 'Rector\\Configuration\\Parameter\\SimpleParameterProvider' => $baseDir . '/src/Configuration/Parameter/SimpleParameterProvider.php', - 'Rector\\Configuration\\PhpLevelSetResolver' => $baseDir . '/src/Configuration/PhpLevelSetResolver.php', 'Rector\\Configuration\\RectorConfigBuilder' => $baseDir . '/src/Configuration/RectorConfigBuilder.php', 'Rector\\Configuration\\RenamedClassesDataCollector' => $baseDir . '/src/Configuration/RenamedClassesDataCollector.php', 'Rector\\Configuration\\VendorMissAnalyseGuard' => $baseDir . '/src/Configuration/VendorMissAnalyseGuard.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 2efcce17a90..9fce8ef6aca 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -16,6 +16,7 @@ 'Rector\\Doctrine\\' => array($vendorDir . '/rector/rector-doctrine/src', $vendorDir . '/rector/rector-doctrine/rules'), 'Rector\\' => array($baseDir . '/rules', $baseDir . '/src', $vendorDir . '/rector/rector-downgrade-php/src', $vendorDir . '/rector/rector-downgrade-php/rules'), 'RectorPrefix202608\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\' => array($vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src'), 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => array($vendorDir . '/tomasvotruba/class-leak/src'), 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), 'RectorPrefix202608\\Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 92718e910b5..8ef01964f20 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -30,6 +30,7 @@ class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 'Rector\\Doctrine\\' => 16, 'Rector\\' => 7, 'RectorPrefix202608\\Webmozart\\Assert\\' => 36, + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\' => 45, 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => 42, 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => 45, 'RectorPrefix202608\\Symfony\\Component\\String\\' => 44, @@ -110,6 +111,10 @@ class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\' => + array ( + 0 => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src', + ), 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => array ( 0 => __DIR__ . '/..' . '/tomasvotruba/class-leak/src', @@ -1102,6 +1107,48 @@ class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\ClassNames' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/ClassNames.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\FileWithClass' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php', 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\UnusedClassesResult' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ApiDocStmtAnalyzer' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\CallReferencesFlatter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\ParentCallReferenceResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassMethodCallReferenceResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassTypeDetector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CollectorMapper\\MethodCallCollectorMapper' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\AttributeCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\CallableTypeCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\ClassConstFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\FormTypeClassCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassLikeConstCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassMethodCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicStaticPropertyFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Configuration' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\ReferenceMarker' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleIdentifier' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleIdentifier.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleTips' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleTips.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\BladeRegex' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/BladeRegex.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\TwigRegex' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Finder\\TemplateFilesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\MethodTypeDetector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/MethodTypeDetector.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\NodeCollectorExtractor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\PublicClassMethodMatcher' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\LocalOnlyPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\RelativeUnusedPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassConstRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicPropertyRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateMethodCallsProvider' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateRegexFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\UsedMethodAnalyzer' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Arrays' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Arrays.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Strings' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Strings.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\ClassAndMethodArrayExprs' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/ClassAndMethodArrayExprs.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\LocalAndExternalMethodCallReferences' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php', + 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\MethodCallReference' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php', 'RectorPrefix202608\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', 'RectorPrefix202608\\Webmozart\\Assert\\HasAssert' => __DIR__ . '/..' . '/webmozart/assert/src/HasAssert.php', 'RectorPrefix202608\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', @@ -1399,7 +1446,6 @@ class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 'Rector\\Configuration\\Option' => __DIR__ . '/../..' . '/src/Configuration/Option.php', 'Rector\\Configuration\\Parameter\\FeatureFlags' => __DIR__ . '/../..' . '/src/Configuration/Parameter/FeatureFlags.php', 'Rector\\Configuration\\Parameter\\SimpleParameterProvider' => __DIR__ . '/../..' . '/src/Configuration/Parameter/SimpleParameterProvider.php', - 'Rector\\Configuration\\PhpLevelSetResolver' => __DIR__ . '/../..' . '/src/Configuration/PhpLevelSetResolver.php', 'Rector\\Configuration\\RectorConfigBuilder' => __DIR__ . '/../..' . '/src/Configuration/RectorConfigBuilder.php', 'Rector\\Configuration\\RenamedClassesDataCollector' => __DIR__ . '/../..' . '/src/Configuration/RenamedClassesDataCollector.php', 'Rector\\Configuration\\VendorMissAnalyseGuard' => __DIR__ . '/../..' . '/src/Configuration/VendorMissAnalyseGuard.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index ad9baf06082..add4772a2f9 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -2525,17 +2525,17 @@ }, { "name": "tomasvotruba\/class-leak", - "version": "2.1.8", - "version_normalized": "2.1.8.0", + "version": "2.2.0", + "version_normalized": "2.2.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/TomasVotruba\/class-leak.git", - "reference": "3ebe4d7bebfb40ab3a85a36431821367b0ac57ab" + "reference": "cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/class-leak\/zipball\/3ebe4d7bebfb40ab3a85a36431821367b0ac57ab", - "reference": "3ebe4d7bebfb40ab3a85a36431821367b0ac57ab", + "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/class-leak\/zipball\/cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87", + "reference": "cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87", "shasum": "" }, "require": { @@ -2559,10 +2559,9 @@ "rector\/rector": "^2.4", "symplify\/easy-coding-standard": "^13.0", "symplify\/phpstan-extensions": "^12", - "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-06-20T16:19:43+00:00", + "time": "2026-08-29T20:55:33+00:00", "bin": [ "bin\/class-leak", "bin\/class-leak.php" @@ -2571,7 +2570,8 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\TomasVotruba\\ClassLeak\\": "src" + "RectorPrefix202608\\TomasVotruba\\ClassLeak\\": "src", + "RectorPrefix202608\\TomasVotruba\\UnusedPublic\\": "packages\/unused-public\/src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -2581,7 +2581,7 @@ "description": "Detect leaking classes", "support": { "issues": "https:\/\/github.com\/TomasVotruba\/class-leak\/issues", - "source": "https:\/\/github.com\/TomasVotruba\/class-leak\/tree\/2.1.8" + "source": "https:\/\/github.com\/TomasVotruba\/class-leak\/tree\/2.2.0" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index ffd56faf1a3..61d1b6d2c2a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'a3ba7ce6033e90ed2a0cd56ebc4812315369f701', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.1.8', 'version' => '2.1.8.0', 'reference' => '3ebe4d7bebfb40ab3a85a36431821367b0ac57ab', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'a3ba7ce6033e90ed2a0cd56ebc4812315369f701', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/tomasvotruba/class-leak/composer.json b/vendor/tomasvotruba/class-leak/composer.json index 55a02920a96..2b6670a3a61 100644 --- a/vendor/tomasvotruba/class-leak/composer.json +++ b/vendor/tomasvotruba/class-leak/composer.json @@ -22,18 +22,22 @@ "rector\/jack": "^1.0", "rector\/rector": "^2.4", "symplify\/phpstan-extensions": "^12", - "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, "autoload": { "psr-4": { - "RectorPrefix202608\\TomasVotruba\\ClassLeak\\": "src" + "RectorPrefix202608\\TomasVotruba\\ClassLeak\\": "src", + "RectorPrefix202608\\TomasVotruba\\UnusedPublic\\": "packages\/unused-public\/src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202608\\TomasVotruba\\ClassLeak\\Tests\\": "tests" - } + "RectorPrefix202608\\TomasVotruba\\ClassLeak\\Tests\\": "tests", + "RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Tests\\": "packages\/unused-public\/tests" + }, + "classmap": [ + "packages\/unused-public\/stubs" + ] }, "replace": { "symfony\/polyfill-ctype": "*", diff --git a/vendor/tomasvotruba/class-leak/config/unused-public-extension.neon b/vendor/tomasvotruba/class-leak/config/unused-public-extension.neon new file mode 100644 index 00000000000..8e5f50eb840 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/config/unused-public-extension.neon @@ -0,0 +1,2 @@ +includes: + - ../packages/unused-public/config/extension.neon diff --git a/vendor/tomasvotruba/class-leak/ecs.php b/vendor/tomasvotruba/class-leak/ecs.php index a6a8435af6c..b65e8778cfa 100644 --- a/vendor/tomasvotruba/class-leak/ecs.php +++ b/vendor/tomasvotruba/class-leak/ecs.php @@ -4,7 +4,9 @@ namespace RectorPrefix202608; use RectorPrefix202608\Symplify\EasyCodingStandard\Config\ECSConfig; -return ECSConfig::configure()->withPaths([__DIR__ . '/bin', __DIR__ . '/src', __DIR__ . '/tests'])->withSkip([ +return ECSConfig::configure()->withPaths([__DIR__ . '/bin', __DIR__ . '/src', __DIR__ . '/tests', __DIR__ . '/packages'])->withSkip([ // invalid syntax test fixture __DIR__ . '/tests/UseImportsResolver/Fixture/ParseError.php', + '*/Fixture/*', + '*/Source/*', ])->withPreparedSets(\true, \true, \true); diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/config/extension.neon b/vendor/tomasvotruba/class-leak/packages/unused-public/config/extension.neon new file mode 100644 index 00000000000..0166ca60032 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/config/extension.neon @@ -0,0 +1,110 @@ +parametersSchema: + unused_public: structure([ + methods: anyOf(bool(), int(), float()) + local_methods: bool() + properties: bool() + constants: bool() + template_paths: listOf(string()) + ]) + +# default parameters +parameters: + unused_public: + methods: true + local_methods: false + properties: true + constants: true + template_paths: [] + +services: + - TomasVotruba\UnusedPublic\PublicClassMethodMatcher + - TomasVotruba\UnusedPublic\CallReferece\ParentCallReferenceResolver + - TomasVotruba\UnusedPublic\CallReferece\CallReferencesFlatter + - TomasVotruba\UnusedPublic\MethodTypeDetector + - TomasVotruba\UnusedPublic\ClassTypeDetector + - TomasVotruba\UnusedPublic\ApiDocStmtAnalyzer + - TomasVotruba\UnusedPublic\ClassMethodCallReferenceResolver + - TomasVotruba\UnusedPublic\CollectorMapper\MethodCallCollectorMapper + - TomasVotruba\UnusedPublic\NodeCollectorExtractor + # templates + - TomasVotruba\UnusedPublic\Templates\TemplateMethodCallsProvider + - TomasVotruba\UnusedPublic\Templates\TemplateRegexFinder + - TomasVotruba\UnusedPublic\Templates\UsedMethodAnalyzer + + - + factory: TomasVotruba\UnusedPublic\Configuration + arguments: + - %unused_public% + + # collectors + - + class: TomasVotruba\UnusedPublic\Collectors\PublicClassMethodCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\MethodCall\MethodCallCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\MethodCall\MethodCallableCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\StaticCall\StaticMethodCallCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\StaticCall\StaticMethodCallableCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\FormTypeClassCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\PublicStaticPropertyFetchCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\PublicClassLikeConstCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\ClassConstFetchCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\PublicPropertyCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\PublicPropertyFetchCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\Callable_\AttributeCallableCollector + tags: + - phpstan.collector + + - + class: TomasVotruba\UnusedPublic\Collectors\Callable_\CallableTypeCollector + tags: + - phpstan.collector + +rules: + - TomasVotruba\UnusedPublic\Rules\UnusedPublicClassMethodRule + - TomasVotruba\UnusedPublic\Rules\UnusedPublicClassConstRule + - TomasVotruba\UnusedPublic\Rules\UnusedPublicPropertyRule + - TomasVotruba\UnusedPublic\Rules\LocalOnlyPublicClassMethodRule + - TomasVotruba\UnusedPublic\Rules\RelativeUnusedPublicClassMethodRule diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php new file mode 100644 index 00000000000..e4ccd11f443 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php @@ -0,0 +1,30 @@ +getResolvedPhpDoc() instanceof ResolvedPhpDocBlock) { + $resolvedPhpDoc = $classReflection->getResolvedPhpDoc(); + if (strpos($resolvedPhpDoc->getPhpDocString(), '@api') !== \false) { + return \true; + } + } + $docComment = $stmt->getDocComment(); + if (!$docComment instanceof Doc) { + return \false; + } + return $this->isApiDocComment($docComment->getText()); + } + public function isApiDocComment(string $docComment): bool + { + return strpos($docComment, '@api') !== \false; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php new file mode 100644 index 00000000000..12f7304ea61 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php @@ -0,0 +1,28 @@ +getClass(); + $methodName = $classMethodCallReference->getMethod(); + $classMethodReference = $className . '::' . $methodName; + if ($classMethodCallReference->isLocal()) { + $classMethodReference = ReferenceMarker::LOCAL . $classMethodReference; + } + $classMethodReferences[] = $classMethodReference; + } + return $classMethodReferences; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php new file mode 100644 index 00000000000..796e46c56d5 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php @@ -0,0 +1,34 @@ +reflectionProvider = $reflectionProvider; + } + /** + * @return string[] + */ + public function findParentClassMethodReferences(string $className, string $methodName): array + { + if (!$this->reflectionProvider->hasClass($className)) { + return []; + } + $classReflection = $this->reflectionProvider->getClass($className); + $classMethodReferences = []; + foreach ($classReflection->getParents() as $parentClassReflection) { + if ($parentClassReflection->hasNativeMethod($methodName)) { + $classMethodReferences[] = $parentClassReflection->getName() . '::' . $methodName; + } + } + return $classMethodReferences; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php new file mode 100644 index 00000000000..2ddd85e8503 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php @@ -0,0 +1,39 @@ +name instanceof Expr) { + return []; + } + $callerType = $scope->getType($methodCall->var); + // remove optional nullable type + if (TypeCombinator::containsNull($callerType)) { + $callerType = TypeCombinator::removeNull($callerType); + } + // unwrap this type, as method is used + $isLocal = \false; + if ($callerType instanceof ThisType) { + $callerType = $callerType->getStaticObjectType(); + $isLocal = \true; + } + $methodCallReferences = []; + foreach ($callerType->getReferencedClasses() as $referencedClass) { + $methodCallReferences[] = new MethodCallReference($referencedClass, $methodCall->name->toString(), $isLocal); + } + return $methodCallReferences; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php new file mode 100644 index 00000000000..e37f1a303a9 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php @@ -0,0 +1,20 @@ +isSubclassOf(TestCase::class)) { + return \true; + } + if ($classReflection->isSubclassOf('PHPUnit_Framework_TestCase')) { + return \true; + } + return $classReflection->implementsInterface('RectorPrefix202608\Behat\Behat\Context\Context'); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php new file mode 100644 index 00000000000..632afe9cdcb --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php @@ -0,0 +1,55 @@ +> $nestedReferencesByFiles + * @return string[] + */ + public function mapToMethodCallReferences(array $nestedReferencesByFiles): array + { + $methodCallReferences = $this->mergeAndFlatten($nestedReferencesByFiles); + // remove ReferenceMaker::LOCAL prefix + return array_map(static function (string $methodCallReference): string { + if (strncmp($methodCallReference, ReferenceMarker::LOCAL, strlen(ReferenceMarker::LOCAL)) === 0) { + return (string) substr($methodCallReference, strlen(ReferenceMarker::LOCAL)); + } + return $methodCallReference; + }, $methodCallReferences); + } + /** + * @param array> $nestedReferencesByFiles + */ + public function mapToLocalAndExternal(array $nestedReferencesByFiles): LocalAndExternalMethodCallReferences + { + $methodCallReferences = $this->mergeAndFlatten($nestedReferencesByFiles); + $localMethodCallReferences = []; + $externalMethodCallReferences = []; + foreach ($methodCallReferences as $methodCallReference) { + if (strncmp($methodCallReference, ReferenceMarker::LOCAL, strlen(ReferenceMarker::LOCAL)) === 0) { + $localMethodCallReferences[] = (string) substr($methodCallReference, strlen(ReferenceMarker::LOCAL)); + } else { + $externalMethodCallReferences[] = $methodCallReference; + } + } + return new LocalAndExternalMethodCallReferences($localMethodCallReferences, $externalMethodCallReferences); + } + /** + * @param array> $nestedReferencesByFiles + * @return string[] + */ + private function mergeAndFlatten(array $nestedReferencesByFiles): array + { + $flattenReferences = []; + foreach ($nestedReferencesByFiles as $nestedReferences) { + $flattenReferences = array_merge($flattenReferences, Arrays::flatten($nestedReferences)); + } + return $flattenReferences; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php new file mode 100644 index 00000000000..b5547207da8 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php @@ -0,0 +1,81 @@ +|null> + */ +final class AttributeCallableCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + public function __construct(Configuration $configuration) + { + $this->configuration = $configuration; + } + public function getNodeType(): string + { + return AttributeGroup::class; + } + /** + * @param AttributeGroup $node + * @return string[]|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + foreach ($node->attrs as $attr) { + $attributeClasName = $attr->name->toString(); + if ($attributeClasName !== 'Symfony\Component\Validator\Constraints\Callback') { + continue; + } + $classAndMethodArrayExprs = $this->matchClassAndMethodExprs($attr); + if (!$classAndMethodArrayExprs instanceof ClassAndMethodArrayExprs) { + continue; + } + $classType = $scope->getType($classAndMethodArrayExprs->getClassExpr()); + if ($classType instanceof ConstantStringType) { + $className = $classType->getValue(); + } else { + continue; + } + $methodExpr = $classAndMethodArrayExprs->getMethodExpr(); + if ($methodExpr instanceof String_) { + $methodName = $methodExpr->value; + } else { + continue; + } + return [$className . '::' . $methodName]; + } + return null; + } + private function matchClassAndMethodExprs(Attribute $attribute): ?ClassAndMethodArrayExprs + { + $firstArg = $attribute->args[0]; + if (!$firstArg->value instanceof Array_) { + return null; + } + $array = $firstArg->value; + if (count($array->items) !== 2) { + return null; + } + $classArrayItem = $array->items[0]->value; + $methodArrayItem = $array->items[1]->value; + return new ClassAndMethodArrayExprs($classArrayItem, $methodArrayItem); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php new file mode 100644 index 00000000000..c4cbdb9b7f5 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php @@ -0,0 +1,73 @@ +|null> + */ +final class CallableTypeCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + public function __construct(Configuration $configuration, ClassTypeDetector $classTypeDetector) + { + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + } + public function getNodeType(): string + { + return Array_::class; + } + /** + * @param Expr\Array_ $node + * @return string[]|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + // skip calls in tests, as they are not used in production + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection && $this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + $callableType = $scope->getType($node); + if (!$callableType instanceof ConstantArrayType) { + return null; + } + $classMethodReferences = []; + foreach ($callableType->getConstantArrays() as $constantArrayType) { + $typeAndMethodNames = $constantArrayType->findTypeAndMethodNames(); + if ($typeAndMethodNames === []) { + continue; + } + foreach ($typeAndMethodNames as $typeAndMethodName) { + if ($typeAndMethodName->isUnknown()) { + continue; + } + $objectClassNames = $typeAndMethodName->getType()->getObjectClassNames(); + foreach ($objectClassNames as $objectClassName) { + $classMethodReferences[] = $objectClassName . '::' . $typeAndMethodName->getMethod(); + } + } + } + return $classMethodReferences; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php new file mode 100644 index 00000000000..b9607611edf --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php @@ -0,0 +1,70 @@ +|null> + */ +final class ClassConstFetchCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + public function __construct(Configuration $configuration, ClassTypeDetector $classTypeDetector) + { + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + } + public function getNodeType(): string + { + return ClassConstFetch::class; + } + /** + * @param ClassConstFetch $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->isUnusedConstantsEnabled()) { + return null; + } + if (!$node->class instanceof Name) { + return null; + } + if (!$node->name instanceof Identifier) { + return null; + } + $className = $node->class->toString(); + $constantName = $node->name->toString(); + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection) { + if ($this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + if ($classReflection->hasConstant($constantName)) { + $constantReflection = $classReflection->getConstant($constantName); + $declaringClass = $constantReflection->getDeclaringClass(); + if ($declaringClass->getName() !== $classReflection->getName()) { + return [$declaringClass->getName() . '::' . $constantName]; + } + return null; + } + } + return [$className . '::' . $constantName]; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php new file mode 100644 index 00000000000..09742728271 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php @@ -0,0 +1,52 @@ +|null> + */ +final class FormTypeClassCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + public function __construct(Configuration $configuration) + { + $this->configuration = $configuration; + } + public function getNodeType(): string + { + return ArrayItem::class; + } + /** + * @param ArrayItem $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + if (!$node->key instanceof String_) { + return null; + } + if ($node->key->value !== 'data_class') { + return null; + } + $valueType = $scope->getType($node->value); + if (!$valueType instanceof ConstantStringType) { + return null; + } + return [$valueType->getValue()]; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php new file mode 100644 index 00000000000..e14ab5d67ed --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php @@ -0,0 +1,82 @@ +|null> + */ +final class MethodCallCollector implements Collector +{ + /** + * @readonly + */ + private ParentCallReferenceResolver $parentCallReferenceResolver; + /** + * @readonly + */ + private ClassMethodCallReferenceResolver $classMethodCallReferenceResolver; + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + /** + * @readonly + */ + private CallReferencesFlatter $callReferencesFlatter; + public function __construct(ParentCallReferenceResolver $parentCallReferenceResolver, ClassMethodCallReferenceResolver $classMethodCallReferenceResolver, Configuration $configuration, ClassTypeDetector $classTypeDetector, CallReferencesFlatter $callReferencesFlatter) + { + $this->parentCallReferenceResolver = $parentCallReferenceResolver; + $this->classMethodCallReferenceResolver = $classMethodCallReferenceResolver; + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + $this->callReferencesFlatter = $callReferencesFlatter; + } + public function getNodeType(): string + { + return MethodCall::class; + } + /** + * @param MethodCall $node + * @return string[]|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + // unable to resolve method name + if ($node->name instanceof Expr) { + return null; + } + // skip calls in tests, as they are not used in production + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection && $this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + $classMethodCallReferences = $this->classMethodCallReferenceResolver->resolve($node, $scope); + $classMethodReferences = $this->callReferencesFlatter->flatten($classMethodCallReferences); + foreach ($classMethodCallReferences as $classMethodCallReference) { + $parentClassMethodReferences = $this->parentCallReferenceResolver->findParentClassMethodReferences($classMethodCallReference->getClass(), $classMethodCallReference->getMethod()); + foreach ($parentClassMethodReferences as $parentClassMethodReference) { + $classMethodReferences[] = $parentClassMethodReference; + } + } + return $classMethodReferences; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php new file mode 100644 index 00000000000..a686648063e --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php @@ -0,0 +1,69 @@ +|null> + */ +final class MethodCallableCollector implements Collector +{ + /** + * @readonly + */ + private ClassMethodCallReferenceResolver $classMethodCallReferenceResolver; + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + /** + * @readonly + */ + private CallReferencesFlatter $callReferencesFlatter; + public function __construct(ClassMethodCallReferenceResolver $classMethodCallReferenceResolver, Configuration $configuration, ClassTypeDetector $classTypeDetector, CallReferencesFlatter $callReferencesFlatter) + { + $this->classMethodCallReferenceResolver = $classMethodCallReferenceResolver; + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + $this->callReferencesFlatter = $callReferencesFlatter; + } + public function getNodeType(): string + { + return MethodCallableNode::class; + } + /** + * @param MethodCallableNode $node + * @return string[]|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + // unable to resolve method name + if ($node->getName() instanceof Expr) { + return null; + } + // skip calls in tests, as they are not used in production + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection && $this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + $classMethodCallReferences = $this->classMethodCallReferenceResolver->resolve($node->getOriginalNode(), $scope); + return $this->callReferencesFlatter->flatten($classMethodCallReferences); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php new file mode 100644 index 00000000000..d50131a4e66 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php @@ -0,0 +1,63 @@ +|null> + */ +final class PublicClassLikeConstCollector implements Collector +{ + /** + * @readonly + */ + private ApiDocStmtAnalyzer $apiDocStmtAnalyzer; + /** + * @readonly + */ + private Configuration $configuration; + public function __construct(ApiDocStmtAnalyzer $apiDocStmtAnalyzer, Configuration $configuration) + { + $this->apiDocStmtAnalyzer = $apiDocStmtAnalyzer; + $this->configuration = $configuration; + } + public function getNodeType(): string + { + return ClassConst::class; + } + /** + * @param ClassConst $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->isUnusedConstantsEnabled()) { + return null; + } + if (!$node->isPublic()) { + return null; + } + $classReflection = $scope->getClassReflection(); + if (!$classReflection instanceof ClassReflection) { + return null; + } + if ($this->apiDocStmtAnalyzer->isApiDoc($node, $classReflection)) { + return null; + } + $constantNames = []; + foreach ($node->consts as $constConst) { + $constantNames[] = [$classReflection->getName(), $constConst->name->toString(), $node->getLine()]; + } + if ($constantNames === []) { + return null; + } + return $constantNames; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php new file mode 100644 index 00000000000..e67182eab74 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php @@ -0,0 +1,129 @@ + + */ +final class PublicClassMethodCollector implements Collector +{ + /** + * @readonly + */ + private ApiDocStmtAnalyzer $apiDocStmtAnalyzer; + /** + * @readonly + */ + private PublicClassMethodMatcher $publicClassMethodMatcher; + /** + * @readonly + */ + private MethodTypeDetector $methodTypeDetector; + /** + * @readonly + */ + private Configuration $configuration; + /** + * @var string[] + */ + private const SKIPPED_TYPES = [ + // symfony + 'RectorPrefix202608\Symfony\Component\EventDispatcher\EventSubscriberInterface', + // doctrine + EventSubscriber::class, + SubscribingHandlerInterface::class, + ExtensionInterface::class, + Controller::class, + // laravel + Command::class, + Component::class, + 'RectorPrefix202608\Illuminate\Http\Request', + 'RectorPrefix202608\Illuminate\Contracts\Mail\Mailable', + 'RectorPrefix202608\Illuminate\Contracts\Queue\ShouldQueue', + 'RectorPrefix202608\Illuminate\Support\ServiceProvider', + ]; + public function __construct(ApiDocStmtAnalyzer $apiDocStmtAnalyzer, PublicClassMethodMatcher $publicClassMethodMatcher, MethodTypeDetector $methodTypeDetector, Configuration $configuration) + { + $this->apiDocStmtAnalyzer = $apiDocStmtAnalyzer; + $this->publicClassMethodMatcher = $publicClassMethodMatcher; + $this->methodTypeDetector = $methodTypeDetector; + $this->configuration = $configuration; + } + public function getNodeType(): string + { + return ClassMethod::class; + } + /** + * @param ClassMethod $node + * @return array{class-string, string, int}|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + $classReflection = $scope->getClassReflection(); + if (!$classReflection instanceof ClassReflection) { + return null; + } + if ($this->shouldSkip($classReflection, $node, $scope)) { + return null; + } + if ($this->publicClassMethodMatcher->shouldSkipClassMethod($node)) { + return null; + } + if ($this->apiDocStmtAnalyzer->isApiDoc($node, $classReflection)) { + return null; + } + if ($this->isSkippedType($classReflection)) { + return null; + } + if ($this->publicClassMethodMatcher->shouldSkipClassReflection($classReflection)) { + return null; + } + $methodName = $node->name->toString(); + // is this method required by parent contract? skip it + if ($this->publicClassMethodMatcher->isUsedByParentClassOrInterface($classReflection, $methodName)) { + return null; + } + return [$classReflection->getName(), $methodName, $node->getLine()]; + } + private function shouldSkip(ClassReflection $classReflection, ClassMethod $classMethod, Scope $scope): bool + { + // skip acceptance tests, codeception + if (substr_compare($classReflection->getName(), 'Cest', -strlen('Cest')) === 0) { + return \true; + } + if ($this->methodTypeDetector->isTestMethod($classMethod, $scope)) { + return \true; + } + return $this->methodTypeDetector->isTraitMethod($classMethod, $scope); + } + private function isSkippedType(ClassReflection $classReflection): bool + { + $found = \false; + foreach (self::SKIPPED_TYPES as $skippedType) { + if ($classReflection->isSubclassOf($skippedType)) { + $found = \true; + break; + } + } + return $found; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php new file mode 100644 index 00000000000..afb495a74eb --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php @@ -0,0 +1,155 @@ +> + */ +final class PublicPropertyCollector implements Collector +{ + /** + * @readonly + */ + private ApiDocStmtAnalyzer $apiDocStmtAnalyzer; + /** + * @readonly + */ + private Configuration $configuration; + /** + * @var array + */ + private const CLASSES_TO_SKIP = [Component::class]; + public function __construct(ApiDocStmtAnalyzer $apiDocStmtAnalyzer, Configuration $configuration) + { + $this->apiDocStmtAnalyzer = $apiDocStmtAnalyzer; + $this->configuration = $configuration; + } + /** + * @return class-string + */ + public function getNodeType(): string + { + return InClassNode::class; + } + /** + * @param InClassNode $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->isUnusedPropertyEnabled()) { + return null; + } + $classReflection = $scope->getClassReflection(); + if (!$classReflection instanceof ClassReflection) { + return null; + } + $classLike = $node->getOriginalNode(); + if (!$classLike instanceof Class_) { + return null; + } + if ($this->shouldSkipClass($classReflection, $classLike)) { + return null; + } + $publicPropertyNames = []; + // Collect traditional public properties + foreach ($classLike->getProperties() as $property) { + if (!$property->isPublic()) { + continue; + } + foreach ($property->props as $propertyProperty) { + $propertyName = $propertyProperty->name->toString(); + if ($this->shouldSkipProperty($classReflection, $propertyName, $scope)) { + continue; + } + $publicPropertyNames[] = [$classReflection->getName(), $propertyName, $node->getLine()]; + } + } + // Collect constructor promoted public properties + foreach ($classLike->getMethods() as $classMethod) { + if (!$this->isConstructorMethod($classMethod)) { + continue; + } + foreach ($classMethod->getParams() as $param) { + if (!$this->isPublicPromotedProperty($param)) { + continue; + } + if (!$param->var instanceof Variable) { + continue; + } + $propertyName = $param->var->name; + if (!is_string($propertyName)) { + continue; + } + if ($this->shouldSkipProperty($classReflection, $propertyName, $scope)) { + continue; + } + $publicPropertyNames[] = [$classReflection->getName(), $propertyName, $param->getLine()]; + } + } + if ($publicPropertyNames === []) { + return null; + } + return $publicPropertyNames; + } + private function isConstructorMethod(ClassMethod $classMethod): bool + { + return $classMethod->name->toLowerString() === '__construct'; + } + private function isPublicPromotedProperty(Param $param): bool + { + // Check if parameter has a visibility flag (promoted property) + if ($param->flags === 0) { + return \false; + } + // Check if it's public (Class_::MODIFIER_PUBLIC = 1) + return ($param->flags & Class_::MODIFIER_PUBLIC) !== 0; + } + private function shouldSkipProperty(ClassReflection $classReflection, string $propertyName, Scope $scope): bool + { + if (!$classReflection->hasProperty($propertyName)) { + return \false; + } + $extendedPropertyReflection = $classReflection->getProperty($propertyName, $scope); + // don't inherit doc from a private property + if ($extendedPropertyReflection->isPrivate()) { + return \false; + } + $docComment = $extendedPropertyReflection->getDocComment(); + if ($docComment !== null && $this->apiDocStmtAnalyzer->isApiDocComment($docComment)) { + return \true; + } + $parentClassReflection = $classReflection->getParentClass(); + foreach ($classReflection->getInterfaces() as $interface) { + if ($interface->hasProperty($propertyName)) { + return \true; + } + } + if (!$parentClassReflection instanceof ClassReflection) { + return \false; + } + return $this->shouldSkipProperty($parentClassReflection, $propertyName, $scope); + } + private function shouldSkipClass(ClassReflection $classReflection, Class_ $class): bool + { + foreach (self::CLASSES_TO_SKIP as $classToSkip) { + if ($classReflection->isSubclassOf($classToSkip)) { + return \true; + } + } + return $this->apiDocStmtAnalyzer->isApiDoc($class, $classReflection); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php new file mode 100644 index 00000000000..fb2cae0ca21 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php @@ -0,0 +1,77 @@ +|null> + */ +final class PublicPropertyFetchCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + public function __construct(Configuration $configuration, ClassTypeDetector $classTypeDetector) + { + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + } + /** + * @return class-string + */ + public function getNodeType(): string + { + return PropertyFetch::class; + } + /** + * @param PropertyFetch $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->isUnusedPropertyEnabled()) { + return null; + } + // skip local + if ($node->var instanceof Variable && $node->var->name === 'this') { + return null; + } + if (!$node->name instanceof Identifier) { + return null; + } + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection && $this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + $result = []; + $propertyFetcherType = $scope->getType($node->var); + $propertyFetcherType = TypeCombinator::removeNull($propertyFetcherType); + foreach ($propertyFetcherType->getObjectClassReflections() as $classReflection) { + $propertyName = $node->name->toString(); + if (!$classReflection->hasProperty($propertyName)) { + continue; + } + $propertyReflection = $classReflection->getProperty($propertyName, $scope); + $result[] = $propertyReflection->getDeclaringClass()->getName() . '::' . $propertyName; + } + if ($result === []) { + return null; + } + return $result; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php new file mode 100644 index 00000000000..7d3fec34465 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php @@ -0,0 +1,72 @@ +|null> + */ +final class PublicStaticPropertyFetchCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + public function __construct(Configuration $configuration, ClassTypeDetector $classTypeDetector) + { + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + } + public function getNodeType(): string + { + return StaticPropertyFetch::class; + } + /** + * @param StaticPropertyFetch $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->isUnusedPropertyEnabled()) { + return null; + } + if (!$node->name instanceof Identifier) { + return null; + } + if ($node->class instanceof Name && ($node->class->toString() === 'self' || $node->class->toString() === 'static')) { + // self fetch is allowed + return null; + } + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection && $this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + $classType = $node->class instanceof Name ? $scope->resolveTypeByName($node->class) : $scope->getType($node->class); + $result = []; + foreach ($classType->getObjectClassReflections() as $classReflection) { + $propertyName = $node->name->toString(); + if (!$classReflection->hasProperty($propertyName)) { + continue; + } + $propertyReflection = $classReflection->getProperty($propertyName, $scope); + $result[] = $propertyReflection->getDeclaringClass()->getName() . '::' . $propertyName; + } + if ($result === []) { + return null; + } + return $result; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php new file mode 100644 index 00000000000..8fb5483f915 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php @@ -0,0 +1,59 @@ +|null> + */ +final class StaticMethodCallCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + public function __construct(Configuration $configuration, ClassTypeDetector $classTypeDetector) + { + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + } + public function getNodeType(): string + { + return StaticCall::class; + } + /** + * @param StaticCall $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + if (!$node->name instanceof Identifier) { + return null; + } + if (!$node->class instanceof Name) { + return null; + } + // skip calls in tests, as they are not used in production + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection && $this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + return [$node->class->toString() . '::' . $node->name->toString()]; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php new file mode 100644 index 00000000000..4ee444ab81c --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php @@ -0,0 +1,59 @@ +|null> + */ +final class StaticMethodCallableCollector implements Collector +{ + /** + * @readonly + */ + private Configuration $configuration; + /** + * @readonly + */ + private ClassTypeDetector $classTypeDetector; + public function __construct(Configuration $configuration, ClassTypeDetector $classTypeDetector) + { + $this->configuration = $configuration; + $this->classTypeDetector = $classTypeDetector; + } + public function getNodeType(): string + { + return StaticMethodCallableNode::class; + } + /** + * @param StaticMethodCallableNode $node + * @return non-empty-array|null + */ + public function processNode(Node $node, Scope $scope): ?array + { + if (!$this->configuration->shouldCollectMethods()) { + return null; + } + if (!$node->getName() instanceof Identifier) { + return null; + } + if (!$node->getClass() instanceof Name) { + return null; + } + // skip calls in tests, as they are not used in production + $classReflection = $scope->getClassReflection(); + if ($classReflection instanceof ClassReflection && $this->classTypeDetector->isTestClass($classReflection)) { + return null; + } + return [$node->getClass()->toString() . '::' . $node->getName()->toString()]; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php new file mode 100644 index 00000000000..ab41077f319 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php @@ -0,0 +1,73 @@ + + * @readonly + */ + private array $parameters; + /** + * @param array $parameters + */ + public function __construct(array $parameters) + { + $this->parameters = $parameters; + } + public function isUnusedMethodEnabled(): bool + { + $methods = $this->parameters['methods'] ?? \false; + if (!is_bool($methods)) { + return \false; + } + return $methods; + } + public function isUnusedRelativeMethodEnabled(): bool + { + $methods = $this->parameters['methods'] ?? \false; + return is_numeric($methods); + } + /** + * @return float|int + */ + public function getMaximumRelativeUnusedPublicMethod() + { + return $this->parameters['methods'] ?? 0; + } + public function shouldCollectMethods(): bool + { + if ($this->parameters['methods']) { + return \true; + } + return $this->parameters['local_methods']; + } + public function isLocalMethodEnabled(): bool + { + return $this->parameters['local_methods'] ?? \false; + } + public function isUnusedPropertyEnabled(): bool + { + return $this->parameters['properties'] ?? \false; + } + public function isUnusedConstantsEnabled(): bool + { + return $this->parameters['constants'] ?? \false; + } + /** + * @return string[] + */ + public function getTemplatePaths(): array + { + $templatePaths = $this->parameters['template_paths']; + Assert::allDirectory($templatePaths); + Assert::allFileExists($templatePaths); + return $templatePaths; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php new file mode 100644 index 00000000000..c9cb01f2fad --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php @@ -0,0 +1,12 @@ +.*?)(\!\!|\})\}#'; + /** + * @see https://regex101.com/r/3nbDDK/1 + * @var string + */ + public const TAG_REGEX = '#@\w+(?.*?)\n#'; + /** + * @see https://regex101.com/r/P1EaIR/1 + * @var string + */ + public const METHOD_CALL_REGEX = '#\w+(\-\>|::)(?\w+)\((.*?)\)#'; + /** + * Matches a property fetch "$var->name" that is not a method call, e.g. {{ $value->name }} + * @var string + */ + public const PROPERTY_FETCH_REGEX = '#\-\>(?\w+)(?!\s*\()#'; + /** + * @see https://regex101.com/r/pBkm53/1 + * @var string + */ + public const CONSTANT_FETCH_REGEX = '#\w+::(?[\w_]+)#'; +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php new file mode 100644 index 00000000000..d4c28f69f7e --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php @@ -0,0 +1,18 @@ +.*?)(\}|%)\}#'; + /** + * @see https://regex101.com/r/G7zAue/1 + * @var string + */ + public const METHOD_CALL_REGEX = '#\w+\.(?\w+)#'; +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php new file mode 100644 index 00000000000..8762b38ff06 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php @@ -0,0 +1,27 @@ +name->toString(); + if (strncmp($classMethodName, 'test', strlen('test')) === 0) { + return \true; + } + $classReflection = $scope->getClassReflection(); + if (!$classReflection instanceof ClassReflection) { + return \false; + } + $extendedMethodReflection = $classReflection->getMethod($classMethodName, $scope); + if ($extendedMethodReflection->getDocComment() === null) { + return \false; + } + return strpos($extendedMethodReflection->getDocComment(), '@test') !== \false; + } + public function isTraitMethod(ClassMethod $classMethod, Scope $scope): bool + { + $classReflection = $scope->getClassReflection(); + if (!$classReflection instanceof ClassReflection) { + return \false; + } + $extendedMethodReflection = $classReflection->getMethod($classMethod->name->toString(), $scope); + if ($extendedMethodReflection instanceof PhpMethodReflection) { + return $extendedMethodReflection->getDeclaringTrait() instanceof ClassReflection; + } + return \false; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php new file mode 100644 index 00000000000..b15dc6b89f5 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php @@ -0,0 +1,45 @@ +methodCallCollectorMapper = $methodCallCollectorMapper; + } + public function extractLocalAndExternalMethodCallReferences(CollectedDataNode $collectedDataNode): LocalAndExternalMethodCallReferences + { + $collectedDatas = $this->extractCollectedDatas($collectedDataNode); + return $this->methodCallCollectorMapper->mapToLocalAndExternal($collectedDatas); + } + /** + * @return string[] + */ + public function extractMethodCallReferences(CollectedDataNode $collectedDataNode): array + { + $collectedDatas = $this->extractCollectedDatas($collectedDataNode); + return $this->methodCallCollectorMapper->mapToMethodCallReferences($collectedDatas); + } + /** + * @return array|null)>>> + */ + private function extractCollectedDatas(CollectedDataNode $collectedDataNode): array + { + return [$collectedDataNode->get(MethodCallCollector::class), $collectedDataNode->get(MethodCallableCollector::class), $collectedDataNode->get(StaticMethodCallCollector::class), $collectedDataNode->get(StaticMethodCallableCollector::class), $collectedDataNode->get(AttributeCallableCollector::class), $collectedDataNode->get(CallableTypeCollector::class)]; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php new file mode 100644 index 00000000000..852748f0bc0 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php @@ -0,0 +1,80 @@ +classTypeDetector = $classTypeDetector; + } + public function shouldSkipClassReflection(ClassReflection $classReflection): bool + { + // skip interface as required, traits as unable to detect for sure + if ($classReflection->isInterface() || $classReflection->isTrait()) { + return \true; + } + if ($this->classTypeDetector->isTestClass($classReflection)) { + return \true; + } + $found = \false; + foreach (self::SKIPPED_TYPES as $skippedType) { + if ($classReflection->isSubclassOf($skippedType)) { + $found = \true; + break; + } + } + return $found; + } + public function isUsedByParentClassOrInterface(ClassReflection $classReflection, string $methodName): bool + { + // is this method required by parent contract? skip it + foreach ($classReflection->getInterfaces() as $parentInterfaceReflection) { + if ($parentInterfaceReflection->hasMethod($methodName)) { + return \true; + } + } + $found = \false; + foreach ($classReflection->getParents() as $parentClassReflection) { + if ($parentClassReflection->hasMethod($methodName)) { + $found = \true; + break; + } + } + return $found; + } + public function shouldSkipClassMethod(ClassMethod $classMethod): bool + { + if (!$classMethod->isPublic()) { + return \true; + } + if ($classMethod->isMagic()) { + return \true; + } + // skip attributes, there is some purpose for these + if ($classMethod->attrGroups !== []) { + return \true; + } + $doc = $classMethod->getDocComment(); + // skip symfony controller action + if (!$doc instanceof Doc) { + return \false; + } + if (strpos($doc->getText(), '@Route') !== \false) { + return \true; + } + return strpos($doc->getText(), '@Required') !== \false; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php new file mode 100644 index 00000000000..59646f59df0 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php @@ -0,0 +1,100 @@ +configuration = $configuration; + $this->usedMethodAnalyzer = $usedMethodAnalyzer; + $this->templateMethodCallsProvider = $templateMethodCallsProvider; + $this->nodeCollectorExtractor = $nodeCollectorExtractor; + } + public function getNodeType(): string + { + return CollectedDataNode::class; + } + /** + * @param CollectedDataNode $node + * @return RuleError[] + */ + public function processNode(Node $node, Scope $scope): array + { + if (!$this->configuration->isLocalMethodEnabled()) { + return []; + } + $twigMethodNames = $this->templateMethodCallsProvider->provideTwigMethodCalls(); + $localAndExternalMethodCallReferences = $this->nodeCollectorExtractor->extractLocalAndExternalMethodCallReferences($node); + // php method calls are case-insensitive + $lowerExternalRefs = Strings::lowercase($localAndExternalMethodCallReferences->getExternalMethodCallReferences()); + $lowerLocalRefs = Strings::lowercase($localAndExternalMethodCallReferences->getLocalMethodCallReferences()); + $ruleErrors = []; + $publicClassMethodCollector = $node->get(PublicClassMethodCollector::class); + foreach ($publicClassMethodCollector as $filePath => $declarations) { + foreach ($declarations as [$className, $methodName, $line]) { + if (!$this->isUsedOnlyLocally($className, $methodName, $lowerExternalRefs, $lowerLocalRefs, $twigMethodNames)) { + continue; + } + /** @var string $methodName */ + $errorMessage = sprintf(self::ERROR_MESSAGE, $className, $methodName); + $ruleErrors[] = RuleErrorBuilder::message($errorMessage)->file($filePath)->line($line)->tip(RuleTips::NARROW_SCOPE)->identifier('public.method.unused')->build(); + } + } + return $ruleErrors; + } + /** + * @param string[] $lowerExternalRefs + * @param string[] $lowerLocalRefs + * @param string[] $twigMethodNames + */ + private function isUsedOnlyLocally(string $className, string $methodName, array $lowerExternalRefs, array $lowerLocalRefs, array $twigMethodNames): bool + { + if ($this->usedMethodAnalyzer->isUsedInTwig($methodName, $twigMethodNames)) { + return \true; + } + $publicMethodReference = strtolower($className . '::' . $methodName); + if (in_array($publicMethodReference, $lowerExternalRefs, \true)) { + return \false; + } + return in_array($publicMethodReference, $lowerLocalRefs, \true); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php new file mode 100644 index 00000000000..2d8f82deb1a --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php @@ -0,0 +1,127 @@ +configuration = $configuration; + $this->usedMethodAnalyzer = $usedMethodAnalyzer; + $this->templateMethodCallsProvider = $templateMethodCallsProvider; + $this->nodeCollectorExtractor = $nodeCollectorExtractor; + } + public function getNodeType(): string + { + return CollectedDataNode::class; + } + /** + * @param CollectedDataNode $node + * @return RuleError[] + */ + public function processNode(Node $node, Scope $scope): array + { + if (!$this->configuration->isUnusedRelativeMethodEnabled()) { + return []; + } + $twigMethodNames = $this->templateMethodCallsProvider->provideTwigMethodCalls(); + $bladeMethodNames = $this->templateMethodCallsProvider->provideBladeMethodCalls(); + $completeMethodCallReferences = $this->nodeCollectorExtractor->extractMethodCallReferences($node); + // php method calls are case-insensitive + $lowerCompleteMethodCallReferences = Strings::lowercase($completeMethodCallReferences); + $publicMethodCount = 0; + $unusedPublicMethodCount = 0; + $filePathToLines = []; + $publicClassMethodCollector = $node->get(PublicClassMethodCollector::class); + foreach ($publicClassMethodCollector as $filePath => $declarations) { + foreach ($declarations as [$className, $methodName, $line]) { + ++$publicMethodCount; + if ($this->isUsedClassMethod($className, $methodName, $lowerCompleteMethodCallReferences, $twigMethodNames, $bladeMethodNames)) { + continue; + } + $filePathToLines[$filePath][] = $line; + ++$unusedPublicMethodCount; + } + } + // unable to divide by 0 + if ($publicMethodCount === 0) { + return []; + } + $relativeUnusedPublicMethods = $unusedPublicMethodCount / $publicMethodCount * 100; + $maximumRelativeAllowed = $this->configuration->getMaximumRelativeUnusedPublicMethod(); + // is withing limit? + if ($relativeUnusedPublicMethods < $maximumRelativeAllowed) { + return []; + } + return $this->createRuleErrors($filePathToLines, $relativeUnusedPublicMethods, $maximumRelativeAllowed); + } + /** + * @param string[] $lowerCompleteMethodCallReferences + * @param string[] $twigMethodNames + * @param string[] $bladeMethodNames + */ + private function isUsedClassMethod(string $className, string $methodName, array $lowerCompleteMethodCallReferences, array $twigMethodNames, array $bladeMethodNames): bool + { + if ($this->usedMethodAnalyzer->isUsedInTwig($methodName, $twigMethodNames)) { + return \true; + } + if (in_array($methodName, $bladeMethodNames, \true)) { + return \true; + } + $methodReference = $className . '::' . $methodName; + return in_array(strtolower($methodReference), $lowerCompleteMethodCallReferences, \true); + } + /** + * @param array $filePathToLines + * @return RuleError[] + * @param int|float $maximumLimit + */ + private function createRuleErrors(array $filePathToLines, float $relative, $maximumLimit): array + { + $ruleErrors = []; + foreach ($filePathToLines as $filePath => $lines) { + foreach ($lines as $line) { + $errorMessage = sprintf(self::ERROR_MESSAGE, $relative, $maximumLimit); + $ruleErrors[] = RuleErrorBuilder::message($errorMessage)->file($filePath)->line($line)->identifier('public.method.unused')->build(); + } + } + return $ruleErrors; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php new file mode 100644 index 00000000000..94577185d5d --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php @@ -0,0 +1,90 @@ +configuration = $configuration; + $this->templateRegexFinder = $templateRegexFinder; + } + public function getNodeType(): string + { + return CollectedDataNode::class; + } + /** + * @param CollectedDataNode $node + * @return RuleError[] + */ + public function processNode(Node $node, Scope $scope): array + { + if (!$this->configuration->isUnusedConstantsEnabled()) { + return []; + } + $bladeConstFetchNames = $this->templateRegexFinder->find($this->configuration->getTemplatePaths(), 'blade.php', [BladeRegex::INNER_REGEX, BladeRegex::TAG_REGEX], BladeRegex::CONSTANT_FETCH_REGEX); + $classConstFetchCollector = $node->get(ClassConstFetchCollector::class); + $publicClassLikeConstCollector = $node->get(PublicClassLikeConstCollector::class); + $usedConstFetches = Arrays::flatten($classConstFetchCollector); + $ruleErrors = []; + foreach ($publicClassLikeConstCollector as $filePath => $declarationsGroups) { + foreach ($declarationsGroups as $declarationGroup) { + if ($declarationGroup === null) { + continue; + } + foreach ($declarationGroup as [$className, $constantName, $line]) { + if ($this->isClassConstantUsed($className, $constantName, $usedConstFetches, $bladeConstFetchNames)) { + continue; + } + /** @var string $constantName */ + $errorMessage = sprintf(self::ERROR_MESSAGE, $className, $constantName); + $ruleErrors[] = RuleErrorBuilder::message($errorMessage)->file($filePath)->line($line)->tip(RuleTips::SOLUTION_MESSAGE)->identifier('public.classConstant.unused')->build(); + } + } + } + return $ruleErrors; + } + /** + * @param mixed[] $usedConstFetches + * @param string[] $bladeConstFetchNames + */ + private function isClassConstantUsed(string $className, string $constantName, array $usedConstFetches, array $bladeConstFetchNames): bool + { + // used in template + if (in_array($constantName, $bladeConstFetchNames, \true)) { + return \true; + } + $publicConstantReference = $className . '::' . $constantName; + return in_array($publicConstantReference, $usedConstFetches, \true); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php new file mode 100644 index 00000000000..38349a37969 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php @@ -0,0 +1,107 @@ +configuration = $configuration; + $this->templateMethodCallsProvider = $templateMethodCallsProvider; + $this->usedMethodAnalyzer = $usedMethodAnalyzer; + $this->nodeCollectorExtractor = $nodeCollectorExtractor; + } + public function getNodeType(): string + { + return CollectedDataNode::class; + } + /** + * @param CollectedDataNode $node + * @return RuleError[] + */ + public function processNode(Node $node, Scope $scope): array + { + if (!$this->configuration->isUnusedMethodEnabled()) { + return []; + } + $twigMethodNames = $this->templateMethodCallsProvider->provideTwigMethodCalls(); + $bladeMethodNames = $this->templateMethodCallsProvider->provideBladeMethodCalls(); + $completeMethodCallReferences = $this->nodeCollectorExtractor->extractMethodCallReferences($node); + $formTypeClasses = Arrays::flatten($node->get(FormTypeClassCollector::class)); + // php method calls are case-insensitive + $lowerCompleteMethodCallReferences = Strings::lowercase($completeMethodCallReferences); + $ruleErrors = []; + $publicClassMethodCollector = $node->get(PublicClassMethodCollector::class); + foreach ($publicClassMethodCollector as $filePath => $declarations) { + foreach ($declarations as [$className, $methodName, $line]) { + if (in_array($className, $formTypeClasses, \true)) { + continue; + } + if ($this->isUsedClassMethod($className, $methodName, $lowerCompleteMethodCallReferences, $twigMethodNames, $bladeMethodNames)) { + continue; + } + /** @var string $methodName */ + $errorMessage = sprintf(self::ERROR_MESSAGE, $className, $methodName); + $ruleErrors[] = RuleErrorBuilder::message($errorMessage)->file($filePath)->line($line)->tip(RuleTips::SOLUTION_MESSAGE)->identifier(RuleIdentifier::PUBLIC_METHOD_UNUSED)->build(); + } + } + return $ruleErrors; + } + /** + * @param string[] $lowerCompleteMethodCallReferences + * @param string[] $twigMethodNames + * @param string[] $bladeMethodNames + */ + private function isUsedClassMethod(string $className, string $methodName, array $lowerCompleteMethodCallReferences, array $twigMethodNames, array $bladeMethodNames): bool + { + if ($this->usedMethodAnalyzer->isUsedInTwig($methodName, $twigMethodNames)) { + return \true; + } + if (in_array($methodName, $bladeMethodNames, \true)) { + return \true; + } + $methodReference = $className . '::' . $methodName; + return in_array(strtolower($methodReference), $lowerCompleteMethodCallReferences, \true); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php new file mode 100644 index 00000000000..cc81fac5b63 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php @@ -0,0 +1,87 @@ +configuration = $configuration; + $this->templateMethodCallsProvider = $templateMethodCallsProvider; + } + public function getNodeType(): string + { + return CollectedDataNode::class; + } + /** + * @param CollectedDataNode $node + * @return RuleError[] + */ + public function processNode(Node $node, Scope $scope): array + { + if (!$this->configuration->isUnusedPropertyEnabled()) { + return []; + } + $publicPropertyCollector = $node->get(PublicPropertyCollector::class); + $publicPropertyFetchCollector = $node->get(PublicPropertyFetchCollector::class); + $publicStaticPropertyFetchCollector = $node->get(PublicStaticPropertyFetchCollector::class); + $usedProperties = array_merge(Arrays::flatten($publicPropertyFetchCollector), Arrays::flatten($publicStaticPropertyFetchCollector)); + // property fetches used in templates, matched by bare property name + $templatePropertyNames = array_merge($this->templateMethodCallsProvider->provideBladePropertyFetches(), $this->templateMethodCallsProvider->provideTwigMethodCalls()); + $ruleErrors = []; + foreach ($publicPropertyCollector as $filePath => $declarationsGroups) { + foreach ($declarationsGroups as $declarationGroup) { + foreach ($declarationGroup as [$className, $propertyName, $line]) { + if ($this->isPropertyUsed($className, $propertyName, $usedProperties)) { + continue; + } + if (in_array($propertyName, $templatePropertyNames, \true)) { + continue; + } + /** @var string $propertyName */ + $errorMessage = sprintf(self::ERROR_MESSAGE, $className, $propertyName); + $ruleErrors[] = RuleErrorBuilder::message($errorMessage)->file($filePath)->line($line)->tip(RuleTips::SOLUTION_MESSAGE)->identifier('public.property.unused')->build(); + } + } + } + return $ruleErrors; + } + /** + * @param mixed[] $usedProperties + */ + private function isPropertyUsed(string $className, string $constantName, array $usedProperties): bool + { + $publicPropertyReference = $className . '::' . $constantName; + return in_array($publicPropertyReference, $usedProperties, \true); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php new file mode 100644 index 00000000000..24f618f3a9f --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php @@ -0,0 +1,45 @@ +configuration = $configuration; + $this->templateRegexFinder = $templateRegexFinder; + } + /** + * @return string[] + */ + public function provideBladeMethodCalls(): array + { + return $this->templateRegexFinder->find($this->configuration->getTemplatePaths(), 'blade.php', [BladeRegex::INNER_REGEX, BladeRegex::TAG_REGEX], BladeRegex::METHOD_CALL_REGEX); + } + /** + * @return string[] + */ + public function provideBladePropertyFetches(): array + { + return $this->templateRegexFinder->find($this->configuration->getTemplatePaths(), 'blade.php', [BladeRegex::INNER_REGEX, BladeRegex::TAG_REGEX], BladeRegex::PROPERTY_FETCH_REGEX); + } + /** + * @return string[] + */ + public function provideTwigMethodCalls(): array + { + return $this->templateRegexFinder->find($this->configuration->getTemplatePaths(), 'twig', [TwigRegex::INNER_REGEX], TwigRegex::METHOD_CALL_REGEX); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php new file mode 100644 index 00000000000..b1c9e13d448 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php @@ -0,0 +1,54 @@ + + */ + private array $resultsByCacheKey = []; + /** + * @param string[] $directories + * @param string[] $innerRegexes + * @return string[] + */ + public function find(array $directories, string $fileSuffix, array $innerRegexes, string $targetRegex): array + { + $cacheKey = md5($fileSuffix . $targetRegex); + if (isset($this->resultsByCacheKey[$cacheKey])) { + return $this->resultsByCacheKey[$cacheKey]; + } + $templateFilePaths = TemplateFilesFinder::findTemplateFilePaths($directories, $fileSuffix); + // convert to file contents + $templateFilesContents = array_map(static fn(string $templateFilePath): string => (string) file_get_contents($templateFilePath), $templateFilePaths); + $methodCallNames = $this->matchMethodCallNames($templateFilesContents, $innerRegexes, $targetRegex); + $this->resultsByCacheKey[$fileSuffix] = $methodCallNames; + return $methodCallNames; + } + /** + * @param string[] $templateFilesContents + * @param string[] $innerRegexes + * @return string[] + */ + private function matchMethodCallNames(array $templateFilesContents, array $innerRegexes, string $targetRegex): array + { + $methodCallNames = []; + foreach ($templateFilesContents as $templateFileContent) { + foreach ($innerRegexes as $innerRegex) { + $matches = Strings::matchAll($templateFileContent, $innerRegex); + foreach ($matches as $match) { + $templateMarkupContents = $match['contents']; + $methodNamesMatches = Strings::matchAll($templateMarkupContents, $targetRegex); + foreach ($methodNamesMatches as $methodNameMatch) { + $methodCallNames[] = $methodNameMatch['desired_name']; + } + } + } + } + return array_unique($methodCallNames); + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php new file mode 100644 index 00000000000..45b427873fd --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php @@ -0,0 +1,33 @@ +classExpr = $classExpr; + $this->methodExpr = $methodExpr; + } + public function getClassExpr(): Expr + { + return $this->classExpr; + } + public function getMethodExpr(): Expr + { + return $this->methodExpr; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php new file mode 100644 index 00000000000..d9d79dec78e --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php @@ -0,0 +1,41 @@ +localMethodCallReferences = $localMethodCallReferences; + $this->externalMethodCallReferences = $externalMethodCallReferences; + } + /** + * @return string[] + */ + public function getLocalMethodCallReferences(): array + { + return $this->localMethodCallReferences; + } + /** + * @return string[] + */ + public function getExternalMethodCallReferences(): array + { + return $this->externalMethodCallReferences; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php new file mode 100644 index 00000000000..6c5335d49df --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php @@ -0,0 +1,38 @@ +class = $class; + $this->method = $method; + $this->isLocal = $isLocal; + } + public function getClass(): string + { + return $this->class; + } + public function getMethod(): string + { + return $this->method; + } + public function isLocal(): bool + { + return $this->isLocal; + } +} diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Doctrine/Common/EventSubscriber.php b/vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Doctrine/Common/EventSubscriber.php new file mode 100644 index 00000000000..4002d743fe7 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/stubs/Doctrine/Common/EventSubscriber.php @@ -0,0 +1,12 @@ + tests + packages/unused-public/tests diff --git a/vendor/tomasvotruba/class-leak/rector.php b/vendor/tomasvotruba/class-leak/rector.php index b22abe83362..cb13705a750 100644 --- a/vendor/tomasvotruba/class-leak/rector.php +++ b/vendor/tomasvotruba/class-leak/rector.php @@ -5,4 +5,4 @@ use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector; use Rector\Config\RectorConfig; -return RectorConfig::configure()->withPaths([__DIR__ . '/bin', __DIR__ . '/src', __DIR__ . '/tests'])->withPreparedSets(\true, \true, \true, \true, \true, \true, \true, \false, \false, \false, \true, \false, \false, \true)->withPhpSets()->withRootFiles()->withImportNames()->withSkip(['*/scoper.php', '*/Source/*', '*/Fixture/*', StringClassNameToClassConstantRector::class => [__DIR__ . '/src/Filtering/PossiblyUnusedClassesFilter.php']]); +return RectorConfig::configure()->withPaths([__DIR__ . '/bin', __DIR__ . '/src', __DIR__ . '/tests', __DIR__ . '/packages'])->withPreparedSets(\true, \true, \true, \true, \true, \true, \true, \false, \false, \false, \true, \false, \false, \true)->withPhpSets()->withRootFiles()->withImportNames()->withSkip(['*/scoper.php', '*/Source/*', '*/Fixture/*', StringClassNameToClassConstantRector::class => [__DIR__ . '/src/Filtering/PossiblyUnusedClassesFilter.php']]); From 19501d21b39fa322e2654769e307cf4c20b42b02 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 21:32:48 +0000 Subject: [PATCH 078/169] Updated Rector to commit 3c4d014a1f78ef2e35e418baff90cc8b20ac70a2 https://github.com/rectorphp/rector-src/commit/3c4d014a1f78ef2e35e418baff90cc8b20ac70a2 [dx] Remove dead stub files no longer referenced (#8407) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 7f77b0259dc..6df32fba412 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 = 'cdfd2b5d462d13b168985682ac17954a75e92a0f'; + public const PACKAGE_VERSION = '3c4d014a1f78ef2e35e418baff90cc8b20ac70a2'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 23:08:47'; + public const RELEASE_DATE = '2026-08-29 23:30:18'; /** * @var int */ From c58312262f4fd124c4ea42026517fa79b8f8ceec Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 21:42:46 +0000 Subject: [PATCH 079/169] Updated Rector to commit ac496d56e82cfc5670ad7f84e420ae9d5fc6f568 https://github.com/rectorphp/rector-src/commit/ac496d56e82cfc5670ad7f84e420ae9d5fc6f568 [dx] Deprecate SetList::INSTANCEOF, move rules into code-quality and type-declaration sets (#8408) --- config/set/instanceof.php | 10 ++-------- src/Application/VersionResolver.php | 4 ++-- src/Config/Level/TypeDeclarationLevel.php | 4 ++++ src/Set/ValueObject/SetList.php | 1 + 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/config/set/instanceof.php b/config/set/instanceof.php index b6e7968d5b3..d9620822978 100644 --- a/config/set/instanceof.php +++ b/config/set/instanceof.php @@ -3,14 +3,8 @@ declare (strict_types=1); namespace RectorPrefix202608; -use Rector\CodeQuality\Rector\FuncCall\InlineIsAInstanceOfRector; -use Rector\CodeQuality\Rector\Identical\FlipTypeControlToUseExclusiveTypeRector; use Rector\Config\RectorConfig; -use Rector\DeadCode\Rector\If_\RemoveDeadInstanceOfRector; -use Rector\Instanceof_\Rector\Ternary\FlipNegatedTernaryInstanceofRector; -use Rector\TypeDeclaration\Rector\BooleanAnd\BinaryOpNullableToInstanceofRector; -use Rector\TypeDeclaration\Rector\Empty_\EmptyOnNullableObjectToInstanceOfRector; -use Rector\TypeDeclaration\Rector\While_\WhileNullableToInstanceofRector; +// note: all instanceof rules were moved to code quality and type declaration sets return static function (RectorConfig $rectorConfig): void { - $rectorConfig->rules([EmptyOnNullableObjectToInstanceOfRector::class, InlineIsAInstanceOfRector::class, FlipTypeControlToUseExclusiveTypeRector::class, RemoveDeadInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, BinaryOpNullableToInstanceofRector::class, WhileNullableToInstanceofRector::class]); + $rectorConfig->rules([]); }; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 6df32fba412..9ee77440d5d 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 = '3c4d014a1f78ef2e35e418baff90cc8b20ac70a2'; + public const PACKAGE_VERSION = 'ac496d56e82cfc5670ad7f84e420ae9d5fc6f568'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 23:30:18'; + public const RELEASE_DATE = '2026-08-29 23:40:15'; /** * @var int */ diff --git a/src/Config/Level/TypeDeclarationLevel.php b/src/Config/Level/TypeDeclarationLevel.php index f18663967b2..226a9e1e1cf 100644 --- a/src/Config/Level/TypeDeclarationLevel.php +++ b/src/Config/Level/TypeDeclarationLevel.php @@ -7,6 +7,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\Symfony\CodeQuality\Rector\ClassMethod\ResponseReturnTypeControllerActionRector; use Rector\TypeDeclaration\Rector\ArrowFunction\AddArrowFunctionReturnTypeRector; +use Rector\TypeDeclaration\Rector\BooleanAnd\BinaryOpNullableToInstanceofRector; use Rector\TypeDeclaration\Rector\Class_\AddTestsVoidReturnTypeWhereNoReturnRector; use Rector\TypeDeclaration\Rector\Class_\ChildDoctrineRepositoryClassTypeRector; use Rector\TypeDeclaration\Rector\Class_\MergeDateTimePropertyTypeDeclarationRector; @@ -77,6 +78,7 @@ use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromAssignsRector; use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRector; use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictSetUpRector; +use Rector\TypeDeclaration\Rector\While_\WhileNullableToInstanceofRector; final class TypeDeclarationLevel { /** @@ -116,6 +118,8 @@ final class TypeDeclarationLevel ReturnNullableTypeRector::class, // php 7.4 EmptyOnNullableObjectToInstanceOfRector::class, + WhileNullableToInstanceofRector::class, + BinaryOpNullableToInstanceofRector::class, // php 7.4 TypedPropertyFromStrictConstructorRector::class, AddParamTypeSplFixedArrayRector::class, diff --git a/src/Set/ValueObject/SetList.php b/src/Set/ValueObject/SetList.php index bfcb5769565..cb590963d7c 100644 --- a/src/Set/ValueObject/SetList.php +++ b/src/Set/ValueObject/SetList.php @@ -147,6 +147,7 @@ final class SetList */ public const EARLY_RETURN = __DIR__ . '/../../../config/set/early-return.php'; /** + * @deprecated Use code-quality set instead, as most instanceof rules were moved there * @var string */ public const INSTANCEOF = __DIR__ . '/../../../config/set/instanceof.php'; From 71d09317d6b185edf34cd50d787d4cf55df1ef52 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 22:21:35 +0000 Subject: [PATCH 080/169] Updated Rector to commit 5df539181824120194e7945404c353f76c054312 https://github.com/rectorphp/rector-src/commit/5df539181824120194e7945404c353f76c054312 [dx] Move if-set rules into code-quality and coding-style sets, deprecate SetList::IF (#8414) --- config/set/if.php | 9 +-------- src/Application/VersionResolver.php | 4 ++-- src/Config/Level/CodeQualityLevel.php | 7 ++++++- src/Config/Level/CodingStyleLevel.php | 4 +++- src/Set/ValueObject/SetList.php | 1 + 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/config/set/if.php b/config/set/if.php index 282280dfc3d..0b811196c70 100644 --- a/config/set/if.php +++ b/config/set/if.php @@ -3,17 +3,10 @@ declare (strict_types=1); namespace RectorPrefix202608; -use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector; -use Rector\CodeQuality\Rector\Expression\TernaryFalseExpressionToIfRector; -use Rector\CodeQuality\Rector\If_\ArrayExplicitBoolCompareRector; use Rector\CodeQuality\Rector\If_\CombineIfRector; -use Rector\CodeQuality\Rector\If_\CompleteMissingIfElseBracketRector; use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector; -use Rector\CodeQuality\Rector\If_\ObjectExplicitBoolCompareRector; -use Rector\CodeQuality\Rector\If_\ShortenElseIfRector; use Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector; -use Rector\CodingStyle\Rector\If_\AlternativeIfToBracketRector; use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { - $rectorConfig->rules([AlternativeIfToBracketRector::class, CompleteMissingIfElseBracketRector::class, InlineIfToExplicitIfRector::class, TernaryFalseExpressionToIfRector::class, ArrayExplicitBoolCompareRector::class, ObjectExplicitBoolCompareRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, ShortenElseIfRector::class, SimplifyIfElseToTernaryRector::class]); + $rectorConfig->rules([ExplicitBoolCompareRector::class, CombineIfRector::class, SimplifyIfElseToTernaryRector::class]); }; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 9ee77440d5d..b8f7d3377ec 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 = 'ac496d56e82cfc5670ad7f84e420ae9d5fc6f568'; + public const PACKAGE_VERSION = '5df539181824120194e7945404c353f76c054312'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 23:40:15'; + public const RELEASE_DATE = '2026-08-30 00:19:10'; /** * @var int */ diff --git a/src/Config/Level/CodeQualityLevel.php b/src/Config/Level/CodeQualityLevel.php index 011b9a79f98..06bd8ee55b1 100644 --- a/src/Config/Level/CodeQualityLevel.php +++ b/src/Config/Level/CodeQualityLevel.php @@ -26,6 +26,8 @@ use Rector\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector; use Rector\CodeQuality\Rector\Empty_\SimplifyEmptyCheckOnEmptyArrayRector; use Rector\CodeQuality\Rector\Equal\UseIdenticalOverEqualWithSameTypeRector; +use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector; +use Rector\CodeQuality\Rector\Expression\TernaryFalseExpressionToIfRector; use Rector\CodeQuality\Rector\For_\ForRepeatedCountToOwnVariableRector; use Rector\CodeQuality\Rector\Foreach_\ForeachItemsAssignToEmptyArrayToAssignRector; use Rector\CodeQuality\Rector\Foreach_\ForeachToInArrayRector; @@ -48,7 +50,10 @@ use Rector\CodeQuality\Rector\Identical\SimplifyArraySearchRector; use Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector; use Rector\CodeQuality\Rector\Identical\StrlenZeroToIdenticalEmptyStringRector; +use Rector\CodeQuality\Rector\If_\ArrayExplicitBoolCompareRector; use Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector; +use Rector\CodeQuality\Rector\If_\ObjectExplicitBoolCompareRector; +use Rector\CodeQuality\Rector\If_\ShortenElseIfRector; use Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector; use Rector\CodeQuality\Rector\If_\SimplifyIfNullableReturnRector; use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector; @@ -99,7 +104,7 @@ final class CodeQualityLevel * * @var array> */ - public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class]; + public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ArrayExplicitBoolCompareRector::class, ObjectExplicitBoolCompareRector::class, ShortenElseIfRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, InlineIfToExplicitIfRector::class, TernaryFalseExpressionToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class]; /** * @var array, mixed[]> */ diff --git a/src/Config/Level/CodingStyleLevel.php b/src/Config/Level/CodingStyleLevel.php index 13971b1551a..f54a8ff3022 100644 --- a/src/Config/Level/CodingStyleLevel.php +++ b/src/Config/Level/CodingStyleLevel.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Config\Level; +use Rector\CodeQuality\Rector\If_\CompleteMissingIfElseBracketRector; use Rector\CodingStyle\Rector\Assign\SplitDoubleAssignRector; use Rector\CodingStyle\Rector\Catch_\CatchExceptionNameMatchingTypeRector; use Rector\CodingStyle\Rector\ClassConst\SplitGroupedClassConstantsRector; @@ -15,6 +16,7 @@ use Rector\CodingStyle\Rector\FuncCall\StrictArraySearchRector; use Rector\CodingStyle\Rector\FuncCall\StrictInArrayRector; use Rector\CodingStyle\Rector\FuncCall\VersionCompareFuncCallToConstantRector; +use Rector\CodingStyle\Rector\If_\AlternativeIfToBracketRector; use Rector\CodingStyle\Rector\Property\SplitGroupedPropertiesRector; use Rector\CodingStyle\Rector\Stmt\NewlineAfterStatementRector; use Rector\CodingStyle\Rector\Stmt\RemoveUselessAliasInUseStatementRector; @@ -43,7 +45,7 @@ final class CodingStyleLevel * * @var array> */ - public const RULES = [SeparateMultiUseImportsRector::class, NewlineBetweenClassLikeStmtsRector::class, NewlineAfterStatementRector::class, SimplifyQuoteEscapeRector::class, StringClassNameToClassConstantRector::class, CatchExceptionNameMatchingTypeRector::class, SplitDoubleAssignRector::class, NewlineBeforeNewAssignSetRector::class, MakeInheritedMethodVisibilitySameAsParentRector::class, CallUserFuncArrayToVariadicRector::class, VersionCompareFuncCallToConstantRector::class, CallUserFuncToMethodCallRector::class, FuncGetArgsToVariadicParamRector::class, StrictArraySearchRector::class, StrictInArrayRector::class, UseClassKeywordForClassNameResolutionRector::class, SplitGroupedPropertiesRector::class, SplitGroupedClassConstantsRector::class, RemoveUselessAliasInUseStatementRector::class]; + public const RULES = [SeparateMultiUseImportsRector::class, NewlineBetweenClassLikeStmtsRector::class, NewlineAfterStatementRector::class, AlternativeIfToBracketRector::class, CompleteMissingIfElseBracketRector::class, SimplifyQuoteEscapeRector::class, StringClassNameToClassConstantRector::class, CatchExceptionNameMatchingTypeRector::class, SplitDoubleAssignRector::class, NewlineBeforeNewAssignSetRector::class, MakeInheritedMethodVisibilitySameAsParentRector::class, CallUserFuncArrayToVariadicRector::class, VersionCompareFuncCallToConstantRector::class, CallUserFuncToMethodCallRector::class, FuncGetArgsToVariadicParamRector::class, StrictArraySearchRector::class, StrictInArrayRector::class, UseClassKeywordForClassNameResolutionRector::class, SplitGroupedPropertiesRector::class, SplitGroupedClassConstantsRector::class, RemoveUselessAliasInUseStatementRector::class]; /** * @var array, mixed[]> */ diff --git a/src/Set/ValueObject/SetList.php b/src/Set/ValueObject/SetList.php index cb590963d7c..29b1fd7ce26 100644 --- a/src/Set/ValueObject/SetList.php +++ b/src/Set/ValueObject/SetList.php @@ -152,6 +152,7 @@ final class SetList */ public const INSTANCEOF = __DIR__ . '/../../../config/set/instanceof.php'; /** + * @deprecated Use code-quality and coding-style sets instead, as the if rules were moved there or deprecated * @var string */ public const IF = __DIR__ . '/../../../config/set/if.php'; From eebf5b3c457da475b3484553ad953e5c96c59d66 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 22:25:22 +0000 Subject: [PATCH 081/169] Updated Rector to commit d28960e60ac022ccdb6b9b461645881f21ed3bf9 https://github.com/rectorphp/rector-src/commit/d28960e60ac022ccdb6b9b461645881f21ed3bf9 [dx] Deprecate SimplifyIfElseToTernaryRector to avoid less readable code (#8411) --- config/set/if.php | 3 +- .../If_/SimplifyIfElseToTernaryRector.php | 132 +----------------- src/Application/VersionResolver.php | 4 +- 3 files changed, 8 insertions(+), 131 deletions(-) diff --git a/config/set/if.php b/config/set/if.php index 0b811196c70..09dc1cd69af 100644 --- a/config/set/if.php +++ b/config/set/if.php @@ -5,8 +5,7 @@ use Rector\CodeQuality\Rector\If_\CombineIfRector; use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector; -use Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector; use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { - $rectorConfig->rules([ExplicitBoolCompareRector::class, CombineIfRector::class, SimplifyIfElseToTernaryRector::class]); + $rectorConfig->rules([ExplicitBoolCompareRector::class, CombineIfRector::class]); }; diff --git a/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php b/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php index a39c33cef4c..e9c4b22565b 100644 --- a/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php +++ b/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php @@ -4,42 +4,17 @@ namespace Rector\CodeQuality\Rector\If_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\BinaryOp; -use PhpParser\Node\Expr\Ternary; -use PhpParser\Node\Stmt; -use PhpParser\Node\Stmt\Else_; -use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; -use Rector\NodeTypeResolver\Node\AttributeKey; -use Rector\PhpParser\Node\BetterNodeFinder; -use Rector\PhpParser\Printer\BetterStandardPrinter; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector\SimplifyIfElseToTernaryRectorTest + * @deprecated This rule is deprecated, as the result depends on context and can worsen readability. Extract a method instead if needed. */ -final class SimplifyIfElseToTernaryRector extends AbstractRector +final class SimplifyIfElseToTernaryRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private BetterStandardPrinter $betterStandardPrinter; - /** - * @readonly - */ - private BetterNodeFinder $betterNodeFinder; - /** - * @var int - */ - private const LINE_LENGTH_LIMIT = 120; - public function __construct(BetterStandardPrinter $betterStandardPrinter, BetterNodeFinder $betterNodeFinder) - { - $this->betterStandardPrinter = $betterStandardPrinter; - $this->betterNodeFinder = $betterNodeFinder; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Changes if/else for same value as assign to ternary', [new CodeSample(<<<'CODE_SAMPLE' @@ -78,103 +53,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if (!$node->else instanceof Else_) { - return null; - } - if ($node->elseifs !== []) { - return null; - } - $ifAssignVarExpr = $this->resolveOnlyStmtAssignVar($node->stmts); - if (!$ifAssignVarExpr instanceof Expr) { - return null; - } - $elseAssignExpr = $this->resolveOnlyStmtAssignVar($node->else->stmts); - if (!$elseAssignExpr instanceof Expr) { - return null; - } - if (!$this->nodeComparator->areNodesEqual($ifAssignVarExpr, $elseAssignExpr)) { - return null; - } - $ternaryIfExpr = $this->resolveOnlyStmtAssignExpr($node->stmts); - $expr = $this->resolveOnlyStmtAssignExpr($node->else->stmts); - if (!$ternaryIfExpr instanceof Expr) { - return null; - } - if (!$expr instanceof Expr) { - return null; - } - // has nested ternary → skip, it's super hard to read - if ($this->haveNestedTernary([$node->cond, $ternaryIfExpr, $expr])) { - return null; - } - $ternary = new Ternary($node->cond, $ternaryIfExpr, $expr); - $assign = new Assign($ifAssignVarExpr, $ternary); - // do not create super long lines - if ($this->isNodeTooLong($assign)) { - return null; - } - if ($ternary->cond instanceof BinaryOp || $ternary->cond instanceof Assign) { - $ternary->cond->setAttribute(AttributeKey::ORIGINAL_NODE, null); - } - $expression = new Expression($assign); - $this->mirrorComments($expression, $node); - return $expression; - } - /** - * @param Stmt[] $stmts - */ - private function resolveOnlyStmtAssignVar(array $stmts): ?Expr - { - if (count($stmts) !== 1) { - return null; - } - $stmt = $stmts[0]; - if (!$stmt instanceof Expression) { - return null; - } - $stmtExpr = $stmt->expr; - if (!$stmtExpr instanceof Assign) { - return null; - } - return $stmtExpr->var; - } - /** - * @param Stmt[] $stmts - */ - private function resolveOnlyStmtAssignExpr(array $stmts): ?Expr - { - if (count($stmts) !== 1) { - return null; - } - $stmt = $stmts[0]; - if (!$stmt instanceof Expression) { - return null; - } - if ($stmt->getComments() !== []) { - return null; - } - $stmtExpr = $stmt->expr; - if (!$stmtExpr instanceof Assign) { - return null; - } - return $stmtExpr->expr; - } - /** - * @param Node[] $nodes - */ - private function haveNestedTernary(array $nodes): bool - { - foreach ($nodes as $node) { - $ternary = $this->betterNodeFinder->findFirstInstanceOf($node, Ternary::class); - if ($ternary instanceof Ternary) { - return \true; - } - } - return \false; - } - private function isNodeTooLong(Assign $assign): bool - { - $assignContent = $this->betterStandardPrinter->print($assign); - return strlen($assignContent) > self::LINE_LENGTH_LIMIT; + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as the result depends on context and can worsen readability; extract a method instead if needed', self::class)); } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index b8f7d3377ec..b673de935c0 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 = '5df539181824120194e7945404c353f76c054312'; + public const PACKAGE_VERSION = 'd28960e60ac022ccdb6b9b461645881f21ed3bf9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 00:19:10'; + public const RELEASE_DATE = '2026-08-30 00:22:49'; /** * @var int */ From 2e1ec84860af2757b62e998827dc5755145787a8 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 22:27:46 +0000 Subject: [PATCH 082/169] Updated Rector to commit e6c36be32b8dda0178e62e06bc54ae3eccbe7d78 https://github.com/rectorphp/rector-src/commit/e6c36be32b8dda0178e62e06bc54ae3eccbe7d78 [dx] Deprecate ExplicitBoolCompareRector, as can make less readable if train - array and objects already handled by split rules (#8412) --- config/set/if.php | 3 +- .../Rector/If_/ExplicitBoolCompareRector.php | 186 +----------------- src/Application/VersionResolver.php | 4 +- 3 files changed, 9 insertions(+), 184 deletions(-) diff --git a/config/set/if.php b/config/set/if.php index 09dc1cd69af..2b2840a9d94 100644 --- a/config/set/if.php +++ b/config/set/if.php @@ -4,8 +4,7 @@ namespace RectorPrefix202608; use Rector\CodeQuality\Rector\If_\CombineIfRector; -use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector; use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { - $rectorConfig->rules([ExplicitBoolCompareRector::class, CombineIfRector::class]); + $rectorConfig->rules([CombineIfRector::class]); }; diff --git a/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php b/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php index 6460ba26edb..ee2b1f33308 100644 --- a/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php +++ b/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php @@ -4,56 +4,19 @@ namespace Rector\CodeQuality\Rector\If_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\BinaryOp; -use PhpParser\Node\Expr\BinaryOp\BooleanAnd; -use PhpParser\Node\Expr\BinaryOp\BooleanOr; -use PhpParser\Node\Expr\BinaryOp\Greater; -use PhpParser\Node\Expr\BinaryOp\Identical; -use PhpParser\Node\Expr\BinaryOp\NotIdentical; -use PhpParser\Node\Expr\BooleanNot; -use PhpParser\Node\Expr\Cast\Bool_; -use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\Ternary; -use PhpParser\Node\Scalar\Float_; -use PhpParser\Node\Scalar\Int_; -use PhpParser\Node\Scalar\String_; -use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\ElseIf_; -use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; -use PHPStan\Type\MixedType; -use PHPStan\Type\ObjectType; -use Rector\NodeTypeResolver\TypeAnalyzer\ArrayTypeAnalyzer; -use Rector\NodeTypeResolver\TypeAnalyzer\StringTypeAnalyzer; -use Rector\PhpParser\Node\Value\ValueResolver; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\CodeQuality\Rector\If_\ExplicitBoolCompareRector\ExplicitBoolCompareRectorTest + * @deprecated This rule is deprecated. Array and object bool compares have dedicated rules; the rest is an opinionated approach that depends on context. */ -final class ExplicitBoolCompareRector extends AbstractRector +final class ExplicitBoolCompareRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private StringTypeAnalyzer $stringTypeAnalyzer; - /** - * @readonly - */ - private ArrayTypeAnalyzer $arrayTypeAnalyzer; - /** - * @readonly - */ - private ValueResolver $valueResolver; - public function __construct(StringTypeAnalyzer $stringTypeAnalyzer, ArrayTypeAnalyzer $arrayTypeAnalyzer, ValueResolver $valueResolver) - { - $this->stringTypeAnalyzer = $stringTypeAnalyzer; - $this->arrayTypeAnalyzer = $arrayTypeAnalyzer; - $this->valueResolver = $valueResolver; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Make if conditions more explicit', [new CodeSample(<<<'CODE_SAMPLE' @@ -89,146 +52,9 @@ public function getNodeTypes(): array } /** * @param If_|ElseIf_|Ternary $node - * @return null|Stmt[]|Node */ - public function refactor(Node $node) + public function refactor(Node $node): ?Node { - // skip short ternary - if ($node instanceof Ternary && !$node->if instanceof Expr) { - return null; - } - if ($node->cond instanceof BooleanNot) { - $conditionNode = $node->cond->expr; - $isNegated = \true; - } else { - $conditionNode = $node->cond; - $isNegated = \false; - } - if ($conditionNode instanceof Bool_) { - return null; - } - $conditionStaticType = $this->nodeTypeResolver->getNativeType($conditionNode); - if ($conditionStaticType instanceof MixedType || $conditionStaticType->isBoolean()->yes()) { - return null; - } - // handled by ArrayExplicitBoolCompareRector - if ($this->arrayTypeAnalyzer->isArrayType($conditionNode)) { - return null; - } - // handled by ObjectExplicitBoolCompareRector - if ($this->nodeTypeResolver->matchNullableTypeOfSpecificType($conditionNode, ObjectType::class) instanceof ObjectType) { - return null; - } - $binaryOp = $this->resolveNewConditionNode($conditionNode, $isNegated); - if (!$binaryOp instanceof Expr) { - return null; - } - if ($node instanceof If_ && $node->cond instanceof Assign && $binaryOp->left instanceof NotIdentical && $binaryOp->right instanceof NotIdentical) { - $expression = new Expression($node->cond); - $binaryOp->left->left = $node->cond->var; - $binaryOp->right->left = $node->cond->var; - $node->cond = $binaryOp; - return [$expression, $node]; - } - $node->cond = $binaryOp; - return $node; - } - private function resolveNewConditionNode(Expr $expr, bool $isNegated): ?BinaryOp - { - if ($expr instanceof FuncCall && $this->isName($expr, 'count')) { - return $this->resolveCount($isNegated, $expr); - } - if ($this->stringTypeAnalyzer->isStringOrUnionStringOnlyType($expr)) { - return $this->resolveString($isNegated, $expr); - } - $exprType = $this->getType($expr); - if ($exprType->isInteger()->yes()) { - return $this->resolveInteger($isNegated, $expr); - } - if ($exprType->isFloat()->yes()) { - return $this->resolveFloat($isNegated, $expr); - } - return null; - } - /** - * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\Greater|null - */ - private function resolveCount(bool $isNegated, FuncCall $funcCall) - { - if ($funcCall->isFirstClassCallable()) { - return null; - } - $countedType = $this->getType($funcCall->getArgs()[0]->value); - if ($countedType->isArray()->yes()) { - return null; - } - $int = new Int_(0); - // compare === 0, assumption - if ($isNegated) { - return new Identical($funcCall, $int); - } - return new Greater($funcCall, $int); - } - /** - * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\NotIdentical|\PhpParser\Node\Expr\BinaryOp\BooleanAnd|\PhpParser\Node\Expr\BinaryOp\BooleanOr - */ - private function resolveString(bool $isNegated, Expr $expr) - { - $emptyString = new String_(''); - $identical = $this->resolveIdentical($expr, $isNegated, $emptyString); - $value = $this->valueResolver->getValue($expr); - // unknown value. may be from parameter - if ($value === null) { - return $this->resolveZeroIdenticalString($identical, $isNegated, $expr); - } - $length = strlen((string) $value); - if ($length === 1) { - $zeroString = new String_('0'); - return $this->resolveIdentical($expr, $isNegated, $zeroString); - } - return $identical; - } - /** - * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\NotIdentical - */ - private function resolveIdentical(Expr $expr, bool $isNegated, String_ $string) - { - /** - * // compare === '' - */ - $identical = $isNegated ? new Identical($expr, $string) : new NotIdentical($expr, $string); - return $identical; - } - /** - * @param \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\NotIdentical $identical - * @return \PhpParser\Node\Expr\BinaryOp\BooleanAnd|\PhpParser\Node\Expr\BinaryOp\BooleanOr - */ - private function resolveZeroIdenticalString($identical, bool $isNegated, Expr $expr) - { - $string = new String_('0'); - $zeroIdentical = $isNegated ? new Identical($expr, $string) : new NotIdentical($expr, $string); - return $isNegated ? new BooleanOr($identical, $zeroIdentical) : new BooleanAnd($identical, $zeroIdentical); - } - /** - * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\NotIdentical - */ - private function resolveInteger(bool $isNegated, Expr $expr) - { - $int = new Int_(0); - if ($isNegated) { - return new Identical($expr, $int); - } - return new NotIdentical($expr, $int); - } - /** - * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\NotIdentical - */ - private function resolveFloat(bool $isNegated, Expr $expr) - { - $float = new Float_(0.0); - if ($isNegated) { - return new Identical($expr, $float); - } - return new NotIdentical($expr, $float); + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as array and object bool compares have dedicated rules and the rest is an opinionated approach that depends on context', self::class)); } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index b673de935c0..37a9aac6f68 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 = 'd28960e60ac022ccdb6b9b461645881f21ed3bf9'; + public const PACKAGE_VERSION = 'e6c36be32b8dda0178e62e06bc54ae3eccbe7d78'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 00:22:49'; + public const RELEASE_DATE = '2026-08-30 00:25:41'; /** * @var int */ From 1d2fed1261f11b0094ebd19409479855e096fac5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 22:29:57 +0000 Subject: [PATCH 083/169] Updated Rector to commit bfee018eaa8fc099d116fb8825abb94a354501d8 https://github.com/rectorphp/rector-src/commit/bfee018eaa8fc099d116fb8825abb94a354501d8 [dx] Deprecate CombineIfRector (#8413) --- config/set/if.php | 4 +- .../Rector/If_/CombineIfRector.php | 82 ++----------------- src/Application/VersionResolver.php | 4 +- 3 files changed, 9 insertions(+), 81 deletions(-) diff --git a/config/set/if.php b/config/set/if.php index 2b2840a9d94..da8910945c4 100644 --- a/config/set/if.php +++ b/config/set/if.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace RectorPrefix202608; -use Rector\CodeQuality\Rector\If_\CombineIfRector; use Rector\Config\RectorConfig; +// note: all if rules were moved to code quality and coding style sets, or deprecated return static function (RectorConfig $rectorConfig): void { - $rectorConfig->rules([CombineIfRector::class]); + $rectorConfig->rules([]); }; diff --git a/rules/CodeQuality/Rector/If_/CombineIfRector.php b/rules/CodeQuality/Rector/If_/CombineIfRector.php index 31cd91ded46..65bd884abaa 100644 --- a/rules/CodeQuality/Rector/If_/CombineIfRector.php +++ b/rules/CodeQuality/Rector/If_/CombineIfRector.php @@ -4,37 +4,17 @@ namespace Rector\CodeQuality\Rector\If_; use PhpParser\Node; -use PhpParser\Node\Expr\BinaryOp; -use PhpParser\Node\Expr\BinaryOp\BooleanAnd; -use PhpParser\Node\Expr\BooleanNot; -use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\If_; -use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; -use Rector\BetterPhpDocParser\Comment\CommentsMerger; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\NodeTypeResolver\Node\AttributeKey; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\CodeQuality\Rector\If_\CombineIfRector\CombineIfRectorTest + * @deprecated This rule is deprecated, as merging nested ifs can create much less readable code and depends on context. */ -final class CombineIfRector extends AbstractRector +final class CombineIfRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private CommentsMerger $commentsMerger; - /** - * @readonly - */ - private PhpDocInfoFactory $phpDocInfoFactory; - public function __construct(CommentsMerger $commentsMerger, PhpDocInfoFactory $phpDocInfoFactory) - { - $this->commentsMerger = $commentsMerger; - $this->phpDocInfoFactory = $phpDocInfoFactory; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Merge nested if statements', [new CodeSample(<<<'CODE_SAMPLE' @@ -75,58 +55,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($this->shouldSkip($node)) { - return null; - } - /** @var If_ $subIf */ - $subIf = $node->stmts[0]; - if ($this->hasVarTag($subIf)) { - return null; - } - $node->cond->setAttribute(AttributeKey::ORIGINAL_NODE, null); - $cond = $node->cond; - while ($cond instanceof BinaryOp) { - if (!$cond->right instanceof BinaryOp) { - $cond->right->setAttribute(AttributeKey::ORIGINAL_NODE, null); - } - $cond = $cond->right; - } - if ($subIf->cond instanceof BinaryOp && !$subIf->cond->left instanceof BinaryOp) { - $subIf->cond->left->setAttribute(AttributeKey::ORIGINAL_NODE, null); - } - if ($node->cond instanceof BooleanNot && $node->cond->expr instanceof BinaryOp) { - $node->cond->expr->setAttribute(AttributeKey::ORIGINAL_NODE, null); - } - $node->cond = new BooleanAnd($node->cond, $subIf->cond); - $node->stmts = $subIf->stmts; - $this->commentsMerger->keepComments($node, [$subIf]); - return $node; - } - private function shouldSkip(If_ $if): bool - { - if ($if->else instanceof Else_) { - return \true; - } - if (count($if->stmts) !== 1) { - return \true; - } - if ($if->elseifs !== []) { - return \true; - } - if (!$if->stmts[0] instanceof If_) { - return \true; - } - if ($if->stmts[0]->else instanceof Else_) { - return \true; - } - return (bool) $if->stmts[0]->elseifs; - } - private function hasVarTag(If_ $if): bool - { - $subIfPhpDocInfo = $this->phpDocInfoFactory->createFromNode($if); - if (!$subIfPhpDocInfo instanceof PhpDocInfo) { - return \false; - } - return $subIfPhpDocInfo->getVarTagValueNode() instanceof VarTagValueNode; + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as merging nested ifs can create much less readable code and depends on context', self::class)); } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 37a9aac6f68..0afcde2ca17 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 = 'e6c36be32b8dda0178e62e06bc54ae3eccbe7d78'; + public const PACKAGE_VERSION = 'bfee018eaa8fc099d116fb8825abb94a354501d8'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 00:25:41'; + public const RELEASE_DATE = '2026-08-29 22:27:24'; /** * @var int */ From a7f993e90a6db46d87fabe022558ed09d0107120 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 22:55:07 +0000 Subject: [PATCH 084/169] Updated Rector to commit cc5d6f984ffddd44fd000860acb21c2245f3b52e https://github.com/rectorphp/rector-src/commit/cc5d6f984ffddd44fd000860acb21c2245f3b52e [dx] Mark deprecated prepared sets params and withCacheMetaExtension with @deprecated (#8415) --- src/Application/VersionResolver.php | 4 ++-- src/Configuration/RectorConfigBuilder.php | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 0afcde2ca17..44983083498 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 = 'bfee018eaa8fc099d116fb8825abb94a354501d8'; + public const PACKAGE_VERSION = 'cc5d6f984ffddd44fd000860acb21c2245f3b52e'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-29 22:27:24'; + public const RELEASE_DATE = '2026-08-30 00:52:26'; /** * @var int */ diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index 60f5150f544..252e7ace4a1 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -441,6 +441,11 @@ public function withPhp74Sets(): self } // there is no withPhp80Sets() and above, // as we already use PHP 8.0 and should go with withPhpSets() instead + /** + * @param bool $instanceOf @deprecated Use $codeQuality instead, as most instanceof rules were moved there + * @param bool $if @deprecated Use $codeQuality and $codingStyle instead, as the if rules were moved there or deprecated + * @param bool $earlyReturn @deprecated Use $codeQuality instead, as all early return rules were moved there + */ public function withPreparedSets(bool $deadCode = \false, bool $codeQuality = \false, bool $codingStyle = \false, bool $typeDeclarations = \false, bool $typeDeclarationDocblocks = \false, bool $privatization = \false, bool $naming = \false, bool $namedArgs = \false, bool $instanceOf = \false, bool $if = \false, bool $earlyReturn = \false, bool $carbon = \false, bool $rectorPreset = \false, bool $phpunitCodeQuality = \false, bool $phpunitNarrowAsserts = \false, bool $phpunitMockToStub = \false, bool $doctrineCodeQuality = \false, bool $symfonyCodeQuality = \false, bool $symfonyConfigs = \false): self { Notifier::notifyNotSuitableMethodForPHP74(__METHOD__); @@ -517,6 +522,7 @@ public function withCache(?string $cacheDirectory = null, ?string $cacheClass = } /** * @param class-string $cacheMetaExtensionClass + * @deprecated Niche mechanism, no longer applied. Let Rector handle cache on its own. */ public function withCacheMetaExtension(string $cacheMetaExtensionClass): self { From 04130f7c59c68ce3d7170d46c03bcbe7e5c2814d Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 29 Aug 2026 23:17:08 +0000 Subject: [PATCH 085/169] Updated Rector to commit cc5d6f984ffddd44fd000860acb21c2245f3b52e --- src/Config/RectorConfig.php | 2 + src/Configuration/RectorConfigBuilder.php | 28 ++++ .../Collector/UseNodesToAddCollector.php | 10 ++ src/Rector/AbstractRector.php | 1 + vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/composer/installed.json | 8 +- vendor/composer/installed.php | 2 +- vendor/nette/utils/src/Utils/Reflection.php | 3 + vendor/nette/utils/src/Utils/Strings.php | 4 +- vendor/nette/utils/src/Utils/Type.php | 3 + .../src/GeneratedConfig.php | 2 +- .../rules/CodeQuality/Enum/DoctrineClass.php | 2 +- .../config/set/downgrade-php84.php | 3 +- .../DowngradeDeprecatedAttributeRector.php | 126 ++++++++++++++++++ 15 files changed, 187 insertions(+), 9 deletions(-) create mode 100644 vendor/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/ClassMethod/DowngradeDeprecatedAttributeRector.php diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index 37afa41c3a1..26e059530f4 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -361,6 +361,7 @@ public function containerCacheDirectory(string $directoryPath): void } /** * @param class-string $cacheClass + * @deprecated Cache storage is selected automatically: file cache locally, in-memory cache in CI, where the ephemeral workspace makes writing a cache that is never re-read wasted IO. The passed value is ignored. */ public function cacheClass(string $cacheClass): void { @@ -368,6 +369,7 @@ public function cacheClass(string $cacheClass): void } /** * @param class-string $cacheMetaExtensionClass + * @deprecated Niche mechanism, no longer applied. Let Rector handle cache on its own. If custom invalidation is needed, handle it in CI in a more generic way, e.g. by clearing the cache directory. */ public function cacheMetaExtension(string $cacheMetaExtensionClass): void { diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index 252e7ace4a1..7f0b878d62b 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -403,38 +403,65 @@ public function withPhpSets( $this->isPhpSetsVersionPicked = \true; return $this->addPhpLevelSets($pickedPhpVersions[0]); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp53Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp54Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp55Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp56Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp70Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp71Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp72Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp73Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); } + /** + * @deprecated Use "withPhpLevel()" instead, it raises PHP level one rule at a time. + */ public function withPhp74Sets(): self { return $this->reportDeprecatedPhpSetsMethod(__FUNCTION__); @@ -523,6 +550,7 @@ public function withCache(?string $cacheDirectory = null, ?string $cacheClass = /** * @param class-string $cacheMetaExtensionClass * @deprecated Niche mechanism, no longer applied. Let Rector handle cache on its own. + * @deprecated Niche mechanism, no longer applied. Let Rector handle cache on its own. If custom invalidation is needed, handle it in CI in a more generic way, e.g. by clearing the cache directory. */ public function withCacheMetaExtension(string $cacheMetaExtensionClass): self { diff --git a/src/PostRector/Collector/UseNodesToAddCollector.php b/src/PostRector/Collector/UseNodesToAddCollector.php index b936705cd5a..b56c9217551 100644 --- a/src/PostRector/Collector/UseNodesToAddCollector.php +++ b/src/PostRector/Collector/UseNodesToAddCollector.php @@ -74,6 +74,7 @@ public function __construct(CurrentFileProvider $currentFileProvider) } /** * @api + * @deprecated Use $file->getFileNode()->getPendingImports()->addUseImport($type) instead. */ public function addUseImport(FullyQualifiedObjectType $fullyQualifiedObjectType): void { @@ -86,6 +87,7 @@ public function addUseImport(FullyQualifiedObjectType $fullyQualifiedObjectType) } /** * @api + * @deprecated Use $file->getFileNode()->getPendingImports()->addConstantUseImport($type) instead. */ public function addConstantUseImport(FullyQualifiedObjectType $fullyQualifiedObjectType): void { @@ -98,6 +100,7 @@ public function addConstantUseImport(FullyQualifiedObjectType $fullyQualifiedObj } /** * @api + * @deprecated Use $file->getFileNode()->getPendingImports()->addFunctionUseImport($type) instead. */ public function addFunctionUseImport(FullyQualifiedObjectType $fullyQualifiedObjectType): void { @@ -112,6 +115,7 @@ public function addFunctionUseImport(FullyQualifiedObjectType $fullyQualifiedObj * @api * * @return array + * @deprecated Use $file->getFileNode()->resolveUsedImportTypes() instead. */ public function getUseImportTypesByNode(File $file): array { @@ -124,6 +128,7 @@ public function getUseImportTypesByNode(File $file): array } /** * @api + * @deprecated Use $file->getFileNode()->hasImport($type) instead. */ public function hasImport(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType): bool { @@ -136,6 +141,7 @@ public function hasImport(File $file, FullyQualifiedObjectType $fullyQualifiedOb } /** * @api + * @deprecated Use $file->getFileNode()->getPendingImports()->isShortImported($type) instead. */ public function isShortImported(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType): bool { @@ -148,6 +154,7 @@ public function isShortImported(File $file, FullyQualifiedObjectType $fullyQuali } /** * @api + * @deprecated Use $file->getFileNode()->getPendingImports()->isImportShortable($type) instead. */ public function isImportShortable(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType): bool { @@ -162,6 +169,7 @@ public function isImportShortable(File $file, FullyQualifiedObjectType $fullyQua * @api * * @return FullyQualifiedObjectType[] + * @deprecated Use $file->getFileNode()->getPendingImports()->getUseImports() instead. */ public function getObjectImportsByFilePath(string $filePath): array { @@ -176,6 +184,7 @@ public function getObjectImportsByFilePath(string $filePath): array * @api * * @return FullyQualifiedObjectType[] + * @deprecated Use $file->getFileNode()->getPendingImports()->getConstantImports() instead. */ public function getConstantImportsByFilePath(string $filePath): array { @@ -190,6 +199,7 @@ public function getConstantImportsByFilePath(string $filePath): array * @api * * @return FullyQualifiedObjectType[] + * @deprecated Use $file->getFileNode()->getPendingImports()->getFunctionImports() instead. */ public function getFunctionImportsByFilePath(string $filePath): array { diff --git a/src/Rector/AbstractRector.php b/src/Rector/AbstractRector.php index 983d64ea7af..d6308b22995 100644 --- a/src/Rector/AbstractRector.php +++ b/src/Rector/AbstractRector.php @@ -151,6 +151,7 @@ final public function enterNode(Node $node) return $this->postRefactorProcess($originalNode, $node, $refactoredNodeOrState, $filePath); } /** + * @deprecated no longer used * @return mixed[]|int|\PhpParser\Node|null */ final public function leaveNode(Node $node) diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index ceb147b6c97..b832f81d994 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1559,6 +1559,7 @@ 'Rector\\DowngradePhp83\\Rector\\ClassConst\\DowngradeTypedClassConstRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php', 'Rector\\DowngradePhp83\\Rector\\Class_\\DowngradeReadonlyAnonymousClassRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/Class_/DowngradeReadonlyAnonymousClassRector.php', 'Rector\\DowngradePhp83\\Rector\\FuncCall\\DowngradeJsonValidateRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/FuncCall/DowngradeJsonValidateRector.php', + 'Rector\\DowngradePhp84\\Rector\\ClassMethod\\DowngradeDeprecatedAttributeRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/ClassMethod/DowngradeDeprecatedAttributeRector.php', 'Rector\\DowngradePhp84\\Rector\\Expression\\DowngradeArrayAllRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/Expression/DowngradeArrayAllRector.php', 'Rector\\DowngradePhp84\\Rector\\Expression\\DowngradeArrayAnyRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/Expression/DowngradeArrayAnyRector.php', 'Rector\\DowngradePhp84\\Rector\\Expression\\DowngradeArrayFindKeyRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/Expression/DowngradeArrayFindKeyRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 8ef01964f20..b503e8b3c7b 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1779,6 +1779,7 @@ class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 'Rector\\DowngradePhp83\\Rector\\ClassConst\\DowngradeTypedClassConstRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php', 'Rector\\DowngradePhp83\\Rector\\Class_\\DowngradeReadonlyAnonymousClassRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/Class_/DowngradeReadonlyAnonymousClassRector.php', 'Rector\\DowngradePhp83\\Rector\\FuncCall\\DowngradeJsonValidateRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/FuncCall/DowngradeJsonValidateRector.php', + 'Rector\\DowngradePhp84\\Rector\\ClassMethod\\DowngradeDeprecatedAttributeRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/ClassMethod/DowngradeDeprecatedAttributeRector.php', 'Rector\\DowngradePhp84\\Rector\\Expression\\DowngradeArrayAllRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/Expression/DowngradeArrayAllRector.php', 'Rector\\DowngradePhp84\\Rector\\Expression\\DowngradeArrayAnyRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/Expression/DowngradeArrayAnyRector.php', 'Rector\\DowngradePhp84\\Rector\\Expression\\DowngradeArrayFindKeyRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/Expression/DowngradeArrayFindKeyRector.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index add4772a2f9..7533f76dbd3 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "a3ba7ce6033e90ed2a0cd56ebc4812315369f701" + "reference": "3b4122f384147f6d40adf588487d983e160b50e6" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/a3ba7ce6033e90ed2a0cd56ebc4812315369f701", - "reference": "a3ba7ce6033e90ed2a0cd56ebc4812315369f701", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/3b4122f384147f6d40adf588487d983e160b50e6", + "reference": "3b4122f384147f6d40adf588487d983e160b50e6", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-29T17:48:26+00:00", + "time": "2026-08-29T23:14:25+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 61d1b6d2c2a..8ec39fa7e68 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'a3ba7ce6033e90ed2a0cd56ebc4812315369f701', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '3b4122f384147f6d40adf588487d983e160b50e6', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/nette/utils/src/Utils/Reflection.php b/vendor/nette/utils/src/Utils/Reflection.php index e30490cfe03..56d64181ab1 100644 --- a/vendor/nette/utils/src/Utils/Reflection.php +++ b/vendor/nette/utils/src/Utils/Reflection.php @@ -21,6 +21,9 @@ public static function isBuiltinType(string $type): bool { return Validators::isBuiltinType($type); } + /** + * @deprecated use Nette\Utils\Validators::isClassKeyword() + */ public static function isClassKeyword(string $name): bool { return Validators::isClassKeyword($name); diff --git a/vendor/nette/utils/src/Utils/Strings.php b/vendor/nette/utils/src/Utils/Strings.php index 573e94a3d6c..feeea04a735 100644 --- a/vendor/nette/utils/src/Utils/Strings.php +++ b/vendor/nette/utils/src/Utils/Strings.php @@ -18,7 +18,9 @@ class Strings { use Nette\StaticClass; public const TrimCharacters = " \t\n\r\x00\v            ​
 "; - #[\Deprecated('use Strings::TrimCharacters')] + /** + * @deprecated use Strings::TrimCharacters + */ public const TRIM_CHARACTERS = self::TrimCharacters; /** * @deprecated use Nette\Utils\Validators::isUnicode() diff --git a/vendor/nette/utils/src/Utils/Type.php b/vendor/nette/utils/src/Utils/Type.php index 45880a5a812..63e43503155 100644 --- a/vendor/nette/utils/src/Utils/Type.php +++ b/vendor/nette/utils/src/Utils/Type.php @@ -190,6 +190,9 @@ public function isSimple(): bool { return $this->singleName !== null; } + /** + * @deprecated use isSimple() + */ public function isSingle(): bool { return $this->singleName !== null; diff --git a/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/extension-installer/src/GeneratedConfig.php index d8e5a6b631d..aecebfa80eb 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main a3ba7ce'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 3b4122f'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Enum/DoctrineClass.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Enum/DoctrineClass.php index 2a439ab5e7c..bad8d43437b 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Enum/DoctrineClass.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Enum/DoctrineClass.php @@ -11,8 +11,8 @@ final class DoctrineClass { /** + * @deprecated BC only * @var string */ - #[Deprecated(message: 'BC only')] public const COLLECTION = \Rector\Doctrine\Enum\DoctrineClass::COLLECTION; } diff --git a/vendor/rector/rector-downgrade-php/config/set/downgrade-php84.php b/vendor/rector/rector-downgrade-php/config/set/downgrade-php84.php index 0f9ee1eb88f..9ca09ca2d4a 100644 --- a/vendor/rector/rector-downgrade-php/config/set/downgrade-php84.php +++ b/vendor/rector/rector-downgrade-php/config/set/downgrade-php84.php @@ -7,6 +7,7 @@ use Rector\DowngradePhp84\Rector\Expression\DowngradeArrayAllRector; use Rector\DowngradePhp84\Rector\Expression\DowngradeArrayAnyRector; use Rector\DowngradePhp84\Rector\Expression\DowngradeArrayFindKeyRector; +use Rector\DowngradePhp84\Rector\ClassMethod\DowngradeDeprecatedAttributeRector; use Rector\DowngradePhp84\Rector\Expression\DowngradeArrayFindRector; use Rector\DowngradePhp84\Rector\FuncCall\DowngradeExitNamedArgumentRector; use Rector\DowngradePhp84\Rector\FuncCall\DowngradeRoundingModeEnumRector; @@ -14,5 +15,5 @@ use Rector\ValueObject\PhpVersion; return static function (RectorConfig $rectorConfig): void { $rectorConfig->phpVersion(PhpVersion::PHP_83); - $rectorConfig->rules([DowngradeNewMethodCallWithoutParenthesesRector::class, DowngradeExitNamedArgumentRector::class, DowngradeRoundingModeEnumRector::class, DowngradeArrayAllRector::class, DowngradeArrayAnyRector::class, DowngradeArrayFindRector::class, DowngradeArrayFindKeyRector::class]); + $rectorConfig->rules([DowngradeNewMethodCallWithoutParenthesesRector::class, DowngradeExitNamedArgumentRector::class, DowngradeRoundingModeEnumRector::class, DowngradeArrayAllRector::class, DowngradeArrayAnyRector::class, DowngradeArrayFindRector::class, DowngradeArrayFindKeyRector::class, DowngradeDeprecatedAttributeRector::class]); }; diff --git a/vendor/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/ClassMethod/DowngradeDeprecatedAttributeRector.php b/vendor/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/ClassMethod/DowngradeDeprecatedAttributeRector.php new file mode 100644 index 00000000000..97790ec4e1a --- /dev/null +++ b/vendor/rector/rector-downgrade-php/rules/DowngradePhp84/Rector/ClassMethod/DowngradeDeprecatedAttributeRector.php @@ -0,0 +1,126 @@ +phpDocInfoFactory = $phpDocInfoFactory; + $this->docBlockUpdater = $docBlockUpdater; + $this->valueResolver = $valueResolver; + } + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Downgrade #[\Deprecated] attribute to @deprecated annotation', [new CodeSample(<<<'CODE_SAMPLE' +class SomeClass +{ + #[\Deprecated(message: 'use SomeOtherMethod() instead', since: '1.5')] + public function someMethod(): void + { + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + /** + * @deprecated 1.5 use SomeOtherMethod() instead + */ + public function someMethod(): void + { + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes(): array + { + return [ClassMethod::class, Function_::class, ClassConst::class, EnumCase::class]; + } + /** + * @param ClassMethod|Function_|ClassConst|EnumCase $node + */ + public function refactor(Node $node): ?Node + { + if ($node->attrGroups === []) { + return null; + } + $hasChanged = \false; + foreach ($node->attrGroups as $attrGroupKey => $attrGroup) { + foreach ($attrGroup->attrs as $attrKey => $attribute) { + if (!$this->isName($attribute->name, 'Deprecated')) { + continue; + } + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + $phpDocInfo->addPhpDocTagNode(new PhpDocTagNode('@deprecated', new GenericTagValueNode($this->createTagValue($attribute)))); + unset($attrGroup->attrs[$attrKey]); + $hasChanged = \true; + } + if ($attrGroup->attrs === []) { + unset($node->attrGroups[$attrGroupKey]); + } + } + if (!$hasChanged) { + return null; + } + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); + return $node; + } + private function createTagValue(Attribute $attribute): string + { + $message = null; + $since = null; + foreach ($attribute->args as $position => $arg) { + $value = $this->valueResolver->getValue($arg->value); + if (!is_string($value)) { + continue; + } + $name = $arg instanceof Arg && $arg->name instanceof Identifier ? $arg->name->toString() : ($position === 0 ? 'message' : 'since'); + if ($name === 'since') { + $since = $value; + } elseif ($name === 'message') { + $message = $value; + } + } + $parts = array_filter([$since, $message], static fn(?string $part): bool => $part !== null && $part !== ''); + return implode(' ', array_map(static fn(string $part): string => (string) preg_replace('#\s+#', ' ', trim($part)), $parts)); + } +} From 9e25013c3cb2f5ed8e097f7756fb318367309861 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 30 Aug 2026 07:42:22 +0000 Subject: [PATCH 086/169] Updated Rector to commit 3bac42eb97293437491ee5e22d51b3cee8609455 https://github.com/rectorphp/rector-src/commit/3bac42eb97293437491ee5e22d51b3cee8609455 [dx] Deprecate ShortenElseIfRector (#8416) --- .../Rector/If_/ShortenElseIfRector.php | 71 ++----------------- src/Application/VersionResolver.php | 4 +- src/Config/Level/CodeQualityLevel.php | 3 +- 3 files changed, 8 insertions(+), 70 deletions(-) diff --git a/rules/CodeQuality/Rector/If_/ShortenElseIfRector.php b/rules/CodeQuality/Rector/If_/ShortenElseIfRector.php index 7c7c4d35052..bfcaef9d07a 100644 --- a/rules/CodeQuality/Rector/If_/ShortenElseIfRector.php +++ b/rules/CodeQuality/Rector/If_/ShortenElseIfRector.php @@ -4,20 +4,16 @@ namespace Rector\CodeQuality\Rector\If_; use PhpParser\Node; -use PhpParser\Node\Stmt\Else_; -use PhpParser\Node\Stmt\ElseIf_; use PhpParser\Node\Stmt\If_; -use PhpParser\Node\Stmt\Nop; -use PhpParser\Token; -use Rector\Contract\Rector\HTMLAverseRectorInterface; -use Rector\NodeTypeResolver\Node\AttributeKey; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\CodeQuality\Rector\If_\ShortenElseIfRector\ShortenElseIfRectorTest + * @deprecated This rule is deprecated, as merging `else`/`if` into `elseif` creates less readable code and breaks the logical reading of the if train. */ -final class ShortenElseIfRector extends AbstractRector implements HTMLAverseRectorInterface +final class ShortenElseIfRector extends AbstractRector implements DeprecatedInterface { public function getRuleDefinition(): RuleDefinition { @@ -63,63 +59,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - return $this->shortenElseIf($node); - } - private function shortenElseIf(If_ $node): ?If_ - { - if (!$node->else instanceof Else_) { - return null; - } - $else = $node->else; - if (count($else->stmts) !== 1) { - return null; - } - $if = $else->stmts[0]; - if (!$if instanceof If_) { - return null; - } - // alternative syntax (if/else/endif) cannot be merged to elseif without producing mixed brace/colon syntax - if ($this->isAlternativeSyntax($node) || $this->isAlternativeSyntax($if)) { - return null; - } - // Try to shorten the nested if before transforming it to elseif - $refactored = $this->shortenElseIf($if); - if ($refactored instanceof If_) { - $if = $refactored; - } - if ($if->stmts === []) { - $nop = new Nop(); - $nop->setAttribute(AttributeKey::COMMENTS, $if->getComments()); - $if->stmts[] = $nop; - } else { - $currentStmt = current($if->stmts); - $mergedComments = array_merge($if->getComments(), $currentStmt->getComments()); - $currentStmt->setAttribute(AttributeKey::COMMENTS, $mergedComments); - } - $node->elseifs[] = new ElseIf_($if->cond, $if->stmts); - $node->else = $if->else; - $node->elseifs = array_merge($node->elseifs, $if->elseifs); - return $node; - } - private function isAlternativeSyntax(If_ $if): bool - { - $startTokenPos = $if->cond->getEndTokenPos(); - if ($startTokenPos < 0) { - return \false; - } - $oldTokens = $this->getFile()->getOldTokens(); - for ($i = $startTokenPos + 1; isset($oldTokens[$i]); ++$i) { - $token = $oldTokens[$i]; - if (!$token instanceof Token) { - continue; - } - if ($token->text === ':') { - return \true; - } - if ($token->text === '{') { - return \false; - } - } - return \false; + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as it creates less readable code and breaks the logical reading of the if train', self::class)); } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 44983083498..a52ca767829 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 = 'cc5d6f984ffddd44fd000860acb21c2245f3b52e'; + public const PACKAGE_VERSION = '3bac42eb97293437491ee5e22d51b3cee8609455'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 00:52:26'; + public const RELEASE_DATE = '2026-08-30 09:39:55'; /** * @var int */ diff --git a/src/Config/Level/CodeQualityLevel.php b/src/Config/Level/CodeQualityLevel.php index 06bd8ee55b1..cbb2f416bf4 100644 --- a/src/Config/Level/CodeQualityLevel.php +++ b/src/Config/Level/CodeQualityLevel.php @@ -53,7 +53,6 @@ use Rector\CodeQuality\Rector\If_\ArrayExplicitBoolCompareRector; use Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector; use Rector\CodeQuality\Rector\If_\ObjectExplicitBoolCompareRector; -use Rector\CodeQuality\Rector\If_\ShortenElseIfRector; use Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector; use Rector\CodeQuality\Rector\If_\SimplifyIfNullableReturnRector; use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector; @@ -104,7 +103,7 @@ final class CodeQualityLevel * * @var array> */ - public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ArrayExplicitBoolCompareRector::class, ObjectExplicitBoolCompareRector::class, ShortenElseIfRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, InlineIfToExplicitIfRector::class, TernaryFalseExpressionToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class]; + public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ArrayExplicitBoolCompareRector::class, ObjectExplicitBoolCompareRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, InlineIfToExplicitIfRector::class, TernaryFalseExpressionToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class]; /** * @var array, mixed[]> */ From 1313ceebc5bcf29743dbead426f69a1a19418964 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 30 Aug 2026 09:19:20 +0000 Subject: [PATCH 087/169] Updated Rector to commit 13cbd813cd56168e1fc7a713f92227062cc4b943 https://github.com/rectorphp/rector-src/commit/13cbd813cd56168e1fc7a713f92227062cc4b943 [CodeQuality] Skip same local method call in InlineIfToExplicitIfRector (#8417) --- .../Expression/InlineIfToExplicitIfRector.php | 21 +++++++++++++++++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php b/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php index 73ec3fe8d93..cea550927d6 100644 --- a/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php +++ b/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php @@ -9,6 +9,8 @@ use PhpParser\Node\Expr\BinaryOp\BooleanOr; use PhpParser\Node\Expr\BooleanNot; use PhpParser\Node\Expr\FuncCall; +use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; use Rector\NodeManipulator\BinaryOpManipulator; @@ -84,6 +86,9 @@ private function processExplicitIf(Expression $expression): ?Node if ($exprLeft instanceof FuncCall && $this->isName($exprLeft, 'defined')) { return null; } + if ($this->isSameLocalMethodCall($booleanExpr->left, $booleanExpr->right)) { + return null; + } $leftStaticType = $this->getType($booleanExpr->left); if (!$leftStaticType->isBoolean()->yes()) { return null; @@ -95,4 +100,20 @@ private function processExplicitIf(Expression $expression): ?Node $this->mirrorComments($if, $expression); return $if; } + private function isSameLocalMethodCall(Expr $left, Expr $right): bool + { + if (!$left instanceof MethodCall) { + return \false; + } + if (!$right instanceof MethodCall) { + return \false; + } + if (!$left->var instanceof Variable || !$this->isName($left->var, 'this')) { + return \false; + } + if (!$right->var instanceof Variable || !$this->isName($right->var, 'this')) { + return \false; + } + return $this->nodeNameResolver->areNamesEqual($left->name, $right->name); + } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index a52ca767829..988ec11003d 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 = '3bac42eb97293437491ee5e22d51b3cee8609455'; + public const PACKAGE_VERSION = '13cbd813cd56168e1fc7a713f92227062cc4b943'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 09:39:55'; + public const RELEASE_DATE = '2026-08-30 11:17:01'; /** * @var int */ From 54cd3eb7db69cc17c5796935796ed8e0e4b6445c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 30 Aug 2026 16:59:27 +0000 Subject: [PATCH 088/169] Updated Rector to commit 85e562c607f770f4f448f3116350e998c44cb370 https://github.com/rectorphp/rector-src/commit/85e562c607f770f4f448f3116350e998c44cb370 [CodeQuality] Skip same local method call chain in InlineIfToExplicitIfRector (#8418) --- ...lineConstructorDefaultToPropertyRector.php | 2 +- .../Expression/InlineIfToExplicitIfRector.php | 47 ++++++++++++++----- src/Application/VersionResolver.php | 4 +- vendor/composer/installed.php | 2 +- 4 files changed, 38 insertions(+), 17 deletions(-) diff --git a/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php b/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php index 70ba9334107..bdee48f02a6 100644 --- a/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php +++ b/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php @@ -182,7 +182,7 @@ private function matchAssignedLocalPropertyName(Assign $assign): ?string } private function isFoundInAnyPropertyHooks(Class_ $class, string $propertyName): bool { - $propertyHooks = array_reduce($class->getProperties(), static fn(array $hooks, Property $property): array => array_merge($hooks, $property->hooks), []); + $propertyHooks = array_reduce($class->getProperties(), static fn(array $hooks, Property $property): array => array_merge(is_array($hooks) ? $hooks : iterator_to_array(is_array($hooks) ? new \ArrayIterator($hooks) : $hooks), is_array($property->hooks) ? $property->hooks : iterator_to_array(is_array($property->hooks) ? new \ArrayIterator($property->hooks) : $property->hooks)), []); return (bool) $this->betterNodeFinder->findFirst($propertyHooks, function (Node $subNode) use ($class, $propertyName): bool { if (!$subNode instanceof PropertyFetch) { return \false; diff --git a/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php b/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php index cea550927d6..6985a0560bd 100644 --- a/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php +++ b/rules/CodeQuality/Rector/Expression/InlineIfToExplicitIfRector.php @@ -86,7 +86,7 @@ private function processExplicitIf(Expression $expression): ?Node if ($exprLeft instanceof FuncCall && $this->isName($exprLeft, 'defined')) { return null; } - if ($this->isSameLocalMethodCall($booleanExpr->left, $booleanExpr->right)) { + if ($this->isSameLocalMethodCallChain($booleanExpr)) { return null; } $leftStaticType = $this->getType($booleanExpr->left); @@ -100,20 +100,41 @@ private function processExplicitIf(Expression $expression): ?Node $this->mirrorComments($if, $expression); return $if; } - private function isSameLocalMethodCall(Expr $left, Expr $right): bool + /** + * @param \PhpParser\Node\Expr\BinaryOp\BooleanAnd|\PhpParser\Node\Expr\BinaryOp\BooleanOr $booleanExpr + */ + private function isSameLocalMethodCallChain($booleanExpr): bool { - if (!$left instanceof MethodCall) { - return \false; - } - if (!$right instanceof MethodCall) { - return \false; - } - if (!$left->var instanceof Variable || !$this->isName($left->var, 'this')) { - return \false; + $leaves = []; + $this->collectOperands($booleanExpr, $leaves); + $firstMethodCall = null; + foreach ($leaves as $leaf) { + if (!$leaf instanceof MethodCall) { + return \false; + } + if (!$leaf->var instanceof Variable || !$this->isName($leaf->var, 'this')) { + return \false; + } + if (!$firstMethodCall instanceof MethodCall) { + $firstMethodCall = $leaf; + continue; + } + if (!$this->nodeNameResolver->areNamesEqual($firstMethodCall->name, $leaf->name)) { + return \false; + } } - if (!$right->var instanceof Variable || !$this->isName($right->var, 'this')) { - return \false; + return $firstMethodCall instanceof MethodCall; + } + /** + * @param Expr[] $leaves + */ + private function collectOperands(Expr $expr, array &$leaves): void + { + if ($expr instanceof BooleanAnd || $expr instanceof BooleanOr) { + $this->collectOperands($expr->left, $leaves); + $this->collectOperands($expr->right, $leaves); + return; } - return $this->nodeNameResolver->areNamesEqual($left->name, $right->name); + $leaves[] = $expr; } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 988ec11003d..55dd6c5daf0 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 = '13cbd813cd56168e1fc7a713f92227062cc4b943'; + public const PACKAGE_VERSION = '85e562c607f770f4f448f3116350e998c44cb370'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 11:17:01'; + public const RELEASE_DATE = '2026-08-30 18:57:07'; /** * @var int */ diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 8ec39fa7e68..820504b8dff 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.9.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '3b4122f384147f6d40adf588487d983e160b50e6', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '3b4122f384147f6d40adf588487d983e160b50e6', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); From 1312741ac8cbecdc4a0dd32383423403157cd4dc Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 30 Aug 2026 19:54:18 +0000 Subject: [PATCH 089/169] Updated Rector to commit ffe4c3299281281135b533a839392ae34a4bfcfe https://github.com/rectorphp/rector-src/commit/ffe4c3299281281135b533a839392ae34a4bfcfe Support PHPStan 2.2.10 scope changes (#8420) --- composer.json | 2 +- .../InlineConstructorDefaultToPropertyRector.php | 2 +- .../NodeAnalyzer/CallCollectionAnalyzer.php | 5 +++++ .../NullToStrictStringIntConverter.php | 4 ---- src/Application/VersionResolver.php | 4 ++-- .../PHPStan/Scope/PHPStanNodeScopeResolver.php | 16 ++++++++++------ vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 10 +++++----- vendor/composer/autoload_static.php | 8 ++++---- vendor/scoper-autoload.php | 2 +- 10 files changed, 30 insertions(+), 25 deletions(-) diff --git a/composer.json b/composer.json index 02630bbc841..65314d3d6ee 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ ], "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.2.6" + "phpstan/phpstan": "^2.2.10" }, "autoload": { "files": [ diff --git a/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php b/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php index bdee48f02a6..70ba9334107 100644 --- a/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php +++ b/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php @@ -182,7 +182,7 @@ private function matchAssignedLocalPropertyName(Assign $assign): ?string } private function isFoundInAnyPropertyHooks(Class_ $class, string $propertyName): bool { - $propertyHooks = array_reduce($class->getProperties(), static fn(array $hooks, Property $property): array => array_merge(is_array($hooks) ? $hooks : iterator_to_array(is_array($hooks) ? new \ArrayIterator($hooks) : $hooks), is_array($property->hooks) ? $property->hooks : iterator_to_array(is_array($property->hooks) ? new \ArrayIterator($property->hooks) : $property->hooks)), []); + $propertyHooks = array_reduce($class->getProperties(), static fn(array $hooks, Property $property): array => array_merge($hooks, $property->hooks), []); return (bool) $this->betterNodeFinder->findFirst($propertyHooks, function (Node $subNode) use ($class, $propertyName): bool { if (!$subNode instanceof PropertyFetch) { return \false; diff --git a/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php b/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php index 36a039c1d9c..facb55e0716 100644 --- a/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php +++ b/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php @@ -11,6 +11,7 @@ use PhpParser\Node\Name; use PHPStan\Type\MixedType; use PHPStan\Type\NeverType; +use PHPStan\Type\TypeCombinator; use Rector\Enum\ObjectReference; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\NodeTypeResolver; @@ -38,6 +39,10 @@ public function isExists(array $calls, string $classMethodName, string $classNam foreach ($calls as $call) { $callerRoot = $call instanceof StaticCall ? $call->class : $call->var; $callerType = $this->nodeTypeResolver->getType($callerRoot); + // a nullsafe call caller is nullable by design; drop null to resolve the object class + if ($call instanceof NullsafeMethodCall) { + $callerType = TypeCombinator::removeNull($callerType); + } $callerTypeClassName = ClassNameFromObjectTypeResolver::resolve($callerType); if ($callerTypeClassName === null) { // the caller scope is unreachable, e.g. behind mutual recursion, so the type diff --git a/rules/Php81/NodeManipulator/NullToStrictStringIntConverter.php b/rules/Php81/NodeManipulator/NullToStrictStringIntConverter.php index 3a8c6b91115..d9d8bf06297 100644 --- a/rules/Php81/NodeManipulator/NullToStrictStringIntConverter.php +++ b/rules/Php81/NodeManipulator/NullToStrictStringIntConverter.php @@ -16,7 +16,6 @@ use PhpParser\Node\Scalar\Int_; use PhpParser\Node\Scalar\InterpolatedString; use PhpParser\Node\Scalar\String_; -use PHPStan\Analyser\Fiber\FiberScope; use PHPStan\Analyser\Scope; use PHPStan\Reflection\Native\ExtendedNativeParameterReflection; use PHPStan\Reflection\ParametersAcceptor; @@ -204,9 +203,6 @@ private function isAnErrorType(Expr $expr, Type $type, Scope $scope): bool return \true; } $parentScope = $scope->getParentScope(); - if ($parentScope instanceof FiberScope) { - $parentScope = $parentScope->toMutatingScope(); - } if ($parentScope instanceof Scope) { return $parentScope->getType($expr) instanceof ErrorType; } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 55dd6c5daf0..db1ce0226a2 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 = '85e562c607f770f4f448f3116350e998c44cb370'; + public const PACKAGE_VERSION = 'ffe4c3299281281135b533a839392ae34a4bfcfe'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 18:57:07'; + public const RELEASE_DATE = '2026-08-30 21:51:56'; /** * @var int */ diff --git a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index 2fa33bf83df..ebf7f55bd1c 100644 --- a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -83,8 +83,8 @@ use PhpParser\Node\Stmt\While_; use PhpParser\Node\UnionType; use PhpParser\NodeTraverser; -use PHPStan\Analyser\Fiber\FiberScope; use PHPStan\Analyser\MutatingScope; +use PHPStan\Analyser\NodeCallbackScope; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeContext; use PHPStan\Analyser\UndefinedVariableException; @@ -173,8 +173,8 @@ public function processNodes(array $stmts, string $filePath, ?MutatingScope $for Assert::allIsInstanceOf($stmts, Stmt::class); $scope = $formerMutatingScope ?? $this->scopeFactory->createFromFile($filePath); $nodeCallback = function (Node $node, MutatingScope $mutatingScope) use (&$nodeCallback, $filePath): void { - if ($mutatingScope instanceof FiberScope) { - $mutatingScope = $mutatingScope->toMutatingScope(); + if ($mutatingScope instanceof NodeCallbackScope) { + $mutatingScope = $mutatingScope->toWalkScope(); } // the class reflection is resolved AFTER entering to class node // so we need to get it from the first after this one @@ -214,7 +214,7 @@ public function processNodes(array $stmts, string $filePath, ?MutatingScope $for return; } $this->decorateNodeAttrGroups($node, $mutatingScope, $nodeCallback); - if (($node instanceof Expression || $node instanceof Return_ || $node instanceof EnumCase || $node instanceof Cast || $node instanceof YieldFrom || $node instanceof UnaryMinus || $node instanceof UnaryPlus || $node instanceof Throw_ || $node instanceof Empty_ || $node instanceof BooleanNot || $node instanceof Clone_ || $node instanceof ErrorSuppress || $node instanceof BitwiseNot || $node instanceof Eval_ || $node instanceof Print_ || $node instanceof Exit_ || $node instanceof ArrowFunction || $node instanceof Include_ || $node instanceof Instanceof_) && $node->expr instanceof Expr) { + if (($node instanceof Expression || $node instanceof Return_ || $node instanceof EnumCase || $node instanceof Cast || $node instanceof YieldFrom || $node instanceof UnaryMinus || $node instanceof UnaryPlus || $node instanceof Throw_ || $node instanceof Empty_ || $node instanceof BooleanNot || $node instanceof Clone_ || $node instanceof ErrorSuppress || $node instanceof BitwiseNot || $node instanceof Eval_ || $node instanceof Print_ || $node instanceof Exit_ || $node instanceof Include_ || $node instanceof Instanceof_) && $node->expr instanceof Expr) { $node->expr->setAttribute(AttributeKey::SCOPE, $mutatingScope); return; } @@ -525,8 +525,12 @@ private function processProperty(Property $property, MutatingScope $mutatingScop } private function processBinaryOp(BinaryOp $binaryOp, MutatingScope $mutatingScope): void { - $binaryOp->left->setAttribute(AttributeKey::SCOPE, $mutatingScope); - $binaryOp->right->setAttribute(AttributeKey::SCOPE, $mutatingScope); + if (!$binaryOp->left->getAttribute(AttributeKey::SCOPE) instanceof MutatingScope) { + $binaryOp->left->setAttribute(AttributeKey::SCOPE, $mutatingScope); + } + if (!$binaryOp->right->getAttribute(AttributeKey::SCOPE) instanceof MutatingScope) { + $binaryOp->right->setAttribute(AttributeKey::SCOPE, $mutatingScope); + } } private function processTernary(Ternary $ternary, MutatingScope $mutatingScope): void { diff --git a/vendor/autoload.php b/vendor/autoload.php index 2beb4318313..00710f3819b 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97::getLoader(); +return ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index e50002275a4..7aa03bc02f5 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97 +class ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$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 b503e8b3c7b..ca6e04bb4f5 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 +class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -3073,9 +3073,9 @@ class ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit8ff5fa6d507c0b027d31ec29ebff1b97::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 053682ae762..9bcc9276eaa 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202608\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202608\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97', 'RectorPrefix202608\ComposerAutoloaderInit8ff5fa6d507c0b027d31ec29ebff1b97'); +humbug_phpscoper_expose_class('ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91', 'RectorPrefix202608\ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202608\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202608\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202608\ValueError'); From f8686605798c755456327a3597201c3b5be76294 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 30 Aug 2026 22:02:04 +0000 Subject: [PATCH 090/169] Rector 2.6.5 --- src/Application/VersionResolver.php | 2 +- vendor/composer/installed.json | 42 +++++++++---------- vendor/composer/installed.php | 2 +- vendor/symfony/console/Debug/CliRequest.php | 11 +---- vendor/symfony/filesystem/Filesystem.php | 9 +++- vendor/symfony/filesystem/Path.php | 11 ++++- .../service-contracts/Attribute/Required.php | 11 +++++ 7 files changed, 54 insertions(+), 34 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index db1ce0226a2..f1050bbf874 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,7 +19,7 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = 'ffe4c3299281281135b533a839392ae34a4bfcfe'; + public const PACKAGE_VERSION = '2.6.5'; /** * @api * @var string diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 7533f76dbd3..72c7be05f97 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1874,17 +1874,17 @@ }, { "name": "symfony\/console", - "version": "v6.4.44", - "version_normalized": "6.4.44.0", + "version": "v6.4.45", + "version_normalized": "6.4.45.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/console.git", - "reference": "60e3944c4859c487aa6ea2f0f7754917f70f7524" + "reference": "3b8473e0d14157f2d22b0a0d7259ad23483d1e6d" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/60e3944c4859c487aa6ea2f0f7754917f70f7524", - "reference": "60e3944c4859c487aa6ea2f0f7754917f70f7524", + "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/3b8473e0d14157f2d22b0a0d7259ad23483d1e6d", + "reference": "3b8473e0d14157f2d22b0a0d7259ad23483d1e6d", "shasum": "" }, "require": { @@ -1917,7 +1917,7 @@ "symfony\/stopwatch": "^5.4|^6.0|^7.0", "symfony\/var-dumper": "^5.4|^6.0|^7.0" }, - "time": "2026-08-21T07:42:12+00:00", + "time": "2026-08-25T13:08:31+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1951,7 +1951,7 @@ "terminal" ], "support": { - "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.44" + "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.45" }, "funding": [ { @@ -2049,17 +2049,17 @@ }, { "name": "symfony\/filesystem", - "version": "v8.1.5", - "version_normalized": "8.1.5.0", + "version": "v8.1.6", + "version_normalized": "8.1.6.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/filesystem.git", - "reference": "6b2f4a0eeb28b5d74f90862592923a654bc629b3" + "reference": "7599ebb855fede59413ddb7f15198d67bfcae7ba" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/6b2f4a0eeb28b5d74f90862592923a654bc629b3", - "reference": "6b2f4a0eeb28b5d74f90862592923a654bc629b3", + "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/7599ebb855fede59413ddb7f15198d67bfcae7ba", + "reference": "7599ebb855fede59413ddb7f15198d67bfcae7ba", "shasum": "" }, "require": { @@ -2071,7 +2071,7 @@ "require-dev": { "symfony\/process": "^7.4|^8.0" }, - "time": "2026-08-21T12:16:08+00:00", + "time": "2026-08-23T10:06:25+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2099,7 +2099,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v8.1.5" + "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v8.1.6" }, "funding": [ { @@ -2279,17 +2279,17 @@ }, { "name": "symfony\/service-contracts", - "version": "v3.7.1", - "version_normalized": "3.7.1.0", + "version": "v3.7.3", + "version_normalized": "3.7.3.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/service-contracts.git", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/service-contracts\/zipball\/c0a284bab1ed8aa0417e3d69250ab437739563a0", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", + "url": "https:\/\/api.github.com\/repos\/symfony\/service-contracts\/zipball\/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { @@ -2300,7 +2300,7 @@ "conflict": { "ext-psr": "<1.1|>=2" }, - "time": "2026-06-16T09:55:08+00:00", + "time": "2026-07-27T15:39:01+00:00", "type": "library", "extra": { "thanks": { @@ -2345,7 +2345,7 @@ "standards" ], "support": { - "source": "https:\/\/github.com\/symfony\/service-contracts\/tree\/v3.7.1" + "source": "https:\/\/github.com\/symfony\/service-contracts\/tree\/v3.7.3" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 820504b8dff..704442b863f 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '3b4122f384147f6d40adf588487d983e160b50e6', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.44', 'version' => '6.4.44.0', 'reference' => '60e3944c4859c487aa6ea2f0f7754917f70f7524', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '6b2f4a0eeb28b5d74f90862592923a654bc629b3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'c0a284bab1ed8aa0417e3d69250ab437739563a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '3b4122f384147f6d40adf588487d983e160b50e6', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/symfony/console/Debug/CliRequest.php b/vendor/symfony/console/Debug/CliRequest.php index 2228361098b..5b3e6343d5e 100644 --- a/vendor/symfony/console/Debug/CliRequest.php +++ b/vendor/symfony/console/Debug/CliRequest.php @@ -45,18 +45,11 @@ public function getResponse(): Response { return new class($this->command->exitCode) extends Response { - /** - * @readonly - */ - private int $exitCode; public function __construct(int $exitCode) { - $this->exitCode = $exitCode; parent::__construct(); - } - public function getStatusCode(): int - { - return $this->exitCode; + // getStatusCode() is final and setStatusCode() rejects an exit code + $this->statusCode = $exitCode; } }; } diff --git a/vendor/symfony/filesystem/Filesystem.php b/vendor/symfony/filesystem/Filesystem.php index 3cdd9e372ab..5d0332f2e42 100644 --- a/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/symfony/filesystem/Filesystem.php @@ -540,7 +540,14 @@ public function tempnam(string $dir, string $prefix, string $suffix = ''): strin $tmpFile = $dir . '/' . $prefix . bin2hex(random_bytes(4)) . $suffix; // Use fopen instead of file_exists as some streams do not support stat // Use mode 'x+' to atomically check existence and create to avoid a TOCTOU vulnerability - if (!$handle = self::box('fopen', $tmpFile, 'x+')) { + // Force the umask so that the file is created private, as PHP's tempnam() does + $umask = umask(077); + try { + $handle = self::box('fopen', $tmpFile, 'x+'); + } finally { + umask($umask); + } + if (!$handle) { continue; } // Close the file if it was successfully opened diff --git a/vendor/symfony/filesystem/Path.php b/vendor/symfony/filesystem/Path.php index 52f25159fa3..70a615a6240 100644 --- a/vendor/symfony/filesystem/Path.php +++ b/vendor/symfony/filesystem/Path.php @@ -463,7 +463,16 @@ public static function makeRelative(string $path, string $basePath): string if ('' === $root && '' !== $baseRoot) { // If base path is already in its root if ('' === $relativeBasePath) { - $relativePath = ltrim($relativePath, './' . \DIRECTORY_SEPARATOR); + // The base path is the root directory, so any number of leading + // "../" segments resolves to the root itself and "./" prefixes + // carry no information. Remove them as segments: a leading dot + // that is not one (e.g. ".htaccess") must survive. + while (strncmp($relativePath, './', strlen('./')) === 0 || strncmp($relativePath, '../', strlen('../')) === 0) { + $relativePath = (string) substr($relativePath, strncmp($relativePath, '../', strlen('../')) === 0 ? 3 : 2); + } + if ('..' === $relativePath) { + $relativePath = ''; + } } return $relativePath; } diff --git a/vendor/symfony/service-contracts/Attribute/Required.php b/vendor/symfony/service-contracts/Attribute/Required.php index c2a6b91b857..fe0044b354c 100644 --- a/vendor/symfony/service-contracts/Attribute/Required.php +++ b/vendor/symfony/service-contracts/Attribute/Required.php @@ -21,4 +21,15 @@ #[\Attribute(\Attribute::TARGET_METHOD | \Attribute::TARGET_PROPERTY)] final class Required { + /** + * @var int + */ + public int $priority = 0; + /** + * @param int $priority The priority of the method call when the class declares several required methods; the higher the sooner it's called + */ + public function __construct(int $priority = 0) + { + $this->priority = $priority; + } } From 4b66bd4eda27a6362fc59e1d9f33764d878668cd Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 30 Aug 2026 22:31:08 +0000 Subject: [PATCH 091/169] Updated Rector to commit 771df98683689b6bc1956a6b05de7abdf4023055 https://github.com/rectorphp/rector-src/commit/771df98683689b6bc1956a6b05de7abdf4023055 Rebuild --- src/Application/VersionResolver.php | 4 ++-- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f1050bbf874..a4f5c00b432 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 = '2.6.5'; + public const PACKAGE_VERSION = '771df98683689b6bc1956a6b05de7abdf4023055'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 21:51:56'; + public const RELEASE_DATE = '2026-08-30 22:28:41'; /** * @var int */ diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 72c7be05f97..a8332752ca9 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "3b4122f384147f6d40adf588487d983e160b50e6" + "reference": "38c9bd4ee962a9cee58743eb10ab0b2df318fcc0" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/3b4122f384147f6d40adf588487d983e160b50e6", - "reference": "3b4122f384147f6d40adf588487d983e160b50e6", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/38c9bd4ee962a9cee58743eb10ab0b2df318fcc0", + "reference": "38c9bd4ee962a9cee58743eb10ab0b2df318fcc0", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-29T23:14:25+00:00", + "time": "2026-08-30T22:28:22+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 704442b863f..cb4b958c184 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '3b4122f384147f6d40adf588487d983e160b50e6', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '38c9bd4ee962a9cee58743eb10ab0b2df318fcc0', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 aecebfa80eb..ebc584178f0 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 3b4122f'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 38c9bd4'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } From 14351815c22da60858ff75ca8c843a6dfc04a024 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 30 Aug 2026 22:33:26 +0000 Subject: [PATCH 092/169] Updated Rector to commit 771df98683689b6bc1956a6b05de7abdf4023055 --- vendor/composer/installed.json | 8 +-- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../DowngradeHashAlgorithmXxHashRector.php | 56 +++++++++++++++---- 4 files changed, 51 insertions(+), 17 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index a8332752ca9..a1b6328482f 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "38c9bd4ee962a9cee58743eb10ab0b2df318fcc0" + "reference": "70b30bb29994d5851905cc642b19ea68f96834ef" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/38c9bd4ee962a9cee58743eb10ab0b2df318fcc0", - "reference": "38c9bd4ee962a9cee58743eb10ab0b2df318fcc0", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/70b30bb29994d5851905cc642b19ea68f96834ef", + "reference": "70b30bb29994d5851905cc642b19ea68f96834ef", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-30T22:28:22+00:00", + "time": "2026-08-30T22:31:10+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index cb4b958c184..9c226dd1e4c 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '38c9bd4ee962a9cee58743eb10ab0b2df318fcc0', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '70b30bb29994d5851905cc642b19ea68f96834ef', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 ebc584178f0..9be44d3207d 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 38c9bd4'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 70b30bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeHashAlgorithmXxHashRector.php b/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeHashAlgorithmXxHashRector.php index 372e7b85f34..161323e0185 100644 --- a/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeHashAlgorithmXxHashRector.php +++ b/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeHashAlgorithmXxHashRector.php @@ -5,14 +5,17 @@ use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\Expr; +use PhpParser\Node\Expr\BinaryOp; use PhpParser\Node\Expr\ConstFetch; use PhpParser\Node\Expr\FuncCall; +use PhpParser\Node\Expr\Ternary; use PhpParser\Node\Scalar\String_; -use PHPStan\Type\IntegerRangeType; +use PhpParser\Node\Stmt\If_; use Rector\NodeAnalyzer\ArgsAnalyzer; use Rector\NodeTypeResolver\Node\AttributeKey; +use Rector\PhpParser\Node\BetterNodeFinder; use Rector\PhpParser\Node\Value\ValueResolver; -use Rector\PHPStan\ScopeFetcher; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -29,6 +32,10 @@ final class DowngradeHashAlgorithmXxHashRector extends AbstractRector * @readonly */ private ValueResolver $valueResolver; + /** + * @readonly + */ + private BetterNodeFinder $betterNodeFinder; /** * Constants are referenced by name, as the MHASH_* constants are deprecated since PHP 8.5 * @@ -40,10 +47,11 @@ final class DowngradeHashAlgorithmXxHashRector extends AbstractRector */ private const REPLACEMENT_ALGORITHM = 'md5'; private int $argNamedKey; - public function __construct(ArgsAnalyzer $argsAnalyzer, ValueResolver $valueResolver) + public function __construct(ArgsAnalyzer $argsAnalyzer, ValueResolver $valueResolver, BetterNodeFinder $betterNodeFinder) { $this->argsAnalyzer = $argsAnalyzer; $this->valueResolver = $valueResolver; + $this->betterNodeFinder = $betterNodeFinder; } public function getRuleDefinition(): RuleDefinition { @@ -72,13 +80,17 @@ public function run() */ public function getNodeTypes(): array { - return [FuncCall::class]; + return [Ternary::class, If_::class, FuncCall::class]; } /** - * @param FuncCall $node + * @param Ternary|If_|FuncCall $node */ public function refactor(Node $node): ?FuncCall { + if ($node instanceof Ternary || $node instanceof If_) { + $this->markGuardedHashCalls($node); + return null; + } if ($this->shouldSkip($node)) { return null; } @@ -103,15 +115,37 @@ private function shouldSkip(FuncCall $funcCall): bool if ($funcCall->isFirstClassCallable()) { return \true; } - if (!$this->isName($funcCall, 'hash')) { - return \true; + return !$this->isName($funcCall, 'hash'); + } + /** + * Mark hash() calls guarded by a PHP_VERSION_ID check as version conditioned, + * so they are skipped like version_compare() guarded calls. + * @param \PhpParser\Node\Expr\Ternary|\PhpParser\Node\Stmt\If_ $node + */ + private function markGuardedHashCalls($node): void + { + if (!$this->hasPhpVersionIdCond($node->cond)) { + return; + } + /** @var FuncCall[] $funcCalls */ + $funcCalls = $this->betterNodeFinder->findInstancesOf($node, [FuncCall::class]); + foreach ($funcCalls as $funcCall) { + if (!$this->isName($funcCall, 'hash')) { + continue; + } + $funcCall->setAttribute(AttributeKey::PHP_VERSION_CONDITIONED, \true); } - $scope = ScopeFetcher::fetch($funcCall); - $type = $scope->getPhpVersion()->getType(); - if (!$type instanceof IntegerRangeType) { + } + private function hasPhpVersionIdCond(Expr $expr): bool + { + if (!$expr instanceof BinaryOp) { return \false; } - return $type->getMin() === 80100; + return $this->isPhpVersionIdConstFetch($expr->left) || $this->isPhpVersionIdConstFetch($expr->right); + } + private function isPhpVersionIdConstFetch(Expr $expr): bool + { + return $expr instanceof ConstFetch && $this->isName($expr, 'PHP_VERSION_ID'); } /** * @param Arg[] $args From 71a7860fa3d7f4c13d088675e294b1a34efc9850 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 31 Aug 2026 10:41:09 +0000 Subject: [PATCH 093/169] Updated Rector to commit 054379c853b1f7f7578b285ffe14f142d9966fbc https://github.com/rectorphp/rector-src/commit/054379c853b1f7f7578b285ffe14f142d9966fbc Add fixtures for arrow functions returning a ?? expression (#8421) --- src/Application/VersionResolver.php | 4 +-- vendor/composer/installed.json | 14 +++++----- vendor/composer/installed.php | 2 +- vendor/phpstan/phpdoc-parser/README.md | 26 +++++++++++++++++++ ...ureUnlessParameterIsPassedTagValueNode.php | 13 ++++++++++ .../src/Ast/Type/ConditionalTypeNode.php | 12 ++++++++- .../src/Ast/Type/NullableTypeNode.php | 5 ++++ .../phpstan/phpdoc-parser/src/Lexer/Lexer.php | 2 +- .../phpdoc-parser/src/Parser/TypeParser.php | 5 ++++ .../phpdoc-parser/src/Printer/Printer.php | 21 ++++++++++++--- 10 files changed, 89 insertions(+), 15 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index a4f5c00b432..a4a48ce4171 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 = '771df98683689b6bc1956a6b05de7abdf4023055'; + public const PACKAGE_VERSION = '054379c853b1f7f7578b285ffe14f142d9966fbc'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-30 22:28:41'; + public const RELEASE_DATE = '2026-08-31 12:38:45'; /** * @var int */ diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index a1b6328482f..939717530b2 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -792,17 +792,17 @@ }, { "name": "phpstan\/phpdoc-parser", - "version": "2.3.3", - "version_normalized": "2.3.3.0", + "version": "2.3.4", + "version_normalized": "2.3.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpdoc-parser.git", - "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" + "reference": "98dbc9412932af5825e6d5aa5d6bc4de7d82538a" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", - "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/98dbc9412932af5825e6d5aa5d6bc4de7d82538a", + "reference": "98dbc9412932af5825e6d5aa5d6bc4de7d82538a", "shasum": "" }, "require": { @@ -819,7 +819,7 @@ "phpunit\/phpunit": "^9.6", "symfony\/process": "^5.2" }, - "time": "2026-07-08T07:01:06+00:00", + "time": "2026-08-30T16:25:38+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -836,7 +836,7 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https:\/\/github.com\/phpstan\/phpdoc-parser\/issues", - "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/2.3.3" + "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/2.3.4" }, "install-path": "..\/phpstan\/phpdoc-parser" }, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 9c226dd1e4c..192e9902c3e 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202608; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.3', 'version' => '2.3.3.0', 'reference' => 'fb19eedd2bb67ff8cf7a5502ad329e701d6398a3', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.10.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '70b30bb29994d5851905cc642b19ea68f96834ef', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.4', 'version' => '2.3.4.0', 'reference' => '98dbc9412932af5825e6d5aa5d6bc4de7d82538a', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.11.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '70b30bb29994d5851905cc642b19ea68f96834ef', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/phpstan/phpdoc-parser/README.md b/vendor/phpstan/phpdoc-parser/README.md index 08e244b69b6..ac3703495b2 100644 --- a/vendor/phpstan/phpdoc-parser/README.md +++ b/vendor/phpstan/phpdoc-parser/README.md @@ -166,6 +166,22 @@ $newPhpDoc = $printer->printFormatPreserving($newPhpDocNode, $phpDocNode, $token echo $newPhpDoc; // '/** @param Ipsum $a */' ``` +## The grammars + +The language this library reads is written down as a grammar in +[`doc/grammars`](doc/grammars), in the format the [phplrt](https://phplrt.org) +compiler reads. A grammar says what a PHPDoc may be written as, so it can be +walked the other way round and asked for PHPDocs instead of being asked about +one: that is where `FuzzyTest` gets its corpus, and it covers a great deal more +of the language than a hand-written one does. `GrammarSyncTest` walks them the +other way, asking each grammar about the inputs of every other test in this +project, so that what the grammars describe and what the parser reads cannot +drift apart. + +Nothing in `src/` reads those files, and the library needs neither the toolchain +writing the corpus nor the PHP 8.4 it asks for. See +[`doc/grammars/README.md`](doc/grammars/README.md). + ## Code of Conduct This project adheres to a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project and its community, you are expected to uphold this code. @@ -181,3 +197,13 @@ Afterwards you can either run the whole build including linting and coding stand or run only tests using make tests + +The grammars have a toolchain of their own, because the compiler reading them +asks for PHP 8.4. Without it the fuzzy tests skip themselves: + + make grammars-install # install it + +`FuzzyTest` then writes its own corpus out of `doc/grammars/*.pp3` every time it +runs, and leaves it in `temp/fuzzy` to be looked at afterwards. `GrammarSyncTest` +asks the same grammars about the inputs of every other test, so that a feature +added to the parser is one they have to describe as well. diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessParameterIsPassedTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessParameterIsPassedTagValueNode.php index 3ae7f445063..fd4b49031ce 100644 --- a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessParameterIsPassedTagValueNode.php +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessParameterIsPassedTagValueNode.php @@ -20,4 +20,17 @@ public function __toString(): string { return trim("{$this->parameterName} {$this->description}"); } + /** + * @param array $properties + */ + public static function __set_state(array $properties): self + { + $instance = new self($properties['parameterName'], $properties['description']); + if (isset($properties['attributes'])) { + foreach ($properties['attributes'] as $key => $value) { + $instance->setAttribute($key, $value); + } + } + return $instance; + } } diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php index 2d41b561592..416e6bbf8e2 100644 --- a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php @@ -23,7 +23,17 @@ public function __construct(\PHPStan\PhpDocParser\Ast\Type\TypeNode $subjectType } public function __toString(): string { - return sprintf('(%s %s %s ? %s : %s)', $this->subjectType, $this->negated ? 'is not' : 'is', $this->targetType, $this->if, $this->else); + return sprintf( + '(%s %s %s ? %s : %s)', + // "?Foo is Bar ? ... : ..." reads as a nullable type followed by + // something else, so the subject keeps the parentheses it was read + // with + $this->subjectType instanceof \PHPStan\PhpDocParser\Ast\Type\NullableTypeNode ? '(' . $this->subjectType . ')' : $this->subjectType, + $this->negated ? 'is not' : 'is', + $this->targetType, + $this->if, + $this->else + ); } /** * @param array $properties diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php index a3cf723f645..18952a90da9 100644 --- a/vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php @@ -14,6 +14,11 @@ public function __construct(\PHPStan\PhpDocParser\Ast\Type\TypeNode $type) } public function __toString(): string { + if ($this->type instanceof self) { + // "??Foo" is no type at all, so the one written inside keeps the + // parentheses it was read with + return '?(' . $this->type . ')'; + } return '?' . $this->type; } /** diff --git a/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php b/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php index 04161c6c7ce..da633bf6cc5 100644 --- a/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php +++ b/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php @@ -91,7 +91,7 @@ private function generateRegexp(): string self::TOKEN_THIS_VARIABLE => '\$this(?![0-9a-z_\x80-\xFF])', self::TOKEN_VARIABLE => '\$[a-z_\x80-\xFF][0-9a-z_\x80-\xFF]*+', // '&' followed by TOKEN_VARIADIC, TOKEN_VARIABLE, TOKEN_EQUAL, TOKEN_EQUAL or TOKEN_CLOSE_PARENTHESES - self::TOKEN_REFERENCE => '&(?=\s*+(?:[.,=)]|(?:\$(?!this(?![0-9a-z_\x80-\xFF])))))', + self::TOKEN_REFERENCE => '&(?=\s*+(?:[,=)]|\.\.\.|(?:\$(?!this(?![0-9a-z_\x80-\xFF])))))', self::TOKEN_UNION => '\|', self::TOKEN_INTERSECTION => '&', self::TOKEN_NULLABLE => '\?', diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php b/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php index 39a1d08a24b..8b813ec4d4e 100644 --- a/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php +++ b/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php @@ -338,6 +338,11 @@ public function parseGeneric(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens, $type = new Ast\Type\GenericTypeNode($baseType, $genericTypes, $variances); if ($startLine !== null && $startIndex !== null) { $type = $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); + } else { + // The comments read between the arguments have to be given away + // even where the node is not placed, or they would still be waiting + // for a node once the whole PHPDoc has been read + $tokens->flushComments(); } $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); return $type; diff --git a/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php b/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php index ae69bb23db0..816e334e98a 100644 --- a/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php +++ b/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php @@ -108,7 +108,7 @@ final class Printer */ private array $emptyListInsertionMap = [CallableTypeNode::class . '->parameters' => ['(', '', ''], ArrayShapeNode::class . '->items' => ['{', '', ''], ObjectShapeNode::class . '->items' => ['{', '', ''], DoctrineArray::class . '->items' => ['{', '', ''], DoctrineAnnotation::class . '->arguments' => ['(', '', '']]; /** @var array>> */ - private array $parenthesesMap = [CallableTypeNode::class . '->returnType' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class], ArrayTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, ConstTypeNode::class, NullableTypeNode::class], OffsetAccessTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, NullableTypeNode::class]]; + private array $parenthesesMap = [CallableTypeNode::class . '->returnType' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class], ArrayTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, ConstTypeNode::class, NullableTypeNode::class], OffsetAccessTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, NullableTypeNode::class], NullableTypeNode::class . '->type' => [UnionTypeNode::class, IntersectionTypeNode::class, NullableTypeNode::class], ConditionalTypeNode::class . '->subjectType' => [UnionTypeNode::class, IntersectionTypeNode::class, NullableTypeNode::class]]; /** @var array>> */ private array $parenthesesListMap = [IntersectionTypeNode::class . '->types' => [IntersectionTypeNode::class, UnionTypeNode::class, NullableTypeNode::class], UnionTypeNode::class . '->types' => [IntersectionTypeNode::class, UnionTypeNode::class, NullableTypeNode::class]]; public function printFormatPreserving(PhpDocNode $node, PhpDocNode $originalNode, TokenIterator $originalTokens): string @@ -338,7 +338,7 @@ private function printType(TypeNode $node): string return sprintf('(%s %s %s ? %s : %s)', $node->parameterName, $node->negated ? 'is not' : 'is', $this->printType($node->targetType), $this->printType($node->if), $this->printType($node->else)); } if ($node instanceof ConditionalTypeNode) { - return sprintf('(%s %s %s ? %s : %s)', $this->printType($node->subjectType), $node->negated ? 'is not' : 'is', $this->printType($node->targetType), $this->printType($node->if), $this->printType($node->else)); + return sprintf('(%s %s %s ? %s : %s)', $this->printConditionalSubjectType($node->subjectType), $node->negated ? 'is not' : 'is', $this->printType($node->targetType), $this->printType($node->if), $this->printType($node->else)); } if ($node instanceof ConstTypeNode) { return $this->printConstExpr($node->constExpr); @@ -375,7 +375,7 @@ private function printType(TypeNode $node): string return (string) $node; } if ($node instanceof NullableTypeNode) { - if ($node->type instanceof IntersectionTypeNode || $node->type instanceof UnionTypeNode) { + if ($node->type instanceof IntersectionTypeNode || $node->type instanceof UnionTypeNode || $node->type instanceof NullableTypeNode) { return '?(' . $this->printType($node->type) . ')'; } return '?' . $this->printType($node->type); @@ -396,6 +396,21 @@ private function wrapInParentheses(TypeNode $node): string { return '(' . $this->printType($node) . ')'; } + /** + * What a conditional type asks about, written so that it is read back as + * the very same type. + * + * "?Foo is Bar ? ... : ..." and "Foo|Bar is Baz ? ... : ..." both read as a + * type followed by something the type says nothing about, so a subject of + * either kind keeps its parentheses. + */ + private function printConditionalSubjectType(TypeNode $type): string + { + if ($type instanceof UnionTypeNode || $type instanceof IntersectionTypeNode || $type instanceof NullableTypeNode) { + return $this->wrapInParentheses($type); + } + return $this->printType($type); + } private function printOffsetAccessType(TypeNode $type): string { if ($type instanceof CallableTypeNode || $type instanceof UnionTypeNode || $type instanceof IntersectionTypeNode || $type instanceof NullableTypeNode) { From d4116ea72af9a35e5b044e1de7652f6a8066c673 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 31 Aug 2026 13:47:25 +0000 Subject: [PATCH 094/169] Updated Rector to commit 42f8514526f01735e130be5fdbaddf87d2ad3302 https://github.com/rectorphp/rector-src/commit/42f8514526f01735e130be5fdbaddf87d2ad3302 [TypeDeclaration] Skip noisy array-shape union return docblock in ReturnTypeFromStrictNewArrayRector (#8422) --- .../StrictReturnNewArrayResolver.php | 32 +++++++++++++++++++ src/Application/VersionResolver.php | 4 +-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php b/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php index b4cde93d7c1..30aefc7c18c 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php +++ b/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php @@ -19,6 +19,8 @@ use PHPStan\Type\NeverType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; +use PHPStan\Type\TypeTraverser; +use PHPStan\Type\UnionType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\NodeNameResolver\NodeNameResolver; @@ -210,6 +212,10 @@ private function matchArrayAssignedVariable(array $stmts): array } private function shouldAddReturnArrayDocType(Type $arrayType): bool { + // a union of multiple distinct array shapes produces a noisy doc type, skip it + if ($this->hasNoisyArrayShapeUnion($arrayType)) { + return \false; + } if ($arrayType instanceof ConstantArrayType) { if ($arrayType->getIterableValueType() instanceof NeverType) { return \false; @@ -221,4 +227,30 @@ private function shouldAddReturnArrayDocType(Type $arrayType): bool } return \true; } + private function hasNoisyArrayShapeUnion(Type $type): bool + { + $isNoisy = \false; + TypeTraverser::map($type, function (Type $currentType, callable $traverse) use (&$isNoisy): Type { + if ($currentType instanceof UnionType && $this->hasMultipleArrayVariants($currentType)) { + $isNoisy = \true; + } + return $traverse($currentType); + }); + return $isNoisy; + } + private function hasMultipleArrayVariants(UnionType $unionType): bool + { + $arrayVariantCount = 0; + foreach ($unionType->getTypes() as $type) { + if (!$type->isArray()->yes()) { + continue; + } + // an empty array [] collapses into the sibling variant, ignore it + if ($type->getIterableValueType() instanceof NeverType) { + continue; + } + ++$arrayVariantCount; + } + return $arrayVariantCount >= 2; + } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index a4a48ce4171..19e0894f07e 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 = '054379c853b1f7f7578b285ffe14f142d9966fbc'; + public const PACKAGE_VERSION = '42f8514526f01735e130be5fdbaddf87d2ad3302'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-31 12:38:45'; + public const RELEASE_DATE = '2026-08-31 15:45:02'; /** * @var int */ From 0819b1962d683c3819979097c12366e58fa742d1 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 31 Aug 2026 14:26:53 +0000 Subject: [PATCH 095/169] Updated Rector to commit eee8f3572a6b1564303e28c149b8b5f9b26f35b5 https://github.com/rectorphp/rector-src/commit/eee8f3572a6b1564303e28c149b8b5f9b26f35b5 [TypeDeclaration] Add doc return type only for list and generic arrays in ReturnTypeFromStrictNewArrayRector (#8423) --- .../StrictReturnNewArrayResolver.php | 46 ++++--------------- src/Application/VersionResolver.php | 4 +- 2 files changed, 11 insertions(+), 39 deletions(-) diff --git a/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php b/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php index 30aefc7c18c..94085c02921 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php +++ b/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php @@ -16,11 +16,9 @@ use PHPStan\Type\Constant\ConstantArrayType; use PHPStan\Type\IntersectionType; use PHPStan\Type\MixedType; -use PHPStan\Type\NeverType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; use PHPStan\Type\TypeTraverser; -use PHPStan\Type\UnionType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\NodeNameResolver\NodeNameResolver; @@ -212,45 +210,19 @@ private function matchArrayAssignedVariable(array $stmts): array } private function shouldAddReturnArrayDocType(Type $arrayType): bool { - // a union of multiple distinct array shapes produces a noisy doc type, skip it - if ($this->hasNoisyArrayShapeUnion($arrayType)) { - return \false; - } - if ($arrayType instanceof ConstantArrayType) { - if ($arrayType->getIterableValueType() instanceof NeverType) { - return \false; - } - // handle only simple arrays - if (!$arrayType->getIterableKeyType()->isInteger()->yes()) { - return \false; - } - } - return \true; + // only plain list<> and generic array<> doc types are worth adding; + // array shapes produce noisy, fragile doc types, skip them + return !$this->hasArrayShape($arrayType); } - private function hasNoisyArrayShapeUnion(Type $type): bool + private function hasArrayShape(Type $type): bool { - $isNoisy = \false; - TypeTraverser::map($type, function (Type $currentType, callable $traverse) use (&$isNoisy): Type { - if ($currentType instanceof UnionType && $this->hasMultipleArrayVariants($currentType)) { - $isNoisy = \true; + $hasArrayShape = \false; + TypeTraverser::map($type, function (Type $currentType, callable $traverse) use (&$hasArrayShape): Type { + if ($currentType instanceof ConstantArrayType && $currentType->getKeyTypes() !== [] && !$currentType->isList()->yes()) { + $hasArrayShape = \true; } return $traverse($currentType); }); - return $isNoisy; - } - private function hasMultipleArrayVariants(UnionType $unionType): bool - { - $arrayVariantCount = 0; - foreach ($unionType->getTypes() as $type) { - if (!$type->isArray()->yes()) { - continue; - } - // an empty array [] collapses into the sibling variant, ignore it - if ($type->getIterableValueType() instanceof NeverType) { - continue; - } - ++$arrayVariantCount; - } - return $arrayVariantCount >= 2; + return $hasArrayShape; } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 19e0894f07e..8d1699bf3ab 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 = '42f8514526f01735e130be5fdbaddf87d2ad3302'; + public const PACKAGE_VERSION = 'eee8f3572a6b1564303e28c149b8b5f9b26f35b5'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-31 15:45:02'; + public const RELEASE_DATE = '2026-08-31 16:24:27'; /** * @var int */ From 26ea94076a66b61d4dad4a7f5608ca0d0a0ee68a Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 1 Sep 2026 10:58:11 +0000 Subject: [PATCH 096/169] Updated Rector to commit eee8f3572a6b1564303e28c149b8b5f9b26f35b5 --- bin/rector | 2 +- bin/rector.php | 12 +- config/config.php | 2 +- .../set/behat-annotations-to-attributes.php | 2 +- config/set/code-quality.php | 2 +- config/set/coding-style.php | 2 +- config/set/datetime-to-carbon.php | 2 +- config/set/dead-code.php | 2 +- config/set/early-return.php | 2 +- config/set/gmagick-to-imagick.php | 2 +- config/set/if.php | 2 +- config/set/instanceof.php | 2 +- config/set/level/up-to-php53.php | 2 +- config/set/level/up-to-php54.php | 2 +- config/set/level/up-to-php55.php | 2 +- config/set/level/up-to-php56.php | 2 +- config/set/level/up-to-php70.php | 2 +- config/set/level/up-to-php71.php | 2 +- config/set/level/up-to-php72.php | 2 +- config/set/level/up-to-php73.php | 2 +- config/set/level/up-to-php74.php | 2 +- config/set/level/up-to-php80.php | 2 +- config/set/level/up-to-php81.php | 2 +- config/set/level/up-to-php82.php | 2 +- config/set/level/up-to-php83.php | 2 +- config/set/level/up-to-php84.php | 2 +- config/set/level/up-to-php85.php | 2 +- config/set/level/up-to-php86.php | 2 +- config/set/named-args.php | 2 +- config/set/naming.php | 2 +- config/set/php-polyfills.php | 2 +- config/set/php-version-based.php | 2 +- config/set/php52.php | 2 +- config/set/php53.php | 2 +- config/set/php54.php | 2 +- config/set/php55.php | 2 +- config/set/php56.php | 2 +- config/set/php70.php | 2 +- config/set/php71.php | 2 +- config/set/php72.php | 2 +- config/set/php73.php | 2 +- config/set/php74.php | 2 +- config/set/php80.php | 2 +- config/set/php81.php | 2 +- config/set/php82.php | 2 +- config/set/php83.php | 2 +- config/set/php84.php | 2 +- config/set/php85.php | 2 +- config/set/php86.php | 2 +- config/set/privatization.php | 2 +- config/set/rector-preset.php | 2 +- config/set/type-declaration-docblocks.php | 2 +- config/set/type-declaration.php | 2 +- .../ClassMethod/ArgumentAdderRector.php | 2 +- .../ReplaceArgumentDefaultValueRector.php | 2 +- ...tionArgumentDefaultValueReplacerRector.php | 2 +- .../RemoveMethodCallParamRector.php | 2 +- .../Carbon/NodeFactory/CarbonCallFactory.php | 2 +- .../FuncCall/SimplifyStrposLowerRector.php | 2 +- .../AbsolutizeRequireAndIncludePathRector.php | 2 +- ...yQualifiedNameClassNameImportSkipVoter.php | 2 +- rules/CodingStyle/Naming/ClassNaming.php | 2 +- .../NodeAnalyzer/UseImportNameMatcher.php | 2 +- .../CatchExceptionNameMatchingTypeRector.php | 2 +- ...RemoveUselessAliasInUseStatementRector.php | 2 +- ...assKeywordForClassNameResolutionRector.php | 2 +- ...actorDuplicatedNodeInstanceCheckRector.php | 2 +- .../SideEffect/SideEffectNodeDetector.php | 2 +- .../InflectorSingularResolver.php | 4 +- rules/Naming/Naming/PropertyNaming.php | 2 +- ...iableToMatchMethodCallReturnTypeRector.php | 2 +- rules/Naming/RectorNamingInflector.php | 4 +- .../PropertyRenameFactory.php | 2 +- .../StringClassNameToClassConstantRector.php | 2 +- rules/Php55/RegexMatcher.php | 2 +- rules/Php70/EregToPcreTransformer.php | 2 +- .../Rector/FuncCall/EregToPregMatchRector.php | 2 +- .../NodeFactory/AnonymousFunctionFactory.php | 2 +- .../Rector/FuncCall/RegexDashEscapeRector.php | 2 +- .../Class_/AnnotationToAttributeRector.php | 2 +- .../Rector/Class_/AttributeValueResolver.php | 2 +- .../NestedAnnotationToAttributeRector.php | 2 +- .../ValueObject/AnnotationToAttribute.php | 2 +- rules/Php81/NodeFactory/EnumFactory.php | 2 +- .../NodeManipulator/VisibilityManipulator.php | 2 +- .../ClassMethod/ArgumentRemoverRector.php | 2 +- .../Rector/Class_/RemoveInterfacesRector.php | 2 +- .../Rector/Class_/RemoveTraitUseRector.php | 2 +- .../FuncCall/RemoveFuncCallArgRector.php | 2 +- .../Rector/FuncCall/RemoveFuncCallRector.php | 2 +- ...eprecatedMethodCallReplacementResolver.php | 2 +- .../Renaming/Rector/Cast/RenameCastRector.php | 2 +- .../RenameClassConstFetchRector.php | 2 +- .../ClassMethod/RenameAnnotationRector.php | 2 +- .../Rector/Class_/RenameAttributeRector.php | 2 +- .../ConstFetch/RenameConstantRector.php | 2 +- .../Rector/FuncCall/RenameFunctionRector.php | 2 +- .../Rector/MethodCall/RenameMethodRector.php | 2 +- .../Rector/Name/RenameClassRector.php | 2 +- .../PropertyFetch/RenamePropertyRector.php | 2 +- .../StaticCall/RenameStaticMethodRector.php | 2 +- .../Rector/String_/RenameStringRector.php | 2 +- rules/Renaming/ValueObject/RenameCast.php | 2 +- .../ArrayDimFetchToMethodCallRector.php | 2 +- .../AttributeKeyToClassConstFetchRector.php | 2 +- .../Rector/ClassMethod/WrapReturnRector.php | 2 +- .../Rector/Class_/MergeInterfacesRector.php | 2 +- .../ConstFetchToClassConstFetchRector.php | 2 +- .../FuncCall/FuncCallToConstFetchRector.php | 2 +- .../Rector/FuncCall/FuncCallToNewRector.php | 2 +- .../FuncCall/FuncCallToStaticCallRector.php | 2 +- .../MethodCall/MethodCallToFuncCallRector.php | 2 +- .../MethodCallToStaticCallRector.php | 2 +- .../Rector/New_/NewToStaticCallRector.php | 2 +- .../StaticCall/StaticCallToFuncCallRector.php | 2 +- .../StaticCallToMethodCallRector.php | 2 +- .../StaticCall/StaticCallToNewRector.php | 2 +- .../String_/StringToClassConstantRector.php | 2 +- .../VariableInSprintfMaskMatcher.php | 2 +- .../PHPStan/ObjectTypeSpecifier.php | 2 +- .../AddParamTypeDeclarationRector.php | 2 +- .../AddReturnTypeDeclarationRector.php | 2 +- .../AddPropertyTypeDeclarationRector.php | 2 +- .../ParameterTypeFromDataProviderResolver.php | 2 +- .../ValueObject/DataProviderNodes.php | 4 +- .../ChangeConstantVisibilityRector.php | 2 +- .../ChangeMethodVisibilityRector.php | 2 +- src/Application/ApplicationFileProcessor.php | 6 +- src/Application/FileProcessor.php | 4 +- src/Application/NodeAttributeReIndexer.php | 2 +- src/Autoloading/AdditionalAutoloader.php | 4 +- src/Autoloading/BootstrapFilesIncluder.php | 2 +- .../DoctrineAnnotationDecorator.php | 4 +- .../PhpDocInfo/PhpDocInfo.php | 4 +- .../PhpDocManipulator/PhpDocClassRenamer.php | 2 +- src/BetterPhpDocParser/PhpDocNodeMapper.php | 2 +- .../PhpDocParser/BetterPhpDocParser.php | 2 +- .../Printer/DocBlockInliner.php | 2 +- .../Printer/PhpDocInfoPrinter.php | 2 +- .../DoctrineAnnotation/CurlyListNode.php | 2 +- .../AutoloadFileParameterResolver.php | 2 +- src/Bootstrap/RectorConfigsResolver.php | 4 +- src/Bridge/SetRectorsResolver.php | 2 +- src/Caching/CacheFactory.php | 2 +- .../ValueObject/Storage/FileCacheStorage.php | 8 +- .../Output/ConsoleOutputFormatter.php | 6 +- .../Output/Factory/JsonOutputFactory.php | 2 +- .../Output/GitlabOutputFormatter.php | 2 +- .../ValueObject/RectorWithLineChange.php | 2 +- .../ComposerJsonPackageVersionResolver.php | 2 +- src/Composer/InstalledPackageResolver.php | 10 +- src/Config/RectorConfig.php | 8 +- src/Configuration/ConfigInitializer.php | 4 +- src/Configuration/ConfigurationFactory.php | 4 +- .../Levels/LevelRulesResolver.php | 2 +- .../Parameter/SimpleParameterProvider.php | 2 +- src/Configuration/RectorConfigBuilder.php | 8 +- src/Console/Command/ComposerBasedCommand.php | 16 +- src/Console/Command/CustomRuleCommand.php | 8 +- src/Console/Command/ListRulesCommand.php | 8 +- src/Console/Command/ProcessCommand.php | 10 +- src/Console/Command/SetupCICommand.php | 8 +- src/Console/Command/WorkerCommand.php | 18 +- src/Console/ConsoleApplication.php | 18 +- src/Console/ExitCode.php | 2 +- .../Formatter/ColorConsoleDiffFormatter.php | 4 +- src/Console/Notifier.php | 6 +- src/Console/ProcessConfigureDecorator.php | 6 +- src/Console/Style/RectorStyle.php | 12 +- src/Console/Style/SymfonyStyleFactory.php | 8 +- .../LazyContainerFactory.php | 10 +- src/Differ/DefaultDiffer.php | 4 +- src/FileSystem/FilePathHelper.php | 6 +- src/FileSystem/FilesFinder.php | 4 +- src/FileSystem/InitFilePathsResolver.php | 4 +- src/FileSystem/JsonFileSystem.php | 4 +- src/NodeManipulator/PropertyManipulator.php | 2 +- .../PHPStanServicesFactory.php | 8 +- .../Scope/PHPStanNodeScopeResolver.php | 2 +- .../NameImportingPhpDocNodeVisitor.php | 2 +- .../PHPStanStaticTypeMapper.php | 2 +- .../TypeMapper/ConditionalTypeMapper.php | 2 +- .../TypeMapper/ObjectTypeMapper.php | 2 +- .../TypeMapper/UnionTypeMapper.php | 4 +- .../Application/ParallelFileProcessor.php | 16 +- .../Command/WorkerCommandLineFactory.php | 4 +- src/Parallel/CpuCoreCountProvider.php | 4 +- .../CommandFromReflectionFactory.php | 2 +- src/Parallel/ScheduleFactory.php | 2 +- src/Parallel/ValueObject/ParallelProcess.php | 10 +- src/Parallel/ValueObject/ProcessPool.php | 2 +- .../ComposerJsonPhpVersionResolver.php | 2 +- src/Php/PolyfillPackagesProvider.php | 4 +- .../AnnotationToAttributeMapper.php | 2 +- .../ArrayAnnotationToAttributeMapper.php | 2 +- ...rayItemNodeAnnotationToAttributeMapper.php | 2 +- ...sConstFetchAnnotationToAttributeMapper.php | 2 +- ...rlyListNodeAnnotationToAttributeMapper.php | 2 +- .../AttributeArrayNameInliner.php | 2 +- ...nnotationToAttributeIntegerValueCaster.php | 2 +- .../PhpNestedAttributeGroupFactory.php | 4 +- src/PhpParser/Node/BetterNodeFinder.php | 2 +- .../NodeTraverser/RectorNodeTraverser.php | 2 +- .../LocalVariableScopeNodeVisitor.php | 2 +- src/PhpParser/Parser/InlineCodeParser.php | 4 +- src/PhpParser/Parser/SimplePhpParser.php | 2 +- .../Printer/BetterStandardPrinter.php | 2 +- src/PostRector/Rector/AbstractPostRector.php | 2 +- .../Rector/UnusedImportRemovingPostRector.php | 2 +- src/Reporting/DeprecatedRulesReporter.php | 2 +- src/Reporting/MissConfigurationReporter.php | 2 +- src/Set/ValueObject/ComposerTriggeredSet.php | 6 +- src/Set/ValueObject/Set.php | 2 +- .../Mapper/ScalarStringToTypeMapper.php | 2 +- .../PhpDoc/PhpDocTypeMapper.php | 2 +- .../IdentifierPhpDocTypeMapper.php | 2 +- .../Type/FullyQualifiedObjectType.php | 2 +- src/Testing/Fixture/FixtureFileFinder.php | 2 +- src/Testing/Fixture/FixtureFileUpdater.php | 2 +- src/Testing/Fixture/FixtureSplitter.php | 2 +- src/Testing/Fixture/FixtureTempFileDumper.php | 2 +- .../PHPUnit/AbstractRectorTestCase.php | 4 +- src/Testing/TestingParser/TestingParser.php | 2 +- src/Util/MemoryLimiter.php | 2 +- src/Util/NewLineSplitter.php | 2 +- src/Util/NodePrinter.php | 4 +- src/Util/StringUtils.php | 2 +- src/Validation/RectorAssert.php | 2 +- src/ValueObject/Configuration.php | 2 +- src/ValueObject/Error/SystemError.php | 2 +- src/ValueObject/FileProcessResult.php | 2 +- src/ValueObject/ProcessResult.php | 2 +- src/ValueObject/Reporting/FileDiff.php | 4 +- .../ComposerPackageConstraintFilter.php | 2 +- src/functions/node_helper.php | 4 +- vendor/bin/class-leak | 6 +- vendor/bin/class-leak.php | 2 +- vendor/bin/php-parse | 6 +- vendor/clue/ndjson-react/composer.json | 4 +- vendor/clue/ndjson-react/src/Decoder.php | 10 +- vendor/clue/ndjson-react/src/Encoder.php | 6 +- vendor/composer/InstalledVersions.php | 8 +- vendor/composer/autoload_classmap.php | 1134 +++++++-------- vendor/composer/autoload_psr4.php | 54 +- vendor/composer/autoload_static.php | 1242 ++++++++--------- vendor/composer/installed.json | 76 +- vendor/composer/installed.php | 4 +- vendor/composer/pcre/composer.json | 4 +- vendor/composer/pcre/src/MatchAllResult.php | 2 +- .../pcre/src/MatchAllStrictGroupsResult.php | 2 +- .../pcre/src/MatchAllWithOffsetsResult.php | 2 +- vendor/composer/pcre/src/MatchResult.php | 2 +- .../pcre/src/MatchStrictGroupsResult.php | 2 +- .../pcre/src/MatchWithOffsetsResult.php | 2 +- .../src/PHPStan/InvalidRegexPatternRule.php | 12 +- .../pcre/src/PHPStan/PregMatchFlags.php | 2 +- .../PregMatchParameterOutTypeExtension.php | 4 +- .../PregMatchTypeSpecifyingExtension.php | 4 +- ...regReplaceCallbackClosureTypeExtension.php | 6 +- .../PHPStan/UnsafeStrictGroupsCallRule.php | 6 +- vendor/composer/pcre/src/PcreException.php | 2 +- vendor/composer/pcre/src/Preg.php | 2 +- vendor/composer/pcre/src/Regex.php | 2 +- vendor/composer/pcre/src/ReplaceResult.php | 2 +- .../pcre/src/UnexpectedNullMatchException.php | 2 +- vendor/composer/semver/composer.json | 4 +- vendor/composer/semver/src/Comparator.php | 4 +- .../composer/semver/src/CompilingMatcher.php | 6 +- .../composer/semver/src/Constraint/Bound.php | 2 +- .../semver/src/Constraint/Constraint.php | 2 +- .../src/Constraint/ConstraintInterface.php | 2 +- .../src/Constraint/MatchAllConstraint.php | 2 +- .../src/Constraint/MatchNoneConstraint.php | 2 +- .../semver/src/Constraint/MultiConstraint.php | 2 +- vendor/composer/semver/src/Interval.php | 4 +- vendor/composer/semver/src/Intervals.php | 12 +- vendor/composer/semver/src/Semver.php | 4 +- vendor/composer/semver/src/VersionParser.php | 10 +- vendor/composer/xdebug-handler/composer.json | 4 +- .../composer/xdebug-handler/src/PhpConfig.php | 2 +- .../composer/xdebug-handler/src/Process.php | 4 +- vendor/composer/xdebug-handler/src/Status.php | 6 +- .../xdebug-handler/src/XdebugHandler.php | 6 +- vendor/doctrine/inflector/composer.json | 4 +- .../inflector/src/CachedWordInflector.php | 2 +- .../src/GenericLanguageInflectorFactory.php | 4 +- vendor/doctrine/inflector/src/Inflector.php | 2 +- .../inflector/src/InflectorFactory.php | 18 +- vendor/doctrine/inflector/src/Language.php | 2 +- .../src/LanguageInflectorFactory.php | 4 +- .../inflector/src/NoopWordInflector.php | 2 +- .../src/Rules/English/Inflectible.php | 10 +- .../src/Rules/English/InflectorFactory.php | 6 +- .../inflector/src/Rules/English/Rules.php | 10 +- .../src/Rules/English/Uninflected.php | 4 +- .../src/Rules/Esperanto/Inflectible.php | 10 +- .../src/Rules/Esperanto/InflectorFactory.php | 6 +- .../inflector/src/Rules/Esperanto/Rules.php | 10 +- .../src/Rules/Esperanto/Uninflected.php | 4 +- .../src/Rules/French/Inflectible.php | 10 +- .../src/Rules/French/InflectorFactory.php | 6 +- .../inflector/src/Rules/French/Rules.php | 10 +- .../src/Rules/French/Uninflected.php | 4 +- .../src/Rules/Italian/Inflectible.php | 10 +- .../src/Rules/Italian/InflectorFactory.php | 6 +- .../inflector/src/Rules/Italian/Rules.php | 10 +- .../src/Rules/Italian/Uninflected.php | 4 +- .../src/Rules/NorwegianBokmal/Inflectible.php | 10 +- .../NorwegianBokmal/InflectorFactory.php | 6 +- .../src/Rules/NorwegianBokmal/Rules.php | 10 +- .../src/Rules/NorwegianBokmal/Uninflected.php | 4 +- .../doctrine/inflector/src/Rules/Pattern.php | 2 +- .../doctrine/inflector/src/Rules/Patterns.php | 2 +- .../src/Rules/Portuguese/Inflectible.php | 10 +- .../src/Rules/Portuguese/InflectorFactory.php | 6 +- .../inflector/src/Rules/Portuguese/Rules.php | 10 +- .../src/Rules/Portuguese/Uninflected.php | 4 +- .../doctrine/inflector/src/Rules/Ruleset.php | 2 +- .../src/Rules/Spanish/Inflectible.php | 10 +- .../src/Rules/Spanish/InflectorFactory.php | 6 +- .../inflector/src/Rules/Spanish/Rules.php | 10 +- .../src/Rules/Spanish/Uninflected.php | 4 +- .../inflector/src/Rules/Substitution.php | 2 +- .../inflector/src/Rules/Substitutions.php | 4 +- .../inflector/src/Rules/Transformation.php | 4 +- .../inflector/src/Rules/Transformations.php | 4 +- .../src/Rules/Turkish/Inflectible.php | 10 +- .../src/Rules/Turkish/InflectorFactory.php | 6 +- .../inflector/src/Rules/Turkish/Rules.php | 10 +- .../src/Rules/Turkish/Uninflected.php | 4 +- vendor/doctrine/inflector/src/Rules/Word.php | 2 +- .../inflector/src/RulesetInflector.php | 4 +- .../doctrine/inflector/src/WordInflector.php | 2 +- .../entropy/composer-dependency-analyser.php | 6 +- vendor/entropy/entropy/composer.json | 6 +- .../entropy/src/Attributes/RelatedTest.php | 2 +- .../entropy/src/Console/CommandRegistry.php | 14 +- .../src/Console/ConsoleApplication.php | 20 +- .../src/Console/ConsoleTable/ConsoleTable.php | 8 +- .../ConsoleTable/ValueObject/TableRow.php | 2 +- .../ConsoleTable/ValueObject/TableView.php | 4 +- .../src/Console/ConsoleTable/ViewRenderer.php | 12 +- .../src/Console/Contract/CommandInterface.php | 2 +- .../Contract/DefaultCommandInterface.php | 2 +- .../Contract/HiddenCommandInterface.php | 2 +- .../entropy/src/Console/Enum/Color.php | 2 +- .../entropy/src/Console/Enum/ExitCode.php | 2 +- .../ConsoleInputMappingException.php | 2 +- .../Exception/InvalidCommandException.php | 2 +- .../entropy/src/Console/Input/InputParser.php | 8 +- .../src/Console/Mapper/CLIRequestMapper.php | 16 +- .../Mapper/CommandRunParametersMapper.php | 20 +- .../src/Console/Output/CommandHelpFactory.php | 16 +- .../src/Console/Output/HelpPrinter.php | 4 +- .../src/Console/Output/OutputColorizer.php | 8 +- .../src/Console/Output/OutputPrinter.php | 8 +- .../src/Console/Output/ProgressBar.php | 6 +- .../entropy/src/Console/Terminal/Terminal.php | 2 +- .../src/Console/ValueObject/Argument.php | 2 +- .../ValueObject/ArgumentsAndOptions.php | 4 +- .../src/Console/ValueObject/CLIRequest.php | 4 +- .../src/Console/ValueObject/Option.php | 2 +- .../entropy/src/Container/Autodiscovery.php | 12 +- .../entropy/src/Container/Container.php | 18 +- .../Exception/CreateServiceException.php | 2 +- .../Exception/RegisterServiceException.php | 2 +- .../Exception/FileSystemException.php | 2 +- .../entropy/src/FileSystem/FileFinder.php | 6 +- .../src/Reflection/ClassNameResolver.php | 6 +- .../ParameterDescriptionResolver.php | 6 +- .../ParameterOptionMarkerResolver.php | 6 +- .../src/Reflection/ParameterTypesResolver.php | 8 +- .../src/Reflection/UseStatementsResolver.php | 2 +- .../entropy/entropy/src/Utils/FileSystem.php | 6 +- .../entropy/src/Utils/FuzzyMatcher.php | 6 +- vendor/entropy/entropy/src/Utils/Json.php | 4 +- vendor/entropy/entropy/src/Utils/Regex.php | 6 +- vendor/entropy/entropy/src/Utils/Strings.php | 6 +- vendor/evenement/evenement/composer.json | 4 +- .../evenement/evenement/src/EventEmitter.php | 2 +- .../evenement/src/EventEmitterInterface.php | 2 +- .../evenement/src/EventEmitterTrait.php | 2 +- .../fidry/cpu-core-counter/bin/diagnose.php | 6 +- vendor/fidry/cpu-core-counter/bin/execute.php | 6 +- vendor/fidry/cpu-core-counter/bin/trace.php | 6 +- vendor/fidry/cpu-core-counter/composer.json | 4 +- .../cpu-core-counter/src/CpuCoreCounter.php | 8 +- .../fidry/cpu-core-counter/src/Diagnoser.php | 4 +- .../src/Executor/ProcOpenExecutor.php | 2 +- .../src/Executor/ProcessExecutor.php | 2 +- .../src/Finder/CmiCmdletLogicalFinder.php | 2 +- .../src/Finder/CmiCmdletPhysicalFinder.php | 2 +- .../src/Finder/CpuCoreFinder.php | 2 +- .../src/Finder/CpuInfoFinder.php | 2 +- .../src/Finder/DummyCpuCoreFinder.php | 2 +- .../src/Finder/EnvVariableFinder.php | 2 +- .../src/Finder/FinderRegistry.php | 2 +- .../src/Finder/HwLogicalFinder.php | 2 +- .../src/Finder/HwPhysicalFinder.php | 2 +- .../src/Finder/LscpuLogicalFinder.php | 2 +- .../src/Finder/LscpuPhysicalFinder.php | 2 +- .../src/Finder/NProcFinder.php | 4 +- .../src/Finder/NProcessorFinder.php | 2 +- .../src/Finder/NullCpuCoreFinder.php | 2 +- .../src/Finder/OnlyInPowerShellFinder.php | 2 +- .../src/Finder/OnlyOnOSFamilyFinder.php | 2 +- .../src/Finder/ProcOpenBasedFinder.php | 6 +- .../src/Finder/SkipOnOSFamilyFinder.php | 2 +- .../Finder/WindowsRegistryLogicalFinder.php | 2 +- .../src/Finder/WmicLogicalFinder.php | 2 +- .../src/Finder/WmicPhysicalFinder.php | 2 +- .../src/Finder/_NProcessorFinder.php | 2 +- .../src/NumberOfCpuCoreNotFound.php | 2 +- .../src/ParallelisationResult.php | 2 +- vendor/nette/utils/composer.json | 2 +- vendor/nette/utils/src/HtmlStringable.php | 2 +- .../utils/src/Iterators/CachingIterator.php | 4 +- vendor/nette/utils/src/Iterators/Mapper.php | 2 +- vendor/nette/utils/src/SmartObject.php | 4 +- vendor/nette/utils/src/StaticClass.php | 2 +- vendor/nette/utils/src/Translator.php | 2 +- vendor/nette/utils/src/Utils/ArrayHash.php | 4 +- vendor/nette/utils/src/Utils/ArrayList.php | 4 +- vendor/nette/utils/src/Utils/Arrays.php | 6 +- vendor/nette/utils/src/Utils/Callback.php | 4 +- vendor/nette/utils/src/Utils/DateTime.php | 2 +- .../utils/src/Utils/DateTimeImmutable.php | 2 +- vendor/nette/utils/src/Utils/FileInfo.php | 4 +- vendor/nette/utils/src/Utils/FileSystem.php | 4 +- vendor/nette/utils/src/Utils/Finder.php | 4 +- vendor/nette/utils/src/Utils/Floats.php | 4 +- vendor/nette/utils/src/Utils/Helpers.php | 4 +- vendor/nette/utils/src/Utils/Html.php | 4 +- vendor/nette/utils/src/Utils/Image.php | 4 +- vendor/nette/utils/src/Utils/ImageColor.php | 4 +- vendor/nette/utils/src/Utils/ImageType.php | 2 +- vendor/nette/utils/src/Utils/Iterables.php | 4 +- vendor/nette/utils/src/Utils/Json.php | 4 +- .../nette/utils/src/Utils/ObjectHelpers.php | 6 +- vendor/nette/utils/src/Utils/Paginator.php | 4 +- vendor/nette/utils/src/Utils/Process.php | 4 +- vendor/nette/utils/src/Utils/Random.php | 4 +- vendor/nette/utils/src/Utils/Reflection.php | 4 +- .../utils/src/Utils/ReflectionMethod.php | 2 +- vendor/nette/utils/src/Utils/Strings.php | 6 +- vendor/nette/utils/src/Utils/Type.php | 4 +- vendor/nette/utils/src/Utils/Validators.php | 4 +- vendor/nette/utils/src/Utils/exceptions.php | 2 +- vendor/nette/utils/src/compatibility.php | 6 +- vendor/nette/utils/src/exceptions.php | 2 +- vendor/nikic/php-parser/bin/php-parse | 2 +- vendor/ondram/ci-detector/composer.json | 4 +- vendor/ondram/ci-detector/ecs.php | 14 +- .../ondram/ci-detector/src/Ci/AbstractCi.php | 4 +- vendor/ondram/ci-detector/src/Ci/AppVeyor.php | 8 +- .../ci-detector/src/Ci/AwsCodeBuild.php | 8 +- .../ci-detector/src/Ci/AzurePipelines.php | 8 +- vendor/ondram/ci-detector/src/Ci/Bamboo.php | 8 +- .../ci-detector/src/Ci/BitbucketPipelines.php | 8 +- vendor/ondram/ci-detector/src/Ci/Buddy.php | 8 +- .../ondram/ci-detector/src/Ci/CiInterface.php | 6 +- vendor/ondram/ci-detector/src/Ci/Circle.php | 8 +- vendor/ondram/ci-detector/src/Ci/Codeship.php | 8 +- .../ci-detector/src/Ci/Continuousphp.php | 8 +- vendor/ondram/ci-detector/src/Ci/Drone.php | 8 +- .../ci-detector/src/Ci/GitHubActions.php | 8 +- vendor/ondram/ci-detector/src/Ci/GitLab.php | 8 +- vendor/ondram/ci-detector/src/Ci/Jenkins.php | 8 +- .../ondram/ci-detector/src/Ci/SourceHut.php | 8 +- vendor/ondram/ci-detector/src/Ci/TeamCity.php | 8 +- vendor/ondram/ci-detector/src/Ci/Travis.php | 8 +- vendor/ondram/ci-detector/src/Ci/Wercker.php | 8 +- vendor/ondram/ci-detector/src/CiDetector.php | 6 +- .../ci-detector/src/CiDetectorInterface.php | 6 +- vendor/ondram/ci-detector/src/Env.php | 2 +- .../src/Exception/CiNotDetectedException.php | 2 +- .../ondram/ci-detector/src/TrinaryLogic.php | 2 +- .../phpstan/phpdoc-parser/src/Lexer/Lexer.php | 23 +- vendor/psr/container/composer.json | 2 +- .../src/ContainerExceptionInterface.php | 2 +- .../psr/container/src/ContainerInterface.php | 2 +- .../src/NotFoundExceptionInterface.php | 2 +- vendor/psr/log/composer.json | 2 +- vendor/psr/log/src/AbstractLogger.php | 2 +- .../psr/log/src/InvalidArgumentException.php | 2 +- vendor/psr/log/src/LogLevel.php | 2 +- vendor/psr/log/src/LoggerAwareInterface.php | 2 +- vendor/psr/log/src/LoggerAwareTrait.php | 2 +- vendor/psr/log/src/LoggerInterface.php | 2 +- vendor/psr/log/src/LoggerTrait.php | 2 +- vendor/psr/log/src/NullLogger.php | 2 +- vendor/react/cache/composer.json | 4 +- vendor/react/cache/src/ArrayCache.php | 6 +- vendor/react/cache/src/CacheInterface.php | 4 +- vendor/react/child-process/composer.json | 4 +- vendor/react/child-process/src/Process.php | 24 +- vendor/react/dns/composer.json | 4 +- vendor/react/dns/src/BadServerException.php | 2 +- vendor/react/dns/src/Config/Config.php | 2 +- vendor/react/dns/src/Config/HostsFile.php | 2 +- vendor/react/dns/src/Model/Message.php | 4 +- vendor/react/dns/src/Model/Record.php | 2 +- .../react/dns/src/Protocol/BinaryDumper.php | 8 +- vendor/react/dns/src/Protocol/Parser.php | 8 +- .../react/dns/src/Query/CachingExecutor.php | 8 +- .../dns/src/Query/CancellationException.php | 2 +- vendor/react/dns/src/Query/CoopExecutor.php | 4 +- .../react/dns/src/Query/ExecutorInterface.php | 2 +- .../react/dns/src/Query/FallbackExecutor.php | 4 +- .../react/dns/src/Query/HostsFileExecutor.php | 10 +- vendor/react/dns/src/Query/Query.php | 6 +- vendor/react/dns/src/Query/RetryExecutor.php | 6 +- .../src/Query/SelectiveTransportExecutor.php | 4 +- .../dns/src/Query/TcpTransportExecutor.php | 18 +- .../react/dns/src/Query/TimeoutException.php | 2 +- .../react/dns/src/Query/TimeoutExecutor.php | 8 +- .../dns/src/Query/UdpTransportExecutor.php | 20 +- .../react/dns/src/RecordNotFoundException.php | 2 +- vendor/react/dns/src/Resolver/Factory.php | 34 +- vendor/react/dns/src/Resolver/Resolver.php | 10 +- .../dns/src/Resolver/ResolverInterface.php | 2 +- vendor/react/event-loop/composer.json | 4 +- vendor/react/event-loop/src/ExtEvLoop.php | 6 +- vendor/react/event-loop/src/ExtEventLoop.php | 6 +- vendor/react/event-loop/src/ExtLibevLoop.php | 16 +- .../react/event-loop/src/ExtLibeventLoop.php | 8 +- vendor/react/event-loop/src/ExtUvLoop.php | 10 +- vendor/react/event-loop/src/Factory.php | 4 +- vendor/react/event-loop/src/Loop.php | 2 +- vendor/react/event-loop/src/LoopInterface.php | 2 +- .../react/event-loop/src/SignalsHandler.php | 2 +- .../react/event-loop/src/StreamSelectLoop.php | 8 +- .../event-loop/src/Tick/FutureTickQueue.php | 2 +- vendor/react/event-loop/src/Timer/Timer.php | 4 +- vendor/react/event-loop/src/Timer/Timers.php | 4 +- .../react/event-loop/src/TimerInterface.php | 2 +- vendor/react/promise/composer.json | 4 +- vendor/react/promise/src/Deferred.php | 2 +- .../src/Exception/CompositeException.php | 2 +- .../promise/src/Exception/LengthException.php | 2 +- .../src/Internal/CancellationQueue.php | 2 +- .../promise/src/Internal/FulfilledPromise.php | 6 +- .../promise/src/Internal/RejectedPromise.php | 10 +- vendor/react/promise/src/Promise.php | 4 +- vendor/react/promise/src/PromiseInterface.php | 2 +- vendor/react/promise/src/functions.php | 8 +- .../react/promise/src/functions_include.php | 4 +- vendor/react/socket/composer.json | 4 +- vendor/react/socket/src/Connection.php | 14 +- .../react/socket/src/ConnectionInterface.php | 4 +- vendor/react/socket/src/Connector.php | 12 +- .../react/socket/src/ConnectorInterface.php | 2 +- vendor/react/socket/src/DnsConnector.php | 8 +- vendor/react/socket/src/FdServer.php | 8 +- vendor/react/socket/src/FixedUriConnector.php | 2 +- .../src/HappyEyeBallsConnectionBuilder.php | 14 +- .../socket/src/HappyEyeBallsConnector.php | 10 +- vendor/react/socket/src/LimitingServer.php | 4 +- vendor/react/socket/src/SecureConnector.php | 12 +- vendor/react/socket/src/SecureServer.php | 10 +- vendor/react/socket/src/Server.php | 8 +- vendor/react/socket/src/ServerInterface.php | 4 +- vendor/react/socket/src/SocketServer.php | 6 +- vendor/react/socket/src/StreamEncryption.php | 6 +- vendor/react/socket/src/TcpConnector.php | 8 +- vendor/react/socket/src/TcpServer.php | 8 +- vendor/react/socket/src/TimeoutConnector.php | 8 +- vendor/react/socket/src/UnixConnector.php | 8 +- vendor/react/socket/src/UnixServer.php | 8 +- vendor/react/stream/composer.json | 4 +- vendor/react/stream/src/CompositeStream.php | 4 +- .../react/stream/src/DuplexResourceStream.php | 8 +- .../stream/src/DuplexStreamInterface.php | 2 +- .../stream/src/ReadableResourceStream.php | 8 +- .../stream/src/ReadableStreamInterface.php | 4 +- vendor/react/stream/src/ThroughStream.php | 4 +- vendor/react/stream/src/Util.php | 2 +- .../stream/src/WritableResourceStream.php | 8 +- .../stream/src/WritableStreamInterface.php | 4 +- vendor/rector/extension-installer/rector.php | 4 +- .../src/GeneratedConfig.php | 2 +- .../src/PluginInstaller.php | 10 +- .../config/sets/attributes/doctrine.php | 2 +- .../config/sets/attributes/gedmo.php | 2 +- .../config/sets/attributes/mongodb.php | 2 +- .../config/sets/composer-based.php | 2 +- .../config/sets/doctrine-code-quality.php | 2 +- .../sets/typed-collections-docblocks.php | 2 +- .../config/sets/typed-collections.php | 2 +- .../CodeQuality/Utils/CaseStringHelper.php | 2 +- .../RemoveAssertNotNullOnCollectionRector.php | 2 +- .../NarrowPropertyUnionToCollectionRector.php | 2 +- .../ToOneRelationPropertyTypeResolver.php | 2 +- .../src/PhpDoc/ShortClassExpander.php | 2 +- .../config/set/downgrade-php72.php | 2 +- .../config/set/downgrade-php73.php | 2 +- .../config/set/downgrade-php74.php | 2 +- .../config/set/downgrade-php80.php | 2 +- .../config/set/downgrade-php81.php | 2 +- .../config/set/downgrade-php82.php | 2 +- .../config/set/downgrade-php83.php | 2 +- .../config/set/downgrade-php84.php | 2 +- .../config/set/downgrade-php85.php | 2 +- .../config/set/downgrade-php86.php | 2 +- .../config/set/level/down-to-php71.php | 2 +- .../config/set/level/down-to-php72.php | 2 +- .../config/set/level/down-to-php73.php | 2 +- .../config/set/level/down-to-php74.php | 2 +- .../config/set/level/down-to-php80.php | 2 +- .../config/set/level/down-to-php81.php | 2 +- .../config/set/level/down-to-php82.php | 2 +- .../config/set/level/down-to-php83.php | 2 +- .../config/set/level/down-to-php84.php | 2 +- .../config/set/level/down-to-php85.php | 2 +- .../DowngradeParameterTypeWideningRector.php | 2 +- .../DowngradeAttributeToAnnotationRector.php | 2 +- .../DowngradeUnionIntersectionRector.php | 2 +- .../DowngradeIteratorCountToArrayRector.php | 2 +- .../Symfony/Component/Annotation/Route.php | 2 +- .../config/sets/annotations-to-attributes.php | 2 +- .../config/sets/composer-based.php | 2 +- .../config/sets/phpunit-code-quality.php | 2 +- .../config/sets/phpunit-mock-to-stub.php | 2 +- .../config/sets/phpunit-narrow-asserts.php | 2 +- .../TestWithAnnotationToAttributeRector.php | 2 +- .../AnnotationWithValueToAttributeRector.php | 2 +- ...rsAnnotationWithValueToAttributeRector.php | 2 +- .../SetUpAssignedMockTypesResolver.php | 2 +- .../Class_/AddParamTypeFromDependsRector.php | 2 +- .../Class_/AddSeeTestAnnotationRector.php | 13 +- .../Class_/SingleMockPropertyTypeRector.php | 2 +- .../Class_/TestWithToDataProviderRector.php | 4 +- ...nfiguredMockEntityToSetterObjectRector.php | 2 +- .../RemoveDataProviderTestPrefixRector.php | 2 +- .../src/PhpDoc/DataProviderMethodRenamer.php | 2 +- .../fosrest/annotations-to-attributes.php | 2 +- .../sets/jms/annotations-to-attributes.php | 2 +- .../sensiolabs/annotations-to-attributes.php | 2 +- .../symfony/annotations-to-attributes.php | 2 +- .../config/sets/symfony/composer-based.php | 2 +- .../config/sets/symfony/configs.php | 2 +- .../sets/symfony/symfony-code-quality.php | 2 +- .../symfony/symfony-constructor-injection.php | 2 +- .../symfony52-validator-attributes.php | 2 +- .../config/sets/twig/composer-based.php | 2 +- ...tionSecurityAttributeToIsGrantedRector.php | 2 +- .../EventListenerToEventSubscriberRector.php | 2 +- ...tAndSecurityAttributeToIsGrantedRector.php | 6 +- ...iceSettersToSettersAutodiscoveryRector.php | 2 +- .../Rector/StaticCall/ParseFileRector.php | 2 +- ...oleExceptionToErrorEventConstantRector.php | 2 +- .../StringToArrayArgumentProcessRector.php | 2 +- ...plateShortNotationToBundleSyntaxRector.php | 2 +- .../CommandConfigureToAttributeRector.php | 2 +- .../CommandPropertyToAttributeRector.php | 2 +- ...ityAttributeToIsGrantedAttributeRector.php | 2 +- .../Class_/ParamAndEnvAttributeRector.php | 2 +- ...datorValidateToValidateInContextRector.php | 10 +- .../FormTypeStringToTypeProvider.php | 2 +- .../ConstraintConstructorAnalyzer.php | 2 +- .../ValueObject/IntlBundleClassToNewClass.php | 2 +- .../ValueObjectFactory/ServiceMapFactory.php | 6 +- vendor/scoper-autoload.php | 50 +- vendor/sebastian/diff/src/Chunk.php | 2 +- vendor/sebastian/diff/src/Diff.php | 2 +- vendor/sebastian/diff/src/Differ.php | 4 +- .../src/Exception/ConfigurationException.php | 2 +- .../diff/src/Exception/Exception.php | 2 +- .../Exception/NoMiddleSnakeFoundException.php | 2 +- vendor/sebastian/diff/src/Line.php | 2 +- vendor/sebastian/diff/src/MyersDiff.php | 2 +- .../diff/src/Output/DiffOnlyOutputBuilder.php | 4 +- .../src/Output/DiffOutputBuilderInterface.php | 2 +- .../Output/StrictUnifiedDiffOutputBuilder.php | 6 +- vendor/sebastian/diff/src/Parser.php | 2 +- vendor/symfony/console/Application.php | 88 +- .../symfony/console/Attribute/AsCommand.php | 2 +- .../console/CI/GithubActionReporter.php | 4 +- vendor/symfony/console/Color.php | 4 +- vendor/symfony/console/Command/Command.php | 32 +- .../console/Command/CompleteCommand.php | 26 +- .../console/Command/DumpCompletionCommand.php | 16 +- .../symfony/console/Command/HelpCommand.php | 14 +- .../symfony/console/Command/LazyCommand.php | 20 +- .../symfony/console/Command/ListCommand.php | 16 +- .../symfony/console/Command/LockableTrait.php | 12 +- .../Command/SignalableCommandInterface.php | 2 +- .../console/Command/TraceableCommand.php | 22 +- .../CommandLoader/CommandLoaderInterface.php | 6 +- .../CommandLoader/ContainerCommandLoader.php | 8 +- .../CommandLoader/FactoryCommandLoader.php | 6 +- .../console/Completion/CompletionInput.php | 10 +- .../Completion/CompletionSuggestions.php | 4 +- .../Output/BashCompletionOutput.php | 6 +- .../Output/CompletionOutputInterface.php | 6 +- .../Output/FishCompletionOutput.php | 6 +- .../Completion/Output/ZshCompletionOutput.php | 6 +- .../symfony/console/Completion/Suggestion.php | 2 +- vendor/symfony/console/ConsoleEvents.php | 10 +- vendor/symfony/console/Cursor.php | 4 +- .../DataCollector/CommandDataCollector.php | 18 +- vendor/symfony/console/Debug/CliRequest.php | 8 +- .../AddConsoleCommandPass.php | 22 +- .../Descriptor/ApplicationDescription.php | 8 +- .../symfony/console/Descriptor/Descriptor.php | 16 +- .../Descriptor/DescriptorInterface.php | 4 +- .../console/Descriptor/JsonDescriptor.php | 12 +- .../console/Descriptor/MarkdownDescriptor.php | 16 +- .../Descriptor/ReStructuredTextDescriptor.php | 18 +- .../console/Descriptor/TextDescriptor.php | 16 +- .../console/Descriptor/XmlDescriptor.php | 12 +- .../Exception/CommandNotFoundException.php | 2 +- .../console/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../Exception/InvalidOptionException.php | 2 +- .../console/Exception/LogicException.php | 2 +- .../Exception/MissingInputException.php | 2 +- .../Exception/NamespaceNotFoundException.php | 2 +- .../Exception/RunCommandFailedException.php | 4 +- .../console/Exception/RuntimeException.php | 2 +- .../console/Formatter/NullOutputFormatter.php | 2 +- .../Formatter/NullOutputFormatterStyle.php | 2 +- .../console/Formatter/OutputFormatter.php | 8 +- .../Formatter/OutputFormatterInterface.php | 2 +- .../Formatter/OutputFormatterStyle.php | 4 +- .../OutputFormatterStyleInterface.php | 2 +- .../Formatter/OutputFormatterStyleStack.php | 6 +- .../WrappableOutputFormatterInterface.php | 2 +- .../console/Helper/DebugFormatterHelper.php | 2 +- .../console/Helper/DescriptorHelper.php | 18 +- vendor/symfony/console/Helper/Dumper.php | 10 +- .../console/Helper/FormatterHelper.php | 4 +- vendor/symfony/console/Helper/Helper.php | 6 +- .../console/Helper/HelperInterface.php | 2 +- vendor/symfony/console/Helper/HelperSet.php | 4 +- .../console/Helper/InputAwareHelper.php | 6 +- .../symfony/console/Helper/OutputWrapper.php | 2 +- .../symfony/console/Helper/ProcessHelper.php | 10 +- vendor/symfony/console/Helper/ProgressBar.php | 14 +- .../console/Helper/ProgressIndicator.php | 10 +- .../symfony/console/Helper/QuestionHelper.php | 30 +- .../console/Helper/SymfonyQuestionHelper.php | 14 +- vendor/symfony/console/Helper/Table.php | 14 +- vendor/symfony/console/Helper/TableCell.php | 4 +- .../symfony/console/Helper/TableCellStyle.php | 4 +- vendor/symfony/console/Helper/TableRows.php | 2 +- .../symfony/console/Helper/TableSeparator.php | 2 +- vendor/symfony/console/Helper/TableStyle.php | 6 +- .../console/Helper/TerminalInputHelper.php | 4 +- vendor/symfony/console/Input/ArgvInput.php | 4 +- vendor/symfony/console/Input/ArrayInput.php | 6 +- vendor/symfony/console/Input/Input.php | 6 +- .../symfony/console/Input/InputArgument.php | 14 +- .../console/Input/InputAwareInterface.php | 2 +- .../symfony/console/Input/InputDefinition.php | 6 +- .../symfony/console/Input/InputInterface.php | 6 +- vendor/symfony/console/Input/InputOption.php | 14 +- .../Input/StreamableInputInterface.php | 2 +- vendor/symfony/console/Input/StringInput.php | 4 +- .../symfony/console/Logger/ConsoleLogger.php | 12 +- .../console/Messenger/RunCommandContext.php | 2 +- .../console/Messenger/RunCommandMessage.php | 4 +- .../Messenger/RunCommandMessageHandler.php | 16 +- .../symfony/console/Output/AnsiColorMode.php | 4 +- .../symfony/console/Output/BufferedOutput.php | 2 +- .../symfony/console/Output/ConsoleOutput.php | 4 +- .../console/Output/ConsoleOutputInterface.php | 2 +- .../console/Output/ConsoleSectionOutput.php | 8 +- vendor/symfony/console/Output/NullOutput.php | 6 +- vendor/symfony/console/Output/Output.php | 6 +- .../console/Output/OutputInterface.php | 4 +- .../symfony/console/Output/StreamOutput.php | 6 +- .../console/Output/TrimmedBufferOutput.php | 6 +- .../console/Question/ChoiceQuestion.php | 4 +- .../console/Question/ConfirmationQuestion.php | 2 +- vendor/symfony/console/Question/Question.php | 6 +- .../console/SignalRegistry/SignalMap.php | 2 +- .../console/SignalRegistry/SignalRegistry.php | 2 +- .../console/SingleCommandApplication.php | 8 +- vendor/symfony/console/Style/OutputStyle.php | 10 +- .../symfony/console/Style/StyleInterface.php | 2 +- vendor/symfony/console/Style/SymfonyStyle.php | 40 +- vendor/symfony/console/Terminal.php | 8 +- vendor/symfony/console/composer.json | 2 +- .../deprecation-contracts/function.php | 4 +- .../Exception/ExceptionInterface.php | 2 +- .../Exception/FileNotFoundException.php | 2 +- .../filesystem/Exception/IOException.php | 2 +- .../Exception/IOExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../filesystem/Exception/RuntimeException.php | 2 +- vendor/symfony/filesystem/Filesystem.php | 8 +- vendor/symfony/filesystem/Path.php | 6 +- vendor/symfony/filesystem/composer.json | 2 +- .../symfony/finder/Comparator/Comparator.php | 2 +- .../finder/Comparator/DateComparator.php | 2 +- .../finder/Comparator/NumberComparator.php | 2 +- .../Exception/AccessDeniedException.php | 2 +- .../Exception/DirectoryNotFoundException.php | 2 +- vendor/symfony/finder/Finder.php | 26 +- vendor/symfony/finder/Gitignore.php | 2 +- vendor/symfony/finder/Glob.php | 2 +- .../finder/Iterator/CustomFilterIterator.php | 2 +- .../Iterator/DateRangeFilterIterator.php | 4 +- .../Iterator/DepthRangeFilterIterator.php | 2 +- .../ExcludeDirectoryFilterIterator.php | 4 +- .../Iterator/FileTypeFilterIterator.php | 2 +- .../Iterator/FilecontentFilterIterator.php | 4 +- .../Iterator/FilenameFilterIterator.php | 4 +- .../symfony/finder/Iterator/LazyIterator.php | 2 +- .../Iterator/MultiplePcreFilterIterator.php | 2 +- .../finder/Iterator/PathFilterIterator.php | 4 +- .../Iterator/RecursiveDirectoryIterator.php | 6 +- .../Iterator/SizeRangeFilterIterator.php | 4 +- .../finder/Iterator/SortableIterator.php | 2 +- .../Iterator/VcsIgnoredFilterIterator.php | 4 +- vendor/symfony/finder/SplFileInfo.php | 2 +- vendor/symfony/finder/composer.json | 2 +- .../service-contracts/Attribute/Required.php | 2 +- .../Attribute/SubscribedService.php | 6 +- .../ContainerAwareInterface.php | 2 +- .../ContainerProviderInterface.php | 4 +- .../service-contracts/ResetInterface.php | 2 +- .../ServiceCollectionInterface.php | 2 +- .../service-contracts/ServiceLocatorTrait.php | 6 +- .../ServiceMethodsSubscriberTrait.php | 8 +- .../ServiceProviderInterface.php | 4 +- .../ServiceSubscriberInterface.php | 4 +- .../ServiceSubscriberTrait.php | 8 +- .../symfony/service-contracts/composer.json | 2 +- vendor/symfony/string/AbstractString.php | 10 +- .../symfony/string/AbstractUnicodeString.php | 8 +- vendor/symfony/string/ByteString.php | 10 +- vendor/symfony/string/CodePointString.php | 6 +- .../string/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../string/Exception/RuntimeException.php | 2 +- .../string/Inflector/EnglishInflector.php | 2 +- .../string/Inflector/FrenchInflector.php | 14 +- .../string/Inflector/InflectorInterface.php | 2 +- .../string/Inflector/SpanishInflector.php | 2 +- vendor/symfony/string/LazyString.php | 2 +- .../Resources/data/wcswidth_table_wide.php | 2 +- .../Resources/data/wcswidth_table_zero.php | 2 +- vendor/symfony/string/Resources/functions.php | 2 +- .../symfony/string/Slugger/AsciiSlugger.php | 10 +- .../string/Slugger/SluggerInterface.php | 4 +- vendor/symfony/string/TruncateMode.php | 2 +- vendor/symfony/string/UnicodeString.php | 6 +- vendor/symfony/string/composer.json | 2 +- vendor/tomasvotruba/class-leak/bin/class-leak | 2 +- .../class-leak/bin/class-leak.php | 6 +- .../build/rector-downgrade-php-72.php | 2 +- .../build/target-repository/composer.json | 2 +- vendor/tomasvotruba/class-leak/composer.json | 8 +- vendor/tomasvotruba/class-leak/ecs.php | 4 +- .../unused-public/src/ApiDocStmtAnalyzer.php | 2 +- .../CallReferece/CallReferencesFlatter.php | 6 +- .../ParentCallReferenceResolver.php | 2 +- .../src/ClassMethodCallReferenceResolver.php | 4 +- .../unused-public/src/ClassTypeDetector.php | 4 +- .../MethodCallCollectorMapper.php | 8 +- .../Callable_/AttributeCallableCollector.php | 6 +- .../Callable_/CallableTypeCollector.php | 6 +- .../Collectors/ClassConstFetchCollector.php | 6 +- .../src/Collectors/FormTypeClassCollector.php | 4 +- .../MethodCall/MethodCallCollector.php | 12 +- .../MethodCall/MethodCallableCollector.php | 10 +- .../PublicClassLikeConstCollector.php | 6 +- .../Collectors/PublicClassMethodCollector.php | 32 +- .../Collectors/PublicPropertyCollector.php | 8 +- .../PublicPropertyFetchCollector.php | 6 +- .../PublicStaticPropertyFetchCollector.php | 6 +- .../StaticCall/StaticMethodCallCollector.php | 6 +- .../StaticMethodCallableCollector.php | 6 +- .../unused-public/src/Configuration.php | 4 +- .../src/Enum/ReferenceMarker.php | 2 +- .../unused-public/src/Enum/RuleIdentifier.php | 2 +- .../unused-public/src/Enum/RuleTips.php | 2 +- .../src/Enum/Template/BladeRegex.php | 2 +- .../src/Enum/Template/TwigRegex.php | 2 +- .../src/Finder/TemplateFilesFinder.php | 2 +- .../unused-public/src/MethodTypeDetector.php | 2 +- .../src/NodeCollectorExtractor.php | 18 +- .../src/PublicClassMethodMatcher.php | 4 +- .../Rules/LocalOnlyPublicClassMethodRule.php | 16 +- .../RelativeUnusedPublicClassMethodRule.php | 14 +- .../src/Rules/UnusedPublicClassConstRule.php | 16 +- .../src/Rules/UnusedPublicClassMethodRule.php | 22 +- .../src/Rules/UnusedPublicPropertyRule.php | 16 +- .../Templates/TemplateMethodCallsProvider.php | 8 +- .../src/Templates/TemplateRegexFinder.php | 6 +- .../src/Templates/UsedMethodAnalyzer.php | 2 +- .../unused-public/src/Utils/Arrays.php | 2 +- .../unused-public/src/Utils/Strings.php | 2 +- .../ValueObject/ClassAndMethodArrayExprs.php | 2 +- .../LocalAndExternalMethodCallReferences.php | 2 +- .../src/ValueObject/MethodCallReference.php | 2 +- .../stubs/Doctrine/Common/EventSubscriber.php | 2 +- .../Handler/SubscribingHandlerInterface.php | 2 +- .../stubs/Laravel/Console/Command.php | 2 +- .../stubs/Livewire/Component.php | 2 +- .../FramworkBundle/Controller/Controller.php | 2 +- .../Symfony/Component/Form/AbstractType.php | 4 +- .../OptionsResolver/OptionsResolver.php | 2 +- .../stubs/Twig/AbstractExtension.php | 2 +- .../stubs/Twig/ExtensionInterface.php | 2 +- vendor/tomasvotruba/class-leak/rector.php | 2 +- vendor/tomasvotruba/class-leak/scoper.php | 2 +- .../class-leak/src/ClassNameResolver.php | 8 +- .../class-leak/src/Commands/CheckCommand.php | 20 +- .../DependencyInjection/ContainerFactory.php | 4 +- .../StaticRelativeFilePathHelper.php | 2 +- .../Filtering/PossiblyUnusedClassesFilter.php | 92 +- .../src/Finder/ClassNamesFinder.php | 8 +- .../class-leak/src/Finder/PhpFilesFinder.php | 8 +- .../FullyQualifiedNameNodeDecorator.php | 2 +- .../src/NodeVisitor/ClassNameNodeVisitor.php | 2 +- .../src/NodeVisitor/UsedClassNodeVisitor.php | 2 +- .../src/Reporting/UnusedClassReporter.php | 12 +- .../Reporting/UnusedClassesResultFactory.php | 6 +- .../class-leak/src/UseImportsResolver.php | 6 +- .../class-leak/src/ValueObject/ClassNames.php | 2 +- .../src/ValueObject/FileWithClass.php | 10 +- .../src/ValueObject/UnusedClassesResult.php | 2 +- vendor/webmozart/assert/composer.json | 6 +- vendor/webmozart/assert/src/Assert.php | 4 +- vendor/webmozart/assert/src/HasAssert.php | 2 +- .../assert/src/InvalidArgumentException.php | 2 +- vendor/webmozart/assert/src/Mixin.php | 2 +- vendor/webmozart/assert/src/PsalmPlugin.php | 12 +- 931 files changed, 3531 insertions(+), 3511 deletions(-) diff --git a/bin/rector b/bin/rector index 2deedd5016e..a641717a91c 100755 --- a/bin/rector +++ b/bin/rector @@ -1,5 +1,5 @@ #!/usr/bin/env php directory = $directory; $this->filesystem = $filesystem; diff --git a/src/ChangesReporting/Output/ConsoleOutputFormatter.php b/src/ChangesReporting/Output/ConsoleOutputFormatter.php index 3e3b0d7e989..254fa321c6c 100644 --- a/src/ChangesReporting/Output/ConsoleOutputFormatter.php +++ b/src/ChangesReporting/Output/ConsoleOutputFormatter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; @@ -11,8 +11,8 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\ProcessResult; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class ConsoleOutputFormatter implements OutputFormatterInterface { /** diff --git a/src/ChangesReporting/Output/Factory/JsonOutputFactory.php b/src/ChangesReporting/Output/Factory/JsonOutputFactory.php index fb3ac675834..1ad6d67536f 100644 --- a/src/ChangesReporting/Output/Factory/JsonOutputFactory.php +++ b/src/ChangesReporting/Output/Factory/JsonOutputFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output\Factory; -use RectorPrefix202608\Nette\Utils\Json; +use RectorPrefix202609\Nette\Utils\Json; use Rector\Parallel\ValueObject\Bridge; use Rector\ValueObject\Configuration; use Rector\ValueObject\Error\SystemError; diff --git a/src/ChangesReporting/Output/GitlabOutputFormatter.php b/src/ChangesReporting/Output/GitlabOutputFormatter.php index 2bac23dd785..0cf635891f5 100644 --- a/src/ChangesReporting/Output/GitlabOutputFormatter.php +++ b/src/ChangesReporting/Output/GitlabOutputFormatter.php @@ -7,7 +7,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202608\Nette\Utils\Json; +use RectorPrefix202609\Nette\Utils\Json; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Util\FileHasher; use Rector\ValueObject\Configuration; diff --git a/src/ChangesReporting/ValueObject/RectorWithLineChange.php b/src/ChangesReporting/ValueObject/RectorWithLineChange.php index abd8f4a43c2..a2ffe0e47eb 100644 --- a/src/ChangesReporting/ValueObject/RectorWithLineChange.php +++ b/src/ChangesReporting/ValueObject/RectorWithLineChange.php @@ -6,7 +6,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\Parallel\Contract\SerializableInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class RectorWithLineChange implements SerializableInterface { /** diff --git a/src/Composer/ComposerJsonPackageVersionResolver.php b/src/Composer/ComposerJsonPackageVersionResolver.php index f90621cfcfb..cdbfb682365 100644 --- a/src/Composer/ComposerJsonPackageVersionResolver.php +++ b/src/Composer/ComposerJsonPackageVersionResolver.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Composer; -use RectorPrefix202608\Composer\Semver\VersionParser; +use RectorPrefix202609\Composer\Semver\VersionParser; use Rector\FileSystem\JsonFileSystem; use Rector\Skipper\FileSystem\PathNormalizer; use UnexpectedValueException; diff --git a/src/Composer/InstalledPackageResolver.php b/src/Composer/InstalledPackageResolver.php index e39b5ad1f70..c86e2523a61 100644 --- a/src/Composer/InstalledPackageResolver.php +++ b/src/Composer/InstalledPackageResolver.php @@ -3,15 +3,15 @@ declare (strict_types=1); namespace Rector\Composer; -use RectorPrefix202608\Composer\Semver\Semver; -use RectorPrefix202608\Composer\Semver\VersionParser; -use RectorPrefix202608\Nette\Utils\FileSystem; -use RectorPrefix202608\Nette\Utils\Json; +use RectorPrefix202609\Composer\Semver\Semver; +use RectorPrefix202609\Composer\Semver\VersionParser; +use RectorPrefix202609\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\Json; use Rector\Composer\ValueObject\InstalledPackage; use Rector\Exception\ShouldNotHappenException; use Rector\Skipper\FileSystem\PathNormalizer; use UnexpectedValueException; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Composer\InstalledPackageResolverTest */ diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index 26e059530f4..9ceb7845e72 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Config; -use RectorPrefix202608\Composer\Semver\Semver; +use RectorPrefix202609\Composer\Semver\Semver; use Deprecated; -use RectorPrefix202608\Entropy\Container\Container; +use RectorPrefix202609\Entropy\Container\Container; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Composer\InstalledPackageResolver; use Rector\Configuration\Option; @@ -22,8 +22,8 @@ use Rector\ValueObject\PhpVersion; use Rector\ValueObject\PolyfillPackage; use Rector\VersionBonding\ValueObject\ComposerBoundRuleConfiguration; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @api * @see \Rector\Tests\Config\RectorConfigTest diff --git a/src/Configuration/ConfigInitializer.php b/src/Configuration/ConfigInitializer.php index 2c6fd1de7e2..0098a18b44f 100644 --- a/src/Configuration/ConfigInitializer.php +++ b/src/Configuration/ConfigInitializer.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Configuration; -use RectorPrefix202608\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\FileSystem; use Rector\Bootstrap\RectorConfigsResolver; use Rector\Contract\Rector\RectorInterface; use Rector\FileSystem\InitFilePathsResolver; use Rector\PostRector\Contract\Rector\PostRectorInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class ConfigInitializer { /** diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index fd15321f3a0..55e2e6e8284 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -6,8 +6,8 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\ValueObject\Configuration; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; /** * @see \Rector\Tests\Configuration\ConfigurationFactoryTest */ diff --git a/src/Configuration/Levels/LevelRulesResolver.php b/src/Configuration/Levels/LevelRulesResolver.php index e1a5c3cea79..0aa602d8349 100644 --- a/src/Configuration/Levels/LevelRulesResolver.php +++ b/src/Configuration/Levels/LevelRulesResolver.php @@ -5,7 +5,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\Exception\ShouldNotHappenException; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class LevelRulesResolver { /** diff --git a/src/Configuration/Parameter/SimpleParameterProvider.php b/src/Configuration/Parameter/SimpleParameterProvider.php index 78d9a42109b..309ddd3680b 100644 --- a/src/Configuration/Parameter/SimpleParameterProvider.php +++ b/src/Configuration/Parameter/SimpleParameterProvider.php @@ -5,7 +5,7 @@ use Rector\Configuration\Option; use Rector\Exception\ShouldNotHappenException; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @api */ diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index 7f0b878d62b..00089b3fbf5 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -4,8 +4,8 @@ namespace Rector\Configuration; use Deprecated; -use RectorPrefix202608\DrupalRector\Set\DrupalSetList; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\DrupalRector\Set\DrupalSetList; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\NodeVisitor; use Rector\Bridge\SetRectorsResolver; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; @@ -33,8 +33,8 @@ use Rector\ValueObject\Configuration\LevelOverflow; use Rector\ValueObject\PhpVersion; use RectorLaravel\Set\LaravelSetList; -use RectorPrefix202608\Symfony\Component\Finder\Finder; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Symfony\Component\Finder\Finder; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @api */ diff --git a/src/Console/Command/ComposerBasedCommand.php b/src/Console/Command/ComposerBasedCommand.php index 13e3fa03f76..d5622745fd5 100644 --- a/src/Console/Command/ComposerBasedCommand.php +++ b/src/Console/Command/ComposerBasedCommand.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Composer\Semver\Semver; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Composer\Semver\Semver; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\Composer\InstalledPackageResolver; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; @@ -12,12 +12,12 @@ use Rector\VersionBonding\Contract\ComposerPackageConstraintInterface; use Rector\VersionBonding\ValueObject\ComposerBoundRuleConfiguration; use ReflectionObject; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Helper\TableCell; -use RectorPrefix202608\Symfony\Component\Console\Helper\TableSeparator; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Helper\TableCell; +use RectorPrefix202609\Symfony\Component\Console\Helper\TableSeparator; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; /** * @see \Rector\Tests\Console\Command\ComposerBasedCommandTest */ diff --git a/src/Console/Command/CustomRuleCommand.php b/src/Console/Command/CustomRuleCommand.php index f59e6105863..0f17cd42966 100644 --- a/src/Console/Command/CustomRuleCommand.php +++ b/src/Console/Command/CustomRuleCommand.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class CustomRuleCommand extends Command { /** diff --git a/src/Console/Command/ListRulesCommand.php b/src/Console/Command/ListRulesCommand.php index 7d28270672a..5083687fbd8 100644 --- a/src/Console/Command/ListRulesCommand.php +++ b/src/Console/Command/ListRulesCommand.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class ListRulesCommand extends Command { /** diff --git a/src/Console/Command/ProcessCommand.php b/src/Console/Command/ProcessCommand.php index 1afe27897ef..99a9392999d 100644 --- a/src/Console/Command/ProcessCommand.php +++ b/src/Console/Command/ProcessCommand.php @@ -23,11 +23,11 @@ use Rector\ValueObject\Configuration; use Rector\ValueObject\Configuration\LevelOverflow; use Rector\ValueObject\ProcessResult; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class ProcessCommand extends Command { /** diff --git a/src/Console/Command/SetupCICommand.php b/src/Console/Command/SetupCICommand.php index 635c03f2ccb..f6735e931fe 100644 --- a/src/Console/Command/SetupCICommand.php +++ b/src/Console/Command/SetupCICommand.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class SetupCICommand extends Command { /** diff --git a/src/Console/Command/WorkerCommand.php b/src/Console/Command/WorkerCommand.php index 79ae12fc88b..5524f34bbac 100644 --- a/src/Console/Command/WorkerCommand.php +++ b/src/Console/Command/WorkerCommand.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202608\Clue\React\NDJson\Decoder; -use RectorPrefix202608\Clue\React\NDJson\Encoder; -use RectorPrefix202608\React\EventLoop\StreamSelectLoop; -use RectorPrefix202608\React\Socket\ConnectionInterface; -use RectorPrefix202608\React\Socket\TcpConnector; +use RectorPrefix202609\Clue\React\NDJson\Decoder; +use RectorPrefix202609\Clue\React\NDJson\Encoder; +use RectorPrefix202609\React\EventLoop\StreamSelectLoop; +use RectorPrefix202609\React\Socket\ConnectionInterface; +use RectorPrefix202609\React\Socket\TcpConnector; use Rector\Application\ApplicationFileProcessor; use Rector\Autoloading\AdditionalAutoloader; use Rector\Configuration\ConfigurationFactory; @@ -22,11 +22,11 @@ use Rector\Util\MemoryLimiter; use Rector\ValueObject\Configuration; use Rector\ValueObject\Error\SystemError; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; use Throwable; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * Inspired at: https://github.com/phpstan/phpstan-src/commit/9124c66dcc55a222e21b1717ba5f60771f7dda92 * https://github.com/phpstan/phpstan-src/blob/c471c7b050e0929daf432288770de673b394a983/src/Command/WorkerCommand.php diff --git a/src/Console/ConsoleApplication.php b/src/Console/ConsoleApplication.php index 5de13b07231..736d2e3144d 100644 --- a/src/Console/ConsoleApplication.php +++ b/src/Console/ConsoleApplication.php @@ -3,19 +3,19 @@ declare (strict_types=1); namespace Rector\Console; -use RectorPrefix202608\Composer\XdebugHandler\XdebugHandler; +use RectorPrefix202609\Composer\XdebugHandler\XdebugHandler; use Rector\Application\VersionResolver; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; use Rector\Util\Reflection\PrivatesAccessor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Webmozart\Assert\Assert; final class ConsoleApplication extends Application { /** diff --git a/src/Console/ExitCode.php b/src/Console/ExitCode.php index 32c81f8ccbb..d53a1b0d86e 100644 --- a/src/Console/ExitCode.php +++ b/src/Console/ExitCode.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Console; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; /** * @api */ diff --git a/src/Console/Formatter/ColorConsoleDiffFormatter.php b/src/Console/Formatter/ColorConsoleDiffFormatter.php index 0d38c4cd880..e53dfce653e 100644 --- a/src/Console/Formatter/ColorConsoleDiffFormatter.php +++ b/src/Console/Formatter/ColorConsoleDiffFormatter.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Console\Formatter; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\Util\NewLineSplitter; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; /** * Inspired by @see https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/src/Differ/DiffConsoleFormatter.php to be * used as standalone class, without need to require whole package by Dariusz Rumiński diff --git a/src/Console/Notifier.php b/src/Console/Notifier.php index 2cf2484625a..3f12333bde2 100644 --- a/src/Console/Notifier.php +++ b/src/Console/Notifier.php @@ -4,9 +4,9 @@ namespace Rector\Console; use Rector\Exception\Configuration\InvalidConfigurationException; -use RectorPrefix202608\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class Notifier { public static function notifyNotSuitableMethodForPHP74(string $calledMethod): void diff --git a/src/Console/ProcessConfigureDecorator.php b/src/Console/ProcessConfigureDecorator.php index 8a7934ac226..29980c1b77d 100644 --- a/src/Console/ProcessConfigureDecorator.php +++ b/src/Console/ProcessConfigureDecorator.php @@ -5,9 +5,9 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; final class ProcessConfigureDecorator { public static function decorate(Command $command): void diff --git a/src/Console/Style/RectorStyle.php b/src/Console/Style/RectorStyle.php index 4211536b8ce..b27bca455e9 100644 --- a/src/Console/Style/RectorStyle.php +++ b/src/Console/Style/RectorStyle.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Console\Style; -use RectorPrefix202608\OndraM\CiDetector\CiDetector; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202608\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\OndraM\CiDetector\CiDetector; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class RectorStyle extends SymfonyStyle { private ?ProgressBar $progressBar = null; diff --git a/src/Console/Style/SymfonyStyleFactory.php b/src/Console/Style/SymfonyStyleFactory.php index 23053526aa7..d3c36f4b1f8 100644 --- a/src/Console/Style/SymfonyStyleFactory.php +++ b/src/Console/Style/SymfonyStyleFactory.php @@ -4,10 +4,10 @@ namespace Rector\Console\Style; use Rector\Util\Reflection\PrivatesAccessor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; final class SymfonyStyleFactory { /** diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 384d0d2a490..2342e5b497c 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\DependencyInjection; -use RectorPrefix202608\Doctrine\Inflector\Inflector; -use RectorPrefix202608\Doctrine\Inflector\Rules\English\InflectorFactory; +use RectorPrefix202609\Doctrine\Inflector\Inflector; +use RectorPrefix202609\Doctrine\Inflector\Rules\English\InflectorFactory; use PhpParser\Lexer; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; @@ -70,9 +70,9 @@ use Rector\Rector\AbstractRector; use Rector\Skipper\Skipper\Skipper; use Rector\Skipper\Skipper\UsedSkipCollector; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Webmozart\Assert\Assert; final class LazyContainerFactory { /** diff --git a/src/Differ/DefaultDiffer.php b/src/Differ/DefaultDiffer.php index ca81c6c3ac7..0dd7305a201 100644 --- a/src/Differ/DefaultDiffer.php +++ b/src/Differ/DefaultDiffer.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Differ; -use RectorPrefix202608\SebastianBergmann\Diff\Differ; -use RectorPrefix202608\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; +use RectorPrefix202609\SebastianBergmann\Diff\Differ; +use RectorPrefix202609\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; final class DefaultDiffer { /** diff --git a/src/FileSystem/FilePathHelper.php b/src/FileSystem/FilePathHelper.php index 1323244bb90..3138cd225f1 100644 --- a/src/FileSystem/FilePathHelper.php +++ b/src/FileSystem/FilePathHelper.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\FileSystem; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\Skipper\FileSystem\PathNormalizer; -use RectorPrefix202608\Symfony\Component\Filesystem\Filesystem; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @see \Rector\Tests\FileSystem\FilePathHelperTest */ diff --git a/src/FileSystem/FilesFinder.php b/src/FileSystem/FilesFinder.php index 3f8503e38dd..d1de4d2fe18 100644 --- a/src/FileSystem/FilesFinder.php +++ b/src/FileSystem/FilesFinder.php @@ -3,14 +3,14 @@ declare (strict_types=1); namespace Rector\FileSystem; -use RectorPrefix202608\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\FileSystem; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\Caching\UnchangedFilesFilter; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Skipper\Skipper\PathSkipper; use Rector\ValueObject\Configuration; -use RectorPrefix202608\Symfony\Component\Finder\Finder; +use RectorPrefix202609\Symfony\Component\Finder\Finder; /** * @see \Rector\Tests\FileSystem\FilesFinder\FilesFinderTest */ diff --git a/src/FileSystem/InitFilePathsResolver.php b/src/FileSystem/InitFilePathsResolver.php index 9d0149dd523..a14c6379f0d 100644 --- a/src/FileSystem/InitFilePathsResolver.php +++ b/src/FileSystem/InitFilePathsResolver.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\FileSystem; -use RectorPrefix202608\Symfony\Component\Finder\Finder; -use RectorPrefix202608\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202609\Symfony\Component\Finder\Finder; +use RectorPrefix202609\Symfony\Component\Finder\SplFileInfo; /** * @see \Rector\Tests\FileSystem\InitFilePathsResolver\InitFilePathsResolverTest */ diff --git a/src/FileSystem/JsonFileSystem.php b/src/FileSystem/JsonFileSystem.php index 64a6fbd252b..549e6637704 100644 --- a/src/FileSystem/JsonFileSystem.php +++ b/src/FileSystem/JsonFileSystem.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\FileSystem; -use RectorPrefix202608\Nette\Utils\FileSystem; -use RectorPrefix202608\Nette\Utils\Json; +use RectorPrefix202609\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\Json; final class JsonFileSystem { /** diff --git a/src/NodeManipulator/PropertyManipulator.php b/src/NodeManipulator/PropertyManipulator.php index a3788271228..674ba18db48 100644 --- a/src/NodeManipulator/PropertyManipulator.php +++ b/src/NodeManipulator/PropertyManipulator.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\NodeManipulator; -use RectorPrefix202608\Doctrine\ORM\Mapping\Table; +use RectorPrefix202609\Doctrine\ORM\Mapping\Table; use PhpParser\Node; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; diff --git a/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php b/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php index 8b5fab56d76..aa39a68412f 100644 --- a/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php +++ b/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php @@ -15,11 +15,11 @@ use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; -use RectorPrefix202608\Symfony\Component\Console\Input\ArrayInput; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; use Throwable; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * Factory so Symfony app can use services from PHPStan container * diff --git a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index ebf7f55bd1c..9c5e3408004 100644 --- a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -107,7 +107,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpParser\Node\FileNode; use Rector\Util\Reflection\PrivatesAccessor; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @inspired by https://github.com/silverstripe/silverstripe-upgrader/blob/532182b23e854d02e0b27e68ebc394f436de0682/src/UpgradeRule/PHP/Visitor/PHPStanScopeVisitor.php * - https://github.com/silverstripe/silverstripe-upgrader/pull/57/commits/e5c7cfa166ad940d9d4ff69537d9f7608e992359#diff-5e0807bb3dc03d6a8d8b6ad049abd774 diff --git a/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php b/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php index 0009a1a2477..e27395eccfc 100644 --- a/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php +++ b/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\NodeTypeResolver\PhpDocNodeVisitor; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node as PhpParserNode; use PHPStan\PhpDocParser\Ast\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; diff --git a/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php b/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php index f0510df03bb..e2aaaff27c4 100644 --- a/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php +++ b/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php @@ -11,7 +11,7 @@ use Rector\Exception\NotImplementedYetException; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class PHPStanStaticTypeMapper { /** diff --git a/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php b/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php index b09a02e0732..8ddf5a12d72 100644 --- a/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php +++ b/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Reflection\ClassReflection; diff --git a/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php b/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php index d865414df23..e9730dbe5a0 100644 --- a/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php +++ b/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; diff --git a/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php b/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php index 1809b3653c9..66f655351c9 100644 --- a/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php +++ b/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php @@ -24,8 +24,8 @@ use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper; use Rector\ValueObject\PhpVersionFeature; -use RectorPrefix202608\Webmozart\Assert\Assert; -use RectorPrefix202608\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202609\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\InvalidArgumentException; /** * @implements TypeMapperInterface */ diff --git a/src/Parallel/Application/ParallelFileProcessor.php b/src/Parallel/Application/ParallelFileProcessor.php index 7bfb427e90c..835754e2aab 100644 --- a/src/Parallel/Application/ParallelFileProcessor.php +++ b/src/Parallel/Application/ParallelFileProcessor.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Parallel\Application; -use RectorPrefix202608\Clue\React\NDJson\Decoder; -use RectorPrefix202608\Clue\React\NDJson\Encoder; -use RectorPrefix202608\Nette\Utils\Random; -use RectorPrefix202608\React\EventLoop\StreamSelectLoop; -use RectorPrefix202608\React\Socket\ConnectionInterface; -use RectorPrefix202608\React\Socket\TcpServer; +use RectorPrefix202609\Clue\React\NDJson\Decoder; +use RectorPrefix202609\Clue\React\NDJson\Encoder; +use RectorPrefix202609\Nette\Utils\Random; +use RectorPrefix202609\React\EventLoop\StreamSelectLoop; +use RectorPrefix202609\React\Socket\ConnectionInterface; +use RectorPrefix202609\React\Socket\TcpServer; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Console\Command\ProcessCommand; @@ -24,8 +24,8 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\ProcessResult; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; use Throwable; /** * Inspired from @see diff --git a/src/Parallel/Command/WorkerCommandLineFactory.php b/src/Parallel/Command/WorkerCommandLineFactory.php index 9374b474428..397f0a2e7a2 100644 --- a/src/Parallel/Command/WorkerCommandLineFactory.php +++ b/src/Parallel/Command/WorkerCommandLineFactory.php @@ -8,8 +8,8 @@ use Rector\FileSystem\FilePathHelper; use Rector\Parallel\Exception\ParallelShouldNotHappenException; use Rector\Parallel\Reflection\CommandFromReflectionFactory; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; /** * @see \Rector\Tests\Parallel\Command\WorkerCommandLineFactoryTest * @todo possibly extract to symplify/easy-parallel diff --git a/src/Parallel/CpuCoreCountProvider.php b/src/Parallel/CpuCoreCountProvider.php index a44966defad..e9ca3de75bb 100644 --- a/src/Parallel/CpuCoreCountProvider.php +++ b/src/Parallel/CpuCoreCountProvider.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Parallel; -use RectorPrefix202608\Fidry\CpuCoreCounter\CpuCoreCounter; -use RectorPrefix202608\Fidry\CpuCoreCounter\NumberOfCpuCoreNotFound; +use RectorPrefix202609\Fidry\CpuCoreCounter\CpuCoreCounter; +use RectorPrefix202609\Fidry\CpuCoreCounter\NumberOfCpuCoreNotFound; final class CpuCoreCountProvider { /** diff --git a/src/Parallel/Reflection/CommandFromReflectionFactory.php b/src/Parallel/Reflection/CommandFromReflectionFactory.php index cd77ec8009e..1a655994567 100644 --- a/src/Parallel/Reflection/CommandFromReflectionFactory.php +++ b/src/Parallel/Reflection/CommandFromReflectionFactory.php @@ -6,7 +6,7 @@ use Rector\Parallel\Exception\ParallelShouldNotHappenException; use ReflectionClass; use ReflectionMethod; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; final class CommandFromReflectionFactory { /** diff --git a/src/Parallel/ScheduleFactory.php b/src/Parallel/ScheduleFactory.php index d5c1c103815..169798b1919 100644 --- a/src/Parallel/ScheduleFactory.php +++ b/src/Parallel/ScheduleFactory.php @@ -4,7 +4,7 @@ namespace Rector\Parallel; use Rector\Parallel\ValueObject\Schedule; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * Used from * https://github.com/phpstan/phpstan-src/blob/9124c66dcc55a222e21b1717ba5f60771f7dda92/src/Parallel/Scheduler.php diff --git a/src/Parallel/ValueObject/ParallelProcess.php b/src/Parallel/ValueObject/ParallelProcess.php index 0d04fdd3cda..8a5ce4f56d2 100644 --- a/src/Parallel/ValueObject/ParallelProcess.php +++ b/src/Parallel/ValueObject/ParallelProcess.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Parallel\ValueObject; -use RectorPrefix202608\Clue\React\NDJson\Decoder; -use RectorPrefix202608\Clue\React\NDJson\Encoder; +use RectorPrefix202609\Clue\React\NDJson\Decoder; +use RectorPrefix202609\Clue\React\NDJson\Encoder; use Exception; -use RectorPrefix202608\React\ChildProcess\Process; -use RectorPrefix202608\React\EventLoop\LoopInterface; -use RectorPrefix202608\React\EventLoop\TimerInterface; +use RectorPrefix202609\React\ChildProcess\Process; +use RectorPrefix202609\React\EventLoop\LoopInterface; +use RectorPrefix202609\React\EventLoop\TimerInterface; use Rector\Parallel\Enum\Action; use Rector\Parallel\Enum\Content; use Rector\Parallel\Enum\ReactCommand; diff --git a/src/Parallel/ValueObject/ProcessPool.php b/src/Parallel/ValueObject/ProcessPool.php index be0bc962c39..728e6b0096b 100644 --- a/src/Parallel/ValueObject/ProcessPool.php +++ b/src/Parallel/ValueObject/ProcessPool.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Parallel\ValueObject; -use RectorPrefix202608\React\Socket\TcpServer; +use RectorPrefix202609\React\Socket\TcpServer; use Rector\Parallel\Exception\ParallelShouldNotHappenException; /** * Used from https://github.com/phpstan/phpstan-src/blob/master/src/Parallel/ProcessPool.php diff --git a/src/Php/PhpVersionResolver/ComposerJsonPhpVersionResolver.php b/src/Php/PhpVersionResolver/ComposerJsonPhpVersionResolver.php index 3f77125638c..1d5a962ea20 100644 --- a/src/Php/PhpVersionResolver/ComposerJsonPhpVersionResolver.php +++ b/src/Php/PhpVersionResolver/ComposerJsonPhpVersionResolver.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php\PhpVersionResolver; -use RectorPrefix202608\Composer\Semver\VersionParser; +use RectorPrefix202609\Composer\Semver\VersionParser; use Rector\Exception\Configuration\InvalidConfigurationException; use Rector\FileSystem\JsonFileSystem; use Rector\Util\PhpVersionFactory; diff --git a/src/Php/PolyfillPackagesProvider.php b/src/Php/PolyfillPackagesProvider.php index cc777fa12ec..617dc4c17c5 100644 --- a/src/Php/PolyfillPackagesProvider.php +++ b/src/Php/PolyfillPackagesProvider.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Php; -use RectorPrefix202608\Nette\Utils\FileSystem; -use RectorPrefix202608\Nette\Utils\Json; +use RectorPrefix202609\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\Json; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\ValueObject\PolyfillPackage; diff --git a/src/PhpAttribute/AnnotationToAttributeMapper.php b/src/PhpAttribute/AnnotationToAttributeMapper.php index 526e1f484f0..09287e48eb5 100644 --- a/src/PhpAttribute/AnnotationToAttributeMapper.php +++ b/src/PhpAttribute/AnnotationToAttributeMapper.php @@ -12,7 +12,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpAttribute\AnnotationToAttributeMapper\AnnotationToAttributeMapperTest */ diff --git a/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php b/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php index 95ae0b55ac7..c3d746e1eff 100644 --- a/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php +++ b/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php @@ -13,7 +13,7 @@ use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; use Rector\PhpParser\Node\Value\ValueResolver; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php b/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php index f0647c212e9..56866d58d9e 100644 --- a/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php +++ b/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php @@ -14,7 +14,7 @@ use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; use Rector\Validation\RectorAssert; -use RectorPrefix202608\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202609\Webmozart\Assert\InvalidArgumentException; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/src/PhpAttribute/AnnotationToAttributeMapper/ClassConstFetchAnnotationToAttributeMapper.php b/src/PhpAttribute/AnnotationToAttributeMapper/ClassConstFetchAnnotationToAttributeMapper.php index aef32ba6d4a..6d07edee4cc 100644 --- a/src/PhpAttribute/AnnotationToAttributeMapper/ClassConstFetchAnnotationToAttributeMapper.php +++ b/src/PhpAttribute/AnnotationToAttributeMapper/ClassConstFetchAnnotationToAttributeMapper.php @@ -9,7 +9,7 @@ use PhpParser\Node\Scalar\String_; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\Validation\RectorAssert; -use RectorPrefix202608\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202609\Webmozart\Assert\InvalidArgumentException; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php b/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php index 2605099f6cf..d4cee7aae1f 100644 --- a/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php +++ b/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php @@ -10,7 +10,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/src/PhpAttribute/AttributeArrayNameInliner.php b/src/PhpAttribute/AttributeArrayNameInliner.php index 06601398426..624c8c721b1 100644 --- a/src/PhpAttribute/AttributeArrayNameInliner.php +++ b/src/PhpAttribute/AttributeArrayNameInliner.php @@ -10,7 +10,7 @@ use PhpParser\Node\Scalar\Float_; use PhpParser\Node\Scalar\Int_; use PhpParser\Node\Scalar\String_; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class AttributeArrayNameInliner { /** diff --git a/src/PhpAttribute/NodeFactory/AnnotationToAttributeIntegerValueCaster.php b/src/PhpAttribute/NodeFactory/AnnotationToAttributeIntegerValueCaster.php index e9f71bdbd5f..c90fe1ce808 100644 --- a/src/PhpAttribute/NodeFactory/AnnotationToAttributeIntegerValueCaster.php +++ b/src/PhpAttribute/NodeFactory/AnnotationToAttributeIntegerValueCaster.php @@ -15,7 +15,7 @@ use PHPStan\Type\Type; use PHPStan\Type\UnionType; use Rector\Php80\ValueObject\AnnotationToAttribute; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class AnnotationToAttributeIntegerValueCaster { /** diff --git a/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php b/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php index 1e5e6209a5c..a203f2ab3ba 100644 --- a/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php +++ b/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; @@ -26,7 +26,7 @@ use Rector\Php80\ValueObject\NestedAnnotationToAttribute; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AttributeArrayNameInliner; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class PhpNestedAttributeGroupFactory { /** diff --git a/src/PhpParser/Node/BetterNodeFinder.php b/src/PhpParser/Node/BetterNodeFinder.php index 3edae92ea74..e2f5406acf5 100644 --- a/src/PhpParser/Node/BetterNodeFinder.php +++ b/src/PhpParser/Node/BetterNodeFinder.php @@ -18,7 +18,7 @@ use Rector\NodeAnalyzer\ClassAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpParser\Node\BetterNodeFinder\BetterNodeFinderTest */ diff --git a/src/PhpParser/NodeTraverser/RectorNodeTraverser.php b/src/PhpParser/NodeTraverser/RectorNodeTraverser.php index 299284bd015..99d658fc13e 100644 --- a/src/PhpParser/NodeTraverser/RectorNodeTraverser.php +++ b/src/PhpParser/NodeTraverser/RectorNodeTraverser.php @@ -14,7 +14,7 @@ use Rector\Exception\ShouldNotHappenException; use Rector\VersionBonding\ComposerPackageConstraintFilter; use Rector\VersionBonding\PhpVersionedFilter; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * Based on native NodeTraverser class, but heavily customized for Rector needs. * diff --git a/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php b/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php index 22810e5124f..2d197343a21 100644 --- a/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php +++ b/src/PhpParser/NodeVisitor/LocalVariableScopeNodeVisitor.php @@ -16,7 +16,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PhpParser\Enum\NodeGroup; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * Marks variables declared "global $x;" (IS_GLOBAL_VAR) and "static $x;" (IS_STATIC_VAR), * then decorates their later uses in the same stmt scope in one shared traversal. diff --git a/src/PhpParser/Parser/InlineCodeParser.php b/src/PhpParser/Parser/InlineCodeParser.php index 4fc14e876f9..89417d3df60 100644 --- a/src/PhpParser/Parser/InlineCodeParser.php +++ b/src/PhpParser/Parser/InlineCodeParser.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\PhpParser\Parser; -use RectorPrefix202608\Nette\Utils\FileSystem; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\InterpolatedString; diff --git a/src/PhpParser/Parser/SimplePhpParser.php b/src/PhpParser/Parser/SimplePhpParser.php index 998969000ec..129539309bf 100644 --- a/src/PhpParser/Parser/SimplePhpParser.php +++ b/src/PhpParser/Parser/SimplePhpParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpParser\Parser; -use RectorPrefix202608\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\FileSystem; use PhpParser\Node; use PhpParser\Node\Stmt\Expression; use PhpParser\NodeTraverser; diff --git a/src/PhpParser/Printer/BetterStandardPrinter.php b/src/PhpParser/Printer/BetterStandardPrinter.php index 6689a4c21ec..3b75354598f 100644 --- a/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/src/PhpParser/Printer/BetterStandardPrinter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpParser\Printer; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Internal\TokenStream; use PhpParser\Node; diff --git a/src/PostRector/Rector/AbstractPostRector.php b/src/PostRector/Rector/AbstractPostRector.php index 2eabc575a70..095246b4324 100644 --- a/src/PostRector/Rector/AbstractPostRector.php +++ b/src/PostRector/Rector/AbstractPostRector.php @@ -9,7 +9,7 @@ use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\PostRector\Contract\Rector\PostRectorInterface; use Rector\ValueObject\Application\File; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; abstract class AbstractPostRector extends NodeVisitorAbstract implements PostRectorInterface { /** diff --git a/src/PostRector/Rector/UnusedImportRemovingPostRector.php b/src/PostRector/Rector/UnusedImportRemovingPostRector.php index 6310297d2a4..9b3a7e3d446 100644 --- a/src/PostRector/Rector/UnusedImportRemovingPostRector.php +++ b/src/PostRector/Rector/UnusedImportRemovingPostRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Comment\Doc; use PhpParser\Node; diff --git a/src/Reporting/DeprecatedRulesReporter.php b/src/Reporting/DeprecatedRulesReporter.php index a5303bdad27..da4b2a317dd 100644 --- a/src/Reporting/DeprecatedRulesReporter.php +++ b/src/Reporting/DeprecatedRulesReporter.php @@ -9,7 +9,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\PhpParser\Node\FileNode; use ReflectionMethod; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class DeprecatedRulesReporter { /** diff --git a/src/Reporting/MissConfigurationReporter.php b/src/Reporting/MissConfigurationReporter.php index 4d7bdd5e891..4d04153bcb6 100644 --- a/src/Reporting/MissConfigurationReporter.php +++ b/src/Reporting/MissConfigurationReporter.php @@ -9,7 +9,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; use Rector\ValueObject\ProcessResult; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; /** * @see \Rector\Tests\Reporting\MissConfigurationReporterTest */ diff --git a/src/Set/ValueObject/ComposerTriggeredSet.php b/src/Set/ValueObject/ComposerTriggeredSet.php index 3394bf52994..a11a277af19 100644 --- a/src/Set/ValueObject/ComposerTriggeredSet.php +++ b/src/Set/ValueObject/ComposerTriggeredSet.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\Set\ValueObject; -use RectorPrefix202608\Composer\Semver\Semver; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Composer\Semver\Semver; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\Composer\ValueObject\InstalledPackage; use Rector\Set\Contract\SetInterface; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @api used by extensions * diff --git a/src/Set/ValueObject/Set.php b/src/Set/ValueObject/Set.php index 89ca6935351..7968dbcaccb 100644 --- a/src/Set/ValueObject/Set.php +++ b/src/Set/ValueObject/Set.php @@ -4,7 +4,7 @@ namespace Rector\Set\ValueObject; use Rector\Set\Contract\SetInterface; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @api used by extensions * diff --git a/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php b/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php index 951c38066c4..d39986a5bd8 100644 --- a/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php +++ b/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\Mapper; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PHPStan\Type\Accessory\AccessoryArrayListType; use PHPStan\Type\Accessory\AccessoryDecimalIntegerStringType; use PHPStan\Type\Accessory\AccessoryLiteralStringType; diff --git a/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php b/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php index 4e6acc838c6..1fa7558489d 100644 --- a/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php +++ b/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php @@ -9,7 +9,7 @@ use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\Type; use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @see \Rector\Tests\StaticTypeMapper\PhpDoc\PhpDocTypeMapperTest */ diff --git a/src/StaticTypeMapper/PhpDocParser/IdentifierPhpDocTypeMapper.php b/src/StaticTypeMapper/PhpDocParser/IdentifierPhpDocTypeMapper.php index 0a31a654823..d731160b068 100644 --- a/src/StaticTypeMapper/PhpDocParser/IdentifierPhpDocTypeMapper.php +++ b/src/StaticTypeMapper/PhpDocParser/IdentifierPhpDocTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\PhpDocParser; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\NameScope; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; diff --git a/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php b/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php index dc39cc08523..c806c426ba7 100644 --- a/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php +++ b/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Use_; use PhpParser\Node\UseItem; diff --git a/src/Testing/Fixture/FixtureFileFinder.php b/src/Testing/Fixture/FixtureFileFinder.php index d8a18efad42..81179021c94 100644 --- a/src/Testing/Fixture/FixtureFileFinder.php +++ b/src/Testing/Fixture/FixtureFileFinder.php @@ -4,7 +4,7 @@ namespace Rector\Testing\Fixture; use Iterator; -use RectorPrefix202608\Symfony\Component\Finder\Finder; +use RectorPrefix202609\Symfony\Component\Finder\Finder; final class FixtureFileFinder { /** diff --git a/src/Testing/Fixture/FixtureFileUpdater.php b/src/Testing/Fixture/FixtureFileUpdater.php index 23091ad9866..c627b9c8d77 100644 --- a/src/Testing/Fixture/FixtureFileUpdater.php +++ b/src/Testing/Fixture/FixtureFileUpdater.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202608\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\FileSystem; final class FixtureFileUpdater { /** diff --git a/src/Testing/Fixture/FixtureSplitter.php b/src/Testing/Fixture/FixtureSplitter.php index 771a480a6cf..38713c8f73c 100644 --- a/src/Testing/Fixture/FixtureSplitter.php +++ b/src/Testing/Fixture/FixtureSplitter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202608\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\FileSystem; /** * @api */ diff --git a/src/Testing/Fixture/FixtureTempFileDumper.php b/src/Testing/Fixture/FixtureTempFileDumper.php index a1dd57d2497..8f5d7ecf310 100644 --- a/src/Testing/Fixture/FixtureTempFileDumper.php +++ b/src/Testing/Fixture/FixtureTempFileDumper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202608\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\FileSystem; /** * @api used in tests */ diff --git a/src/Testing/PHPUnit/AbstractRectorTestCase.php b/src/Testing/PHPUnit/AbstractRectorTestCase.php index 91647c46de4..a2c84f015e9 100644 --- a/src/Testing/PHPUnit/AbstractRectorTestCase.php +++ b/src/Testing/PHPUnit/AbstractRectorTestCase.php @@ -4,8 +4,8 @@ namespace Rector\Testing\PHPUnit; use Iterator; -use RectorPrefix202608\Nette\Utils\FileSystem; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\Strings; use PHPUnit\Framework\ExpectationFailedException; use Rector\Application\ApplicationFileProcessor; use Rector\Autoloading\AdditionalAutoloader; diff --git a/src/Testing/TestingParser/TestingParser.php b/src/Testing/TestingParser/TestingParser.php index 3bdc3bb10a0..f1cc86010e5 100644 --- a/src/Testing/TestingParser/TestingParser.php +++ b/src/Testing/TestingParser/TestingParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\TestingParser; -use RectorPrefix202608\Nette\Utils\FileSystem; +use RectorPrefix202609\Nette\Utils\FileSystem; use PhpParser\Node; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; diff --git a/src/Util/MemoryLimiter.php b/src/Util/MemoryLimiter.php index dcc97b8826a..08ff21da9e9 100644 --- a/src/Util/MemoryLimiter.php +++ b/src/Util/MemoryLimiter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\Exception\Configuration\InvalidConfigurationException; use Rector\ValueObject\Configuration; /** diff --git a/src/Util/NewLineSplitter.php b/src/Util/NewLineSplitter.php index 851228d5fc9..ee53dd6c0ec 100644 --- a/src/Util/NewLineSplitter.php +++ b/src/Util/NewLineSplitter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; final class NewLineSplitter { /** diff --git a/src/Util/NodePrinter.php b/src/Util/NodePrinter.php index b53f9e90ac1..3ea40fddf78 100644 --- a/src/Util/NodePrinter.php +++ b/src/Util/NodePrinter.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node; use Rector\CustomRules\SimpleNodeDumper; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; final class NodePrinter { /** diff --git a/src/Util/StringUtils.php b/src/Util/StringUtils.php index 3c9f91d4684..91ba62b9946 100644 --- a/src/Util/StringUtils.php +++ b/src/Util/StringUtils.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; final class StringUtils { public static function isMatch(string $value, string $regex): bool diff --git a/src/Validation/RectorAssert.php b/src/Validation/RectorAssert.php index c54c04c0f26..b2563f02b00 100644 --- a/src/Validation/RectorAssert.php +++ b/src/Validation/RectorAssert.php @@ -4,7 +4,7 @@ namespace Rector\Validation; use Rector\Util\StringUtils; -use RectorPrefix202608\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202609\Webmozart\Assert\InvalidArgumentException; /** * @see \Rector\Tests\Validation\RectorAssertTest */ diff --git a/src/ValueObject/Configuration.php b/src/ValueObject/Configuration.php index a5a7d73766b..db61aaedddd 100644 --- a/src/ValueObject/Configuration.php +++ b/src/ValueObject/Configuration.php @@ -7,7 +7,7 @@ use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\ValueObject\Configuration\LevelOverflow; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class Configuration { /** diff --git a/src/ValueObject/Error/SystemError.php b/src/ValueObject/Error/SystemError.php index 3a4c43f0578..65deceeedd1 100644 --- a/src/ValueObject/Error/SystemError.php +++ b/src/ValueObject/Error/SystemError.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ValueObject\Error; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\Parallel\Contract\SerializableInterface; use Rector\Parallel\ValueObject\BridgeItem; /** diff --git a/src/ValueObject/FileProcessResult.php b/src/ValueObject/FileProcessResult.php index abdb6191c94..aa5429c0468 100644 --- a/src/ValueObject/FileProcessResult.php +++ b/src/ValueObject/FileProcessResult.php @@ -5,7 +5,7 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class FileProcessResult { /** diff --git a/src/ValueObject/ProcessResult.php b/src/ValueObject/ProcessResult.php index 113fb50783e..3457944bb7d 100644 --- a/src/ValueObject/ProcessResult.php +++ b/src/ValueObject/ProcessResult.php @@ -6,7 +6,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; final class ProcessResult { /** diff --git a/src/ValueObject/Reporting/FileDiff.php b/src/ValueObject/Reporting/FileDiff.php index 71a35514e97..f24ffab6cd8 100644 --- a/src/ValueObject/Reporting/FileDiff.php +++ b/src/ValueObject/Reporting/FileDiff.php @@ -3,13 +3,13 @@ declare (strict_types=1); namespace Rector\ValueObject\Reporting; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\Contract\Rector\RectorInterface; use Rector\Parallel\Contract\SerializableInterface; use Rector\Parallel\ValueObject\BridgeItem; use Rector\Util\RectorClassesSorter; -use RectorPrefix202608\Webmozart\Assert\Assert; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @see \Rector\Tests\ValueObject\Reporting\FileDiffTest */ diff --git a/src/VersionBonding/ComposerPackageConstraintFilter.php b/src/VersionBonding/ComposerPackageConstraintFilter.php index fe74ce66fb7..bd7678b506d 100644 --- a/src/VersionBonding/ComposerPackageConstraintFilter.php +++ b/src/VersionBonding/ComposerPackageConstraintFilter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\VersionBonding; -use RectorPrefix202608\Composer\Semver\Semver; +use RectorPrefix202609\Composer\Semver\Semver; use Rector\Composer\InstalledPackageResolver; use Rector\Contract\Rector\RectorInterface; use Rector\VersionBonding\Contract\ComposerPackageConstraintInterface; diff --git a/src/functions/node_helper.php b/src/functions/node_helper.php index 5532c52e65a..5fe502d67f5 100644 --- a/src/functions/node_helper.php +++ b/src/functions/node_helper.php @@ -1,7 +1,7 @@ $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', 'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', 'PhpParser\\Token' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Token.php', - 'RectorPrefix202608\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202608\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\InvalidRegexPatternRule' => $vendorDir . '/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregMatchFlags' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchFlags.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregMatchParameterOutTypeExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregMatchTypeSpecifyingExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregReplaceCallbackClosureTypeExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\UnsafeStrictGroupsCallRule' => $vendorDir . '/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php', - 'RectorPrefix202608\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202608\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', - 'RectorPrefix202608\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', - 'RectorPrefix202608\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202608\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', - 'RectorPrefix202608\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', - 'RectorPrefix202608\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', - 'RectorPrefix202608\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', - 'RectorPrefix202608\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/src/CachedWordInflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/src/GenericLanguageInflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/src/Inflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/src/Language.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/src/LanguageInflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/src/NoopWordInflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/English/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/English/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/English/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/English/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/French/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/French/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/French/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/French/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/src/Rules/Pattern.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/src/Rules/Patterns.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/src/Rules/Ruleset.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/src/Rules/Substitution.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/src/Rules/Substitutions.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/src/Rules/Transformation.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/src/Rules/Transformations.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/src/Rules/Word.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/src/RulesetInflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/src/WordInflector.php', - 'RectorPrefix202608\\Entropy\\Attributes\\RelatedTest' => $vendorDir . '/entropy/entropy/src/Attributes/RelatedTest.php', - 'RectorPrefix202608\\Entropy\\Console\\CommandRegistry' => $vendorDir . '/entropy/entropy/src/Console/CommandRegistry.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleApplication' => $vendorDir . '/entropy/entropy/src/Console/ConsoleApplication.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ConsoleTable' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ConsoleTable.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableRow' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableRow.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableView' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableView.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ViewRenderer' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ViewRenderer.php', - 'RectorPrefix202608\\Entropy\\Console\\Contract\\CommandInterface' => $vendorDir . '/entropy/entropy/src/Console/Contract/CommandInterface.php', - 'RectorPrefix202608\\Entropy\\Console\\Contract\\DefaultCommandInterface' => $vendorDir . '/entropy/entropy/src/Console/Contract/DefaultCommandInterface.php', - 'RectorPrefix202608\\Entropy\\Console\\Contract\\HiddenCommandInterface' => $vendorDir . '/entropy/entropy/src/Console/Contract/HiddenCommandInterface.php', - 'RectorPrefix202608\\Entropy\\Console\\Enum\\Color' => $vendorDir . '/entropy/entropy/src/Console/Enum/Color.php', - 'RectorPrefix202608\\Entropy\\Console\\Enum\\ExitCode' => $vendorDir . '/entropy/entropy/src/Console/Enum/ExitCode.php', - 'RectorPrefix202608\\Entropy\\Console\\Exception\\ConsoleInputMappingException' => $vendorDir . '/entropy/entropy/src/Console/Exception/ConsoleInputMappingException.php', - 'RectorPrefix202608\\Entropy\\Console\\Exception\\InvalidCommandException' => $vendorDir . '/entropy/entropy/src/Console/Exception/InvalidCommandException.php', - 'RectorPrefix202608\\Entropy\\Console\\Input\\InputParser' => $vendorDir . '/entropy/entropy/src/Console/Input/InputParser.php', - 'RectorPrefix202608\\Entropy\\Console\\Mapper\\CLIRequestMapper' => $vendorDir . '/entropy/entropy/src/Console/Mapper/CLIRequestMapper.php', - 'RectorPrefix202608\\Entropy\\Console\\Mapper\\CommandRunParametersMapper' => $vendorDir . '/entropy/entropy/src/Console/Mapper/CommandRunParametersMapper.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\CommandHelpFactory' => $vendorDir . '/entropy/entropy/src/Console/Output/CommandHelpFactory.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\HelpPrinter' => $vendorDir . '/entropy/entropy/src/Console/Output/HelpPrinter.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\OutputColorizer' => $vendorDir . '/entropy/entropy/src/Console/Output/OutputColorizer.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\OutputPrinter' => $vendorDir . '/entropy/entropy/src/Console/Output/OutputPrinter.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\ProgressBar' => $vendorDir . '/entropy/entropy/src/Console/Output/ProgressBar.php', - 'RectorPrefix202608\\Entropy\\Console\\Terminal\\Terminal' => $vendorDir . '/entropy/entropy/src/Console/Terminal/Terminal.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\Argument' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/Argument.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\ArgumentsAndOptions' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/ArgumentsAndOptions.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\CLIRequest' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/CLIRequest.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\Option' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/Option.php', - 'RectorPrefix202608\\Entropy\\Container\\Autodiscovery' => $vendorDir . '/entropy/entropy/src/Container/Autodiscovery.php', - 'RectorPrefix202608\\Entropy\\Container\\Container' => $vendorDir . '/entropy/entropy/src/Container/Container.php', - 'RectorPrefix202608\\Entropy\\Container\\Exception\\CreateServiceException' => $vendorDir . '/entropy/entropy/src/Container/Exception/CreateServiceException.php', - 'RectorPrefix202608\\Entropy\\Container\\Exception\\RegisterServiceException' => $vendorDir . '/entropy/entropy/src/Container/Exception/RegisterServiceException.php', - 'RectorPrefix202608\\Entropy\\FileSystem\\Exception\\FileSystemException' => $vendorDir . '/entropy/entropy/src/FileSystem/Exception/FileSystemException.php', - 'RectorPrefix202608\\Entropy\\FileSystem\\FileFinder' => $vendorDir . '/entropy/entropy/src/FileSystem/FileFinder.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ClassNameResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ClassNameResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ParameterDescriptionResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ParameterDescriptionResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ParameterOptionMarkerResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ParameterOptionMarkerResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ParameterTypesResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ParameterTypesResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\UseStatementsResolver' => $vendorDir . '/entropy/entropy/src/Reflection/UseStatementsResolver.php', - 'RectorPrefix202608\\Entropy\\Utils\\FileSystem' => $vendorDir . '/entropy/entropy/src/Utils/FileSystem.php', - 'RectorPrefix202608\\Entropy\\Utils\\FuzzyMatcher' => $vendorDir . '/entropy/entropy/src/Utils/FuzzyMatcher.php', - 'RectorPrefix202608\\Entropy\\Utils\\Json' => $vendorDir . '/entropy/entropy/src/Utils/Json.php', - 'RectorPrefix202608\\Entropy\\Utils\\Regex' => $vendorDir . '/entropy/entropy/src/Utils/Regex.php', - 'RectorPrefix202608\\Entropy\\Utils\\Strings' => $vendorDir . '/entropy/entropy/src/Utils/Strings.php', - 'RectorPrefix202608\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202608\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202608\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\EnvVariableFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/EnvVariableFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\ParallelisationResult' => $vendorDir . '/fidry/cpu-core-counter/src/ParallelisationResult.php', - 'RectorPrefix202608\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202608\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202608\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202608\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202608\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', - 'RectorPrefix202608\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\ShouldNotHappenException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202608\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202608\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202608\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202608\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202608\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202608\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202608\\Nette\\Utils\\DateTimeImmutable' => $vendorDir . '/nette/utils/src/Utils/DateTimeImmutable.php', - 'RectorPrefix202608\\Nette\\Utils\\FileInfo' => $vendorDir . '/nette/utils/src/Utils/FileInfo.php', - 'RectorPrefix202608\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202608\\Nette\\Utils\\Finder' => $vendorDir . '/nette/utils/src/Utils/Finder.php', - 'RectorPrefix202608\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202608\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202608\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202608\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202608\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202608\\Nette\\Utils\\ImageColor' => $vendorDir . '/nette/utils/src/Utils/ImageColor.php', - 'RectorPrefix202608\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ImageType' => $vendorDir . '/nette/utils/src/Utils/ImageType.php', - 'RectorPrefix202608\\Nette\\Utils\\Iterables' => $vendorDir . '/nette/utils/src/Utils/Iterables.php', - 'RectorPrefix202608\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202608\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202608\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202608\\Nette\\Utils\\Process' => $vendorDir . '/nette/utils/src/Utils/Process.php', - 'RectorPrefix202608\\Nette\\Utils\\ProcessFailedException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ProcessTimeoutException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202608\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202608\\Nette\\Utils\\ReflectionMethod' => $vendorDir . '/nette/utils/src/Utils/ReflectionMethod.php', - 'RectorPrefix202608\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202608\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202608\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202608\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202608\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202608\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202608\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202608\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202608\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202608\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', - 'RectorPrefix202608\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202608\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202608\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', - 'RectorPrefix202608\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', - 'RectorPrefix202608\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', - 'RectorPrefix202608\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202608\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', - 'RectorPrefix202608\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', - 'RectorPrefix202608\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202608\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202608\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202608\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202608\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', - 'RectorPrefix202608\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202608\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202608\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202608\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202608\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202608\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', - 'RectorPrefix202608\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', - 'RectorPrefix202608\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202608\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202608\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202608\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202608\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202608\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202608\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', - 'RectorPrefix202608\\React\\Promise\\Exception\\CompositeException' => $vendorDir . '/react/promise/src/Exception/CompositeException.php', - 'RectorPrefix202608\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202608\\React\\Promise\\Internal\\CancellationQueue' => $vendorDir . '/react/promise/src/Internal/CancellationQueue.php', - 'RectorPrefix202608\\React\\Promise\\Internal\\FulfilledPromise' => $vendorDir . '/react/promise/src/Internal/FulfilledPromise.php', - 'RectorPrefix202608\\React\\Promise\\Internal\\RejectedPromise' => $vendorDir . '/react/promise/src/Internal/RejectedPromise.php', - 'RectorPrefix202608\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', - 'RectorPrefix202608\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202608\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', - 'RectorPrefix202608\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202608\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', - 'RectorPrefix202608\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202608\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202608\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', - 'RectorPrefix202608\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202608\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202608\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202608\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202608\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202608\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', - 'RectorPrefix202608\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', - 'RectorPrefix202608\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202608\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', - 'RectorPrefix202608\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202608\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202608\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', - 'RectorPrefix202608\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202608\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202608\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', - 'RectorPrefix202608\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202608\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202608\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202608\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202608\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202608\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202608\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', - 'RectorPrefix202608\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202608\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\MyersDiff' => $vendorDir . '/sebastian/diff/src/MyersDiff.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\NoMiddleSnakeFoundException' => $vendorDir . '/sebastian/diff/src/Exception/NoMiddleSnakeFoundException.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\TraceableCommand' => $vendorDir . '/symfony/console/Command/TraceableCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => $vendorDir . '/symfony/console/Exception/RunCommandFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TerminalInputHelper' => $vendorDir . '/symfony/console/Helper/TerminalInputHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => $vendorDir . '/symfony/console/Messenger/RunCommandContext.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => $vendorDir . '/symfony/console/Messenger/RunCommandMessage.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractString' => $vendorDir . '/symfony/string/AbstractString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractUnicodeString' => $vendorDir . '/symfony/string/AbstractUnicodeString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\ByteString' => $vendorDir . '/symfony/string/ByteString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\CodePointString' => $vendorDir . '/symfony/string/CodePointString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/string/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/string/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Exception\\RuntimeException' => $vendorDir . '/symfony/string/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\EnglishInflector' => $vendorDir . '/symfony/string/Inflector/EnglishInflector.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\FrenchInflector' => $vendorDir . '/symfony/string/Inflector/FrenchInflector.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\InflectorInterface' => $vendorDir . '/symfony/string/Inflector/InflectorInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\SpanishInflector' => $vendorDir . '/symfony/string/Inflector/SpanishInflector.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\LazyString' => $vendorDir . '/symfony/string/LazyString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Slugger\\AsciiSlugger' => $vendorDir . '/symfony/string/Slugger/AsciiSlugger.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Slugger\\SluggerInterface' => $vendorDir . '/symfony/string/Slugger/SluggerInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\TruncateMode' => $vendorDir . '/symfony/string/TruncateMode.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\UnicodeString' => $vendorDir . '/symfony/string/UnicodeString.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ContainerAwareInterface' => $vendorDir . '/symfony/service-contracts/ContainerAwareInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ContainerProviderInterface' => $vendorDir . '/symfony/service-contracts/ContainerProviderInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceCollectionInterface' => $vendorDir . '/symfony/service-contracts/ServiceCollectionInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ClassNameResolver' => $vendorDir . '/tomasvotruba/class-leak/src/ClassNameResolver.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => $vendorDir . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => $vendorDir . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\FileSystem\\StaticRelativeFilePathHelper' => $vendorDir . '/tomasvotruba/class-leak/src/FileSystem/StaticRelativeFilePathHelper.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Filtering\\PossiblyUnusedClassesFilter' => $vendorDir . '/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Finder\\ClassNamesFinder' => $vendorDir . '/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Finder\\PhpFilesFinder' => $vendorDir . '/tomasvotruba/class-leak/src/Finder/PhpFilesFinder.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\NodeDecorator\\FullyQualifiedNameNodeDecorator' => $vendorDir . '/tomasvotruba/class-leak/src/NodeDecorator/FullyQualifiedNameNodeDecorator.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\NodeVisitor\\ClassNameNodeVisitor' => $vendorDir . '/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\NodeVisitor\\UsedClassNodeVisitor' => $vendorDir . '/tomasvotruba/class-leak/src/NodeVisitor/UsedClassNodeVisitor.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassReporter' => $vendorDir . '/tomasvotruba/class-leak/src/Reporting/UnusedClassReporter.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassesResultFactory' => $vendorDir . '/tomasvotruba/class-leak/src/Reporting/UnusedClassesResultFactory.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\UseImportsResolver' => $vendorDir . '/tomasvotruba/class-leak/src/UseImportsResolver.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\ClassNames' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/ClassNames.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\FileWithClass' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\UnusedClassesResult' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ApiDocStmtAnalyzer' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\CallReferencesFlatter' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\ParentCallReferenceResolver' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassMethodCallReferenceResolver' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassTypeDetector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CollectorMapper\\MethodCallCollectorMapper' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\AttributeCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\CallableTypeCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\ClassConstFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\FormTypeClassCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassLikeConstCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassMethodCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicStaticPropertyFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Configuration' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\ReferenceMarker' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleIdentifier' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleIdentifier.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleTips' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleTips.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\BladeRegex' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/BladeRegex.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\TwigRegex' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Finder\\TemplateFilesFinder' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\MethodTypeDetector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/MethodTypeDetector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\NodeCollectorExtractor' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\PublicClassMethodMatcher' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\LocalOnlyPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\RelativeUnusedPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassConstRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicPropertyRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateMethodCallsProvider' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateRegexFinder' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\UsedMethodAnalyzer' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Arrays' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Arrays.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Strings' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Strings.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\ClassAndMethodArrayExprs' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/ClassAndMethodArrayExprs.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\LocalAndExternalMethodCallReferences' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\MethodCallReference' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php', - 'RectorPrefix202608\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202608\\Webmozart\\Assert\\HasAssert' => $vendorDir . '/webmozart/assert/src/HasAssert.php', - 'RectorPrefix202608\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202608\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', - 'RectorPrefix202608\\Webmozart\\Assert\\PsalmPlugin' => $vendorDir . '/webmozart/assert/src/PsalmPlugin.php', + 'RectorPrefix202609\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202609\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\InvalidRegexPatternRule' => $vendorDir . '/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregMatchFlags' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchFlags.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregMatchParameterOutTypeExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregMatchTypeSpecifyingExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregReplaceCallbackClosureTypeExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\UnsafeStrictGroupsCallRule' => $vendorDir . '/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php', + 'RectorPrefix202609\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202609\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', + 'RectorPrefix202609\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', + 'RectorPrefix202609\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202609\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', + 'RectorPrefix202609\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', + 'RectorPrefix202609\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', + 'RectorPrefix202609\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', + 'RectorPrefix202609\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/src/CachedWordInflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/src/GenericLanguageInflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/src/Inflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/src/Language.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/src/LanguageInflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/src/NoopWordInflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/English/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/English/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/English/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/English/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Esperanto/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/French/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/French/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/French/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/French/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Italian/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/src/Rules/Pattern.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/src/Rules/Patterns.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/src/Rules/Ruleset.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Spanish/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/src/Rules/Substitution.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/src/Rules/Substitutions.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/src/Rules/Transformation.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/src/Rules/Transformations.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/src/Rules/Turkish/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/src/Rules/Word.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/src/RulesetInflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/src/WordInflector.php', + 'RectorPrefix202609\\Entropy\\Attributes\\RelatedTest' => $vendorDir . '/entropy/entropy/src/Attributes/RelatedTest.php', + 'RectorPrefix202609\\Entropy\\Console\\CommandRegistry' => $vendorDir . '/entropy/entropy/src/Console/CommandRegistry.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleApplication' => $vendorDir . '/entropy/entropy/src/Console/ConsoleApplication.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ConsoleTable' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ConsoleTable.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableRow' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableRow.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableView' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableView.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ViewRenderer' => $vendorDir . '/entropy/entropy/src/Console/ConsoleTable/ViewRenderer.php', + 'RectorPrefix202609\\Entropy\\Console\\Contract\\CommandInterface' => $vendorDir . '/entropy/entropy/src/Console/Contract/CommandInterface.php', + 'RectorPrefix202609\\Entropy\\Console\\Contract\\DefaultCommandInterface' => $vendorDir . '/entropy/entropy/src/Console/Contract/DefaultCommandInterface.php', + 'RectorPrefix202609\\Entropy\\Console\\Contract\\HiddenCommandInterface' => $vendorDir . '/entropy/entropy/src/Console/Contract/HiddenCommandInterface.php', + 'RectorPrefix202609\\Entropy\\Console\\Enum\\Color' => $vendorDir . '/entropy/entropy/src/Console/Enum/Color.php', + 'RectorPrefix202609\\Entropy\\Console\\Enum\\ExitCode' => $vendorDir . '/entropy/entropy/src/Console/Enum/ExitCode.php', + 'RectorPrefix202609\\Entropy\\Console\\Exception\\ConsoleInputMappingException' => $vendorDir . '/entropy/entropy/src/Console/Exception/ConsoleInputMappingException.php', + 'RectorPrefix202609\\Entropy\\Console\\Exception\\InvalidCommandException' => $vendorDir . '/entropy/entropy/src/Console/Exception/InvalidCommandException.php', + 'RectorPrefix202609\\Entropy\\Console\\Input\\InputParser' => $vendorDir . '/entropy/entropy/src/Console/Input/InputParser.php', + 'RectorPrefix202609\\Entropy\\Console\\Mapper\\CLIRequestMapper' => $vendorDir . '/entropy/entropy/src/Console/Mapper/CLIRequestMapper.php', + 'RectorPrefix202609\\Entropy\\Console\\Mapper\\CommandRunParametersMapper' => $vendorDir . '/entropy/entropy/src/Console/Mapper/CommandRunParametersMapper.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\CommandHelpFactory' => $vendorDir . '/entropy/entropy/src/Console/Output/CommandHelpFactory.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\HelpPrinter' => $vendorDir . '/entropy/entropy/src/Console/Output/HelpPrinter.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\OutputColorizer' => $vendorDir . '/entropy/entropy/src/Console/Output/OutputColorizer.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\OutputPrinter' => $vendorDir . '/entropy/entropy/src/Console/Output/OutputPrinter.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\ProgressBar' => $vendorDir . '/entropy/entropy/src/Console/Output/ProgressBar.php', + 'RectorPrefix202609\\Entropy\\Console\\Terminal\\Terminal' => $vendorDir . '/entropy/entropy/src/Console/Terminal/Terminal.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\Argument' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/Argument.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\ArgumentsAndOptions' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/ArgumentsAndOptions.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\CLIRequest' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/CLIRequest.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\Option' => $vendorDir . '/entropy/entropy/src/Console/ValueObject/Option.php', + 'RectorPrefix202609\\Entropy\\Container\\Autodiscovery' => $vendorDir . '/entropy/entropy/src/Container/Autodiscovery.php', + 'RectorPrefix202609\\Entropy\\Container\\Container' => $vendorDir . '/entropy/entropy/src/Container/Container.php', + 'RectorPrefix202609\\Entropy\\Container\\Exception\\CreateServiceException' => $vendorDir . '/entropy/entropy/src/Container/Exception/CreateServiceException.php', + 'RectorPrefix202609\\Entropy\\Container\\Exception\\RegisterServiceException' => $vendorDir . '/entropy/entropy/src/Container/Exception/RegisterServiceException.php', + 'RectorPrefix202609\\Entropy\\FileSystem\\Exception\\FileSystemException' => $vendorDir . '/entropy/entropy/src/FileSystem/Exception/FileSystemException.php', + 'RectorPrefix202609\\Entropy\\FileSystem\\FileFinder' => $vendorDir . '/entropy/entropy/src/FileSystem/FileFinder.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ClassNameResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ClassNameResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ParameterDescriptionResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ParameterDescriptionResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ParameterOptionMarkerResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ParameterOptionMarkerResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ParameterTypesResolver' => $vendorDir . '/entropy/entropy/src/Reflection/ParameterTypesResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\UseStatementsResolver' => $vendorDir . '/entropy/entropy/src/Reflection/UseStatementsResolver.php', + 'RectorPrefix202609\\Entropy\\Utils\\FileSystem' => $vendorDir . '/entropy/entropy/src/Utils/FileSystem.php', + 'RectorPrefix202609\\Entropy\\Utils\\FuzzyMatcher' => $vendorDir . '/entropy/entropy/src/Utils/FuzzyMatcher.php', + 'RectorPrefix202609\\Entropy\\Utils\\Json' => $vendorDir . '/entropy/entropy/src/Utils/Json.php', + 'RectorPrefix202609\\Entropy\\Utils\\Regex' => $vendorDir . '/entropy/entropy/src/Utils/Regex.php', + 'RectorPrefix202609\\Entropy\\Utils\\Strings' => $vendorDir . '/entropy/entropy/src/Utils/Strings.php', + 'RectorPrefix202609\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202609\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202609\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\EnvVariableFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/EnvVariableFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\ParallelisationResult' => $vendorDir . '/fidry/cpu-core-counter/src/ParallelisationResult.php', + 'RectorPrefix202609\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202609\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202609\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202609\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202609\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', + 'RectorPrefix202609\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\ShouldNotHappenException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202609\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202609\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202609\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202609\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202609\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202609\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202609\\Nette\\Utils\\DateTimeImmutable' => $vendorDir . '/nette/utils/src/Utils/DateTimeImmutable.php', + 'RectorPrefix202609\\Nette\\Utils\\FileInfo' => $vendorDir . '/nette/utils/src/Utils/FileInfo.php', + 'RectorPrefix202609\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202609\\Nette\\Utils\\Finder' => $vendorDir . '/nette/utils/src/Utils/Finder.php', + 'RectorPrefix202609\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202609\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202609\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202609\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202609\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202609\\Nette\\Utils\\ImageColor' => $vendorDir . '/nette/utils/src/Utils/ImageColor.php', + 'RectorPrefix202609\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ImageType' => $vendorDir . '/nette/utils/src/Utils/ImageType.php', + 'RectorPrefix202609\\Nette\\Utils\\Iterables' => $vendorDir . '/nette/utils/src/Utils/Iterables.php', + 'RectorPrefix202609\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202609\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202609\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202609\\Nette\\Utils\\Process' => $vendorDir . '/nette/utils/src/Utils/Process.php', + 'RectorPrefix202609\\Nette\\Utils\\ProcessFailedException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ProcessTimeoutException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202609\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202609\\Nette\\Utils\\ReflectionMethod' => $vendorDir . '/nette/utils/src/Utils/ReflectionMethod.php', + 'RectorPrefix202609\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202609\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202609\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202609\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202609\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202609\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202609\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202609\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202609\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202609\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', + 'RectorPrefix202609\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202609\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202609\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', + 'RectorPrefix202609\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', + 'RectorPrefix202609\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', + 'RectorPrefix202609\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202609\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', + 'RectorPrefix202609\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', + 'RectorPrefix202609\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202609\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202609\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202609\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202609\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', + 'RectorPrefix202609\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202609\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202609\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202609\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202609\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202609\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', + 'RectorPrefix202609\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', + 'RectorPrefix202609\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202609\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202609\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202609\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202609\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202609\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202609\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', + 'RectorPrefix202609\\React\\Promise\\Exception\\CompositeException' => $vendorDir . '/react/promise/src/Exception/CompositeException.php', + 'RectorPrefix202609\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202609\\React\\Promise\\Internal\\CancellationQueue' => $vendorDir . '/react/promise/src/Internal/CancellationQueue.php', + 'RectorPrefix202609\\React\\Promise\\Internal\\FulfilledPromise' => $vendorDir . '/react/promise/src/Internal/FulfilledPromise.php', + 'RectorPrefix202609\\React\\Promise\\Internal\\RejectedPromise' => $vendorDir . '/react/promise/src/Internal/RejectedPromise.php', + 'RectorPrefix202609\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', + 'RectorPrefix202609\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202609\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', + 'RectorPrefix202609\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202609\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', + 'RectorPrefix202609\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202609\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202609\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', + 'RectorPrefix202609\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202609\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202609\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202609\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202609\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202609\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', + 'RectorPrefix202609\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', + 'RectorPrefix202609\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202609\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', + 'RectorPrefix202609\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202609\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202609\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', + 'RectorPrefix202609\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202609\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202609\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', + 'RectorPrefix202609\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202609\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202609\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202609\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202609\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202609\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202609\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', + 'RectorPrefix202609\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202609\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\MyersDiff' => $vendorDir . '/sebastian/diff/src/MyersDiff.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\NoMiddleSnakeFoundException' => $vendorDir . '/sebastian/diff/src/Exception/NoMiddleSnakeFoundException.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\TraceableCommand' => $vendorDir . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => $vendorDir . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TerminalInputHelper' => $vendorDir . '/symfony/console/Helper/TerminalInputHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => $vendorDir . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => $vendorDir . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\AbstractString' => $vendorDir . '/symfony/string/AbstractString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\AbstractUnicodeString' => $vendorDir . '/symfony/string/AbstractUnicodeString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\ByteString' => $vendorDir . '/symfony/string/ByteString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\CodePointString' => $vendorDir . '/symfony/string/CodePointString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/string/Exception/ExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/string/Exception/InvalidArgumentException.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Exception\\RuntimeException' => $vendorDir . '/symfony/string/Exception/RuntimeException.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\EnglishInflector' => $vendorDir . '/symfony/string/Inflector/EnglishInflector.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\FrenchInflector' => $vendorDir . '/symfony/string/Inflector/FrenchInflector.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\InflectorInterface' => $vendorDir . '/symfony/string/Inflector/InflectorInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\SpanishInflector' => $vendorDir . '/symfony/string/Inflector/SpanishInflector.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\LazyString' => $vendorDir . '/symfony/string/LazyString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Slugger\\AsciiSlugger' => $vendorDir . '/symfony/string/Slugger/AsciiSlugger.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Slugger\\SluggerInterface' => $vendorDir . '/symfony/string/Slugger/SluggerInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\TruncateMode' => $vendorDir . '/symfony/string/TruncateMode.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\UnicodeString' => $vendorDir . '/symfony/string/UnicodeString.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ContainerAwareInterface' => $vendorDir . '/symfony/service-contracts/ContainerAwareInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ContainerProviderInterface' => $vendorDir . '/symfony/service-contracts/ContainerProviderInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceCollectionInterface' => $vendorDir . '/symfony/service-contracts/ServiceCollectionInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ClassNameResolver' => $vendorDir . '/tomasvotruba/class-leak/src/ClassNameResolver.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => $vendorDir . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => $vendorDir . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\FileSystem\\StaticRelativeFilePathHelper' => $vendorDir . '/tomasvotruba/class-leak/src/FileSystem/StaticRelativeFilePathHelper.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Filtering\\PossiblyUnusedClassesFilter' => $vendorDir . '/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Finder\\ClassNamesFinder' => $vendorDir . '/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Finder\\PhpFilesFinder' => $vendorDir . '/tomasvotruba/class-leak/src/Finder/PhpFilesFinder.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeDecorator\\FullyQualifiedNameNodeDecorator' => $vendorDir . '/tomasvotruba/class-leak/src/NodeDecorator/FullyQualifiedNameNodeDecorator.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\ClassNameNodeVisitor' => $vendorDir . '/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\UsedClassNodeVisitor' => $vendorDir . '/tomasvotruba/class-leak/src/NodeVisitor/UsedClassNodeVisitor.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassReporter' => $vendorDir . '/tomasvotruba/class-leak/src/Reporting/UnusedClassReporter.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassesResultFactory' => $vendorDir . '/tomasvotruba/class-leak/src/Reporting/UnusedClassesResultFactory.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\UseImportsResolver' => $vendorDir . '/tomasvotruba/class-leak/src/UseImportsResolver.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ValueObject\\ClassNames' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/ClassNames.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ValueObject\\FileWithClass' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ValueObject\\UnusedClassesResult' => $vendorDir . '/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ApiDocStmtAnalyzer' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\CallReferece\\CallReferencesFlatter' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\CallReferece\\ParentCallReferenceResolver' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ClassMethodCallReferenceResolver' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ClassTypeDetector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\CollectorMapper\\MethodCallCollectorMapper' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\AttributeCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\CallableTypeCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\ClassConstFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\FormTypeClassCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassLikeConstCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassMethodCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicStaticPropertyFetchCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallableCollector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Configuration' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\ReferenceMarker' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\RuleIdentifier' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleIdentifier.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\RuleTips' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleTips.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\Template\\BladeRegex' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/BladeRegex.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\Template\\TwigRegex' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Finder\\TemplateFilesFinder' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\MethodTypeDetector' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/MethodTypeDetector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\NodeCollectorExtractor' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\PublicClassMethodMatcher' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\LocalOnlyPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\RelativeUnusedPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassConstRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassMethodRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicPropertyRule' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Templates\\TemplateMethodCallsProvider' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Templates\\TemplateRegexFinder' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Templates\\UsedMethodAnalyzer' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Utils\\Arrays' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Arrays.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Utils\\Strings' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Strings.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ValueObject\\ClassAndMethodArrayExprs' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/ClassAndMethodArrayExprs.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ValueObject\\LocalAndExternalMethodCallReferences' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ValueObject\\MethodCallReference' => $vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php', + 'RectorPrefix202609\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202609\\Webmozart\\Assert\\HasAssert' => $vendorDir . '/webmozart/assert/src/HasAssert.php', + 'RectorPrefix202609\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202609\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202609\\Webmozart\\Assert\\PsalmPlugin' => $vendorDir . '/webmozart/assert/src/PsalmPlugin.php', 'Rector\\Application\\ApplicationFileProcessor' => $baseDir . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Application\\ChangedNodeScopeRefresher' => $baseDir . '/src/Application/ChangedNodeScopeRefresher.php', 'Rector\\Application\\FileProcessor' => $baseDir . '/src/Application/FileProcessor.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 9fce8ef6aca..b490e871aa6 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -15,33 +15,33 @@ 'Rector\\PHPUnit\\' => array($vendorDir . '/rector/rector-phpunit/src', $vendorDir . '/rector/rector-phpunit/rules'), 'Rector\\Doctrine\\' => array($vendorDir . '/rector/rector-doctrine/src', $vendorDir . '/rector/rector-doctrine/rules'), 'Rector\\' => array($baseDir . '/rules', $baseDir . '/src', $vendorDir . '/rector/rector-downgrade-php/src', $vendorDir . '/rector/rector-downgrade-php/rules'), - 'RectorPrefix202608\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\' => array($vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src'), - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => array($vendorDir . '/tomasvotruba/class-leak/src'), - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), - 'RectorPrefix202608\\Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), - 'RectorPrefix202608\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), - 'RectorPrefix202608\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'RectorPrefix202608\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), - 'RectorPrefix202608\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), - 'RectorPrefix202608\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), - 'RectorPrefix202608\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), - 'RectorPrefix202608\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), - 'RectorPrefix202608\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), - 'RectorPrefix202608\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), - 'RectorPrefix202608\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), - 'RectorPrefix202608\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'RectorPrefix202608\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), - 'RectorPrefix202608\\Nette\\' => array($vendorDir . '/nette/utils/src'), - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), - 'RectorPrefix202608\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), - 'RectorPrefix202608\\Entropy\\' => array($vendorDir . '/entropy/entropy/src'), - 'RectorPrefix202608\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/src'), - 'RectorPrefix202608\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), - 'RectorPrefix202608\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), - 'RectorPrefix202608\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), - 'RectorPrefix202608\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), + 'RectorPrefix202609\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\' => array($vendorDir . '/tomasvotruba/class-leak/packages/unused-public/src'), + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\' => array($vendorDir . '/tomasvotruba/class-leak/src'), + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), + 'RectorPrefix202609\\Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), + 'RectorPrefix202609\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), + 'RectorPrefix202609\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), + 'RectorPrefix202609\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), + 'RectorPrefix202609\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), + 'RectorPrefix202609\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), + 'RectorPrefix202609\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), + 'RectorPrefix202609\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), + 'RectorPrefix202609\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), + 'RectorPrefix202609\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), + 'RectorPrefix202609\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), + 'RectorPrefix202609\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'RectorPrefix202609\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), + 'RectorPrefix202609\\Nette\\' => array($vendorDir . '/nette/utils/src'), + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), + 'RectorPrefix202609\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), + 'RectorPrefix202609\\Entropy\\' => array($vendorDir . '/entropy/entropy/src'), + 'RectorPrefix202609\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/src'), + 'RectorPrefix202609\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), + 'RectorPrefix202609\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), + 'RectorPrefix202609\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), + 'RectorPrefix202609\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'PHPStan\\PhpDocParser\\' => array($vendorDir . '/phpstan/phpdoc-parser/src'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index ca6e04bb4f5..13242b4dfdc 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -29,33 +29,33 @@ class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 'Rector\\PHPUnit\\' => 15, 'Rector\\Doctrine\\' => 16, 'Rector\\' => 7, - 'RectorPrefix202608\\Webmozart\\Assert\\' => 36, - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\' => 45, - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => 42, - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => 45, - 'RectorPrefix202608\\Symfony\\Component\\String\\' => 44, - 'RectorPrefix202608\\Symfony\\Component\\Finder\\' => 44, - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\' => 48, - 'RectorPrefix202608\\Symfony\\Component\\Console\\' => 45, - 'RectorPrefix202608\\React\\Stream\\' => 32, - 'RectorPrefix202608\\React\\Socket\\' => 32, - 'RectorPrefix202608\\React\\Promise\\' => 33, - 'RectorPrefix202608\\React\\EventLoop\\' => 35, - 'RectorPrefix202608\\React\\Dns\\' => 29, - 'RectorPrefix202608\\React\\ChildProcess\\' => 38, - 'RectorPrefix202608\\React\\Cache\\' => 31, - 'RectorPrefix202608\\Psr\\Log\\' => 27, - 'RectorPrefix202608\\Psr\\Container\\' => 33, - 'RectorPrefix202608\\OndraM\\CiDetector\\' => 37, - 'RectorPrefix202608\\Nette\\' => 25, - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\' => 40, - 'RectorPrefix202608\\Evenement\\' => 29, - 'RectorPrefix202608\\Entropy\\' => 27, - 'RectorPrefix202608\\Doctrine\\Inflector\\' => 38, - 'RectorPrefix202608\\Composer\\XdebugHandler\\' => 42, - 'RectorPrefix202608\\Composer\\Semver\\' => 35, - 'RectorPrefix202608\\Composer\\Pcre\\' => 33, - 'RectorPrefix202608\\Clue\\React\\NDJson\\' => 37, + 'RectorPrefix202609\\Webmozart\\Assert\\' => 36, + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\' => 45, + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\' => 42, + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\' => 45, + 'RectorPrefix202609\\Symfony\\Component\\String\\' => 44, + 'RectorPrefix202609\\Symfony\\Component\\Finder\\' => 44, + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\' => 48, + 'RectorPrefix202609\\Symfony\\Component\\Console\\' => 45, + 'RectorPrefix202609\\React\\Stream\\' => 32, + 'RectorPrefix202609\\React\\Socket\\' => 32, + 'RectorPrefix202609\\React\\Promise\\' => 33, + 'RectorPrefix202609\\React\\EventLoop\\' => 35, + 'RectorPrefix202609\\React\\Dns\\' => 29, + 'RectorPrefix202609\\React\\ChildProcess\\' => 38, + 'RectorPrefix202609\\React\\Cache\\' => 31, + 'RectorPrefix202609\\Psr\\Log\\' => 27, + 'RectorPrefix202609\\Psr\\Container\\' => 33, + 'RectorPrefix202609\\OndraM\\CiDetector\\' => 37, + 'RectorPrefix202609\\Nette\\' => 25, + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\' => 40, + 'RectorPrefix202609\\Evenement\\' => 29, + 'RectorPrefix202609\\Entropy\\' => 27, + 'RectorPrefix202609\\Doctrine\\Inflector\\' => 38, + 'RectorPrefix202609\\Composer\\XdebugHandler\\' => 42, + 'RectorPrefix202609\\Composer\\Semver\\' => 35, + 'RectorPrefix202609\\Composer\\Pcre\\' => 33, + 'RectorPrefix202609\\Clue\\React\\NDJson\\' => 37, ), 'P' => array ( @@ -107,111 +107,111 @@ class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 2 => __DIR__ . '/..' . '/rector/rector-downgrade-php/src', 3 => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules', ), - 'RectorPrefix202608\\Webmozart\\Assert\\' => + 'RectorPrefix202609\\Webmozart\\Assert\\' => array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\' => + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\' => array ( 0 => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src', ), - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\' => + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\' => array ( 0 => __DIR__ . '/..' . '/tomasvotruba/class-leak/src', ), - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\' => + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\' => array ( 0 => __DIR__ . '/..' . '/symfony/service-contracts', ), - 'RectorPrefix202608\\Symfony\\Component\\String\\' => + 'RectorPrefix202609\\Symfony\\Component\\String\\' => array ( 0 => __DIR__ . '/..' . '/symfony/string', ), - 'RectorPrefix202608\\Symfony\\Component\\Finder\\' => + 'RectorPrefix202609\\Symfony\\Component\\Finder\\' => array ( 0 => __DIR__ . '/..' . '/symfony/finder', ), - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\' => + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\' => array ( 0 => __DIR__ . '/..' . '/symfony/filesystem', ), - 'RectorPrefix202608\\Symfony\\Component\\Console\\' => + 'RectorPrefix202609\\Symfony\\Component\\Console\\' => array ( 0 => __DIR__ . '/..' . '/symfony/console', ), - 'RectorPrefix202608\\React\\Stream\\' => + 'RectorPrefix202609\\React\\Stream\\' => array ( 0 => __DIR__ . '/..' . '/react/stream/src', ), - 'RectorPrefix202608\\React\\Socket\\' => + 'RectorPrefix202609\\React\\Socket\\' => array ( 0 => __DIR__ . '/..' . '/react/socket/src', ), - 'RectorPrefix202608\\React\\Promise\\' => + 'RectorPrefix202609\\React\\Promise\\' => array ( 0 => __DIR__ . '/..' . '/react/promise/src', ), - 'RectorPrefix202608\\React\\EventLoop\\' => + 'RectorPrefix202609\\React\\EventLoop\\' => array ( 0 => __DIR__ . '/..' . '/react/event-loop/src', ), - 'RectorPrefix202608\\React\\Dns\\' => + 'RectorPrefix202609\\React\\Dns\\' => array ( 0 => __DIR__ . '/..' . '/react/dns/src', ), - 'RectorPrefix202608\\React\\ChildProcess\\' => + 'RectorPrefix202609\\React\\ChildProcess\\' => array ( 0 => __DIR__ . '/..' . '/react/child-process/src', ), - 'RectorPrefix202608\\React\\Cache\\' => + 'RectorPrefix202609\\React\\Cache\\' => array ( 0 => __DIR__ . '/..' . '/react/cache/src', ), - 'RectorPrefix202608\\Psr\\Log\\' => + 'RectorPrefix202609\\Psr\\Log\\' => array ( 0 => __DIR__ . '/..' . '/psr/log/src', ), - 'RectorPrefix202608\\Psr\\Container\\' => + 'RectorPrefix202609\\Psr\\Container\\' => array ( 0 => __DIR__ . '/..' . '/psr/container/src', ), - 'RectorPrefix202608\\OndraM\\CiDetector\\' => + 'RectorPrefix202609\\OndraM\\CiDetector\\' => array ( 0 => __DIR__ . '/..' . '/ondram/ci-detector/src', ), - 'RectorPrefix202608\\Nette\\' => + 'RectorPrefix202609\\Nette\\' => array ( 0 => __DIR__ . '/..' . '/nette/utils/src', ), - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\' => + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\' => array ( 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src', ), - 'RectorPrefix202608\\Evenement\\' => + 'RectorPrefix202609\\Evenement\\' => array ( 0 => __DIR__ . '/..' . '/evenement/evenement/src', ), - 'RectorPrefix202608\\Entropy\\' => + 'RectorPrefix202609\\Entropy\\' => array ( 0 => __DIR__ . '/..' . '/entropy/entropy/src', ), - 'RectorPrefix202608\\Doctrine\\Inflector\\' => + 'RectorPrefix202609\\Doctrine\\Inflector\\' => array ( 0 => __DIR__ . '/..' . '/doctrine/inflector/src', ), - 'RectorPrefix202608\\Composer\\XdebugHandler\\' => + 'RectorPrefix202609\\Composer\\XdebugHandler\\' => array ( 0 => __DIR__ . '/..' . '/composer/xdebug-handler/src', ), - 'RectorPrefix202608\\Composer\\Semver\\' => + 'RectorPrefix202609\\Composer\\Semver\\' => array ( 0 => __DIR__ . '/..' . '/composer/semver/src', ), - 'RectorPrefix202608\\Composer\\Pcre\\' => + 'RectorPrefix202609\\Composer\\Pcre\\' => array ( 0 => __DIR__ . '/..' . '/composer/pcre/src', ), - 'RectorPrefix202608\\Clue\\React\\NDJson\\' => + 'RectorPrefix202609\\Clue\\React\\NDJson\\' => array ( 0 => __DIR__ . '/..' . '/clue/ndjson-react/src', ), @@ -587,573 +587,573 @@ class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', 'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', 'PhpParser\\Token' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Token.php', - 'RectorPrefix202608\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202608\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\InvalidRegexPatternRule' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregMatchFlags' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregMatchFlags.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregMatchParameterOutTypeExtension' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregMatchTypeSpecifyingExtension' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\PregReplaceCallbackClosureTypeExtension' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php', - 'RectorPrefix202608\\Composer\\Pcre\\PHPStan\\UnsafeStrictGroupsCallRule' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php', - 'RectorPrefix202608\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202608\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', - 'RectorPrefix202608\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', - 'RectorPrefix202608\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202608\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202608\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', - 'RectorPrefix202608\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202608\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', - 'RectorPrefix202608\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', - 'RectorPrefix202608\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', - 'RectorPrefix202608\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202608\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/CachedWordInflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/GenericLanguageInflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/src/Inflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/src/Language.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/LanguageInflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/NoopWordInflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Esperanto\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Italian\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Pattern.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Patterns.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Ruleset.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Substitution.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Substitutions.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Transformation.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Transformations.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/Inflectible.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/Rules.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/Uninflected.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Word.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/RulesetInflector.php', - 'RectorPrefix202608\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/WordInflector.php', - 'RectorPrefix202608\\Entropy\\Attributes\\RelatedTest' => __DIR__ . '/..' . '/entropy/entropy/src/Attributes/RelatedTest.php', - 'RectorPrefix202608\\Entropy\\Console\\CommandRegistry' => __DIR__ . '/..' . '/entropy/entropy/src/Console/CommandRegistry.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleApplication' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleApplication.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ConsoleTable' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ConsoleTable.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableRow' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableRow.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableView' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableView.php', - 'RectorPrefix202608\\Entropy\\Console\\ConsoleTable\\ViewRenderer' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ViewRenderer.php', - 'RectorPrefix202608\\Entropy\\Console\\Contract\\CommandInterface' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Contract/CommandInterface.php', - 'RectorPrefix202608\\Entropy\\Console\\Contract\\DefaultCommandInterface' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Contract/DefaultCommandInterface.php', - 'RectorPrefix202608\\Entropy\\Console\\Contract\\HiddenCommandInterface' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Contract/HiddenCommandInterface.php', - 'RectorPrefix202608\\Entropy\\Console\\Enum\\Color' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Enum/Color.php', - 'RectorPrefix202608\\Entropy\\Console\\Enum\\ExitCode' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Enum/ExitCode.php', - 'RectorPrefix202608\\Entropy\\Console\\Exception\\ConsoleInputMappingException' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Exception/ConsoleInputMappingException.php', - 'RectorPrefix202608\\Entropy\\Console\\Exception\\InvalidCommandException' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Exception/InvalidCommandException.php', - 'RectorPrefix202608\\Entropy\\Console\\Input\\InputParser' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Input/InputParser.php', - 'RectorPrefix202608\\Entropy\\Console\\Mapper\\CLIRequestMapper' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Mapper/CLIRequestMapper.php', - 'RectorPrefix202608\\Entropy\\Console\\Mapper\\CommandRunParametersMapper' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Mapper/CommandRunParametersMapper.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\CommandHelpFactory' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/CommandHelpFactory.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\HelpPrinter' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/HelpPrinter.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\OutputColorizer' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/OutputColorizer.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\OutputPrinter' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/OutputPrinter.php', - 'RectorPrefix202608\\Entropy\\Console\\Output\\ProgressBar' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/ProgressBar.php', - 'RectorPrefix202608\\Entropy\\Console\\Terminal\\Terminal' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Terminal/Terminal.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\Argument' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/Argument.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\ArgumentsAndOptions' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/ArgumentsAndOptions.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\CLIRequest' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/CLIRequest.php', - 'RectorPrefix202608\\Entropy\\Console\\ValueObject\\Option' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/Option.php', - 'RectorPrefix202608\\Entropy\\Container\\Autodiscovery' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Autodiscovery.php', - 'RectorPrefix202608\\Entropy\\Container\\Container' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Container.php', - 'RectorPrefix202608\\Entropy\\Container\\Exception\\CreateServiceException' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Exception/CreateServiceException.php', - 'RectorPrefix202608\\Entropy\\Container\\Exception\\RegisterServiceException' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Exception/RegisterServiceException.php', - 'RectorPrefix202608\\Entropy\\FileSystem\\Exception\\FileSystemException' => __DIR__ . '/..' . '/entropy/entropy/src/FileSystem/Exception/FileSystemException.php', - 'RectorPrefix202608\\Entropy\\FileSystem\\FileFinder' => __DIR__ . '/..' . '/entropy/entropy/src/FileSystem/FileFinder.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ClassNameResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ClassNameResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ParameterDescriptionResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ParameterDescriptionResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ParameterOptionMarkerResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ParameterOptionMarkerResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\ParameterTypesResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ParameterTypesResolver.php', - 'RectorPrefix202608\\Entropy\\Reflection\\UseStatementsResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/UseStatementsResolver.php', - 'RectorPrefix202608\\Entropy\\Utils\\FileSystem' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/FileSystem.php', - 'RectorPrefix202608\\Entropy\\Utils\\FuzzyMatcher' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/FuzzyMatcher.php', - 'RectorPrefix202608\\Entropy\\Utils\\Json' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/Json.php', - 'RectorPrefix202608\\Entropy\\Utils\\Regex' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/Regex.php', - 'RectorPrefix202608\\Entropy\\Utils\\Strings' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/Strings.php', - 'RectorPrefix202608\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202608\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202608\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\EnvVariableFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/EnvVariableFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202608\\Fidry\\CpuCoreCounter\\ParallelisationResult' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/ParallelisationResult.php', - 'RectorPrefix202608\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202608\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202608\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202608\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202608\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', - 'RectorPrefix202608\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\ShouldNotHappenException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202608\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202608\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202608\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202608\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202608\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202608\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202608\\Nette\\Utils\\DateTimeImmutable' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTimeImmutable.php', - 'RectorPrefix202608\\Nette\\Utils\\FileInfo' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileInfo.php', - 'RectorPrefix202608\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202608\\Nette\\Utils\\Finder' => __DIR__ . '/..' . '/nette/utils/src/Utils/Finder.php', - 'RectorPrefix202608\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202608\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202608\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202608\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202608\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202608\\Nette\\Utils\\ImageColor' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageColor.php', - 'RectorPrefix202608\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ImageType' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageType.php', - 'RectorPrefix202608\\Nette\\Utils\\Iterables' => __DIR__ . '/..' . '/nette/utils/src/Utils/Iterables.php', - 'RectorPrefix202608\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202608\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202608\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202608\\Nette\\Utils\\Process' => __DIR__ . '/..' . '/nette/utils/src/Utils/Process.php', - 'RectorPrefix202608\\Nette\\Utils\\ProcessFailedException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\ProcessTimeoutException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202608\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202608\\Nette\\Utils\\ReflectionMethod' => __DIR__ . '/..' . '/nette/utils/src/Utils/ReflectionMethod.php', - 'RectorPrefix202608\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202608\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202608\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202608\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202608\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202608\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202608\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202608\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202608\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202608\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202608\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202608\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202608\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', - 'RectorPrefix202608\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202608\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202608\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', - 'RectorPrefix202608\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', - 'RectorPrefix202608\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', - 'RectorPrefix202608\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202608\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', - 'RectorPrefix202608\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', - 'RectorPrefix202608\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202608\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202608\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202608\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202608\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', - 'RectorPrefix202608\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202608\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202608\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202608\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202608\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202608\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202608\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', - 'RectorPrefix202608\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', - 'RectorPrefix202608\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202608\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202608\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202608\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202608\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202608\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202608\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202608\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', - 'RectorPrefix202608\\React\\Promise\\Exception\\CompositeException' => __DIR__ . '/..' . '/react/promise/src/Exception/CompositeException.php', - 'RectorPrefix202608\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202608\\React\\Promise\\Internal\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/Internal/CancellationQueue.php', - 'RectorPrefix202608\\React\\Promise\\Internal\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/Internal/FulfilledPromise.php', - 'RectorPrefix202608\\React\\Promise\\Internal\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/Internal/RejectedPromise.php', - 'RectorPrefix202608\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', - 'RectorPrefix202608\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202608\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', - 'RectorPrefix202608\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202608\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', - 'RectorPrefix202608\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202608\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202608\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', - 'RectorPrefix202608\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202608\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202608\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202608\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202608\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202608\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', - 'RectorPrefix202608\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', - 'RectorPrefix202608\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202608\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', - 'RectorPrefix202608\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202608\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202608\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', - 'RectorPrefix202608\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202608\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202608\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', - 'RectorPrefix202608\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202608\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202608\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202608\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202608\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202608\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202608\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', - 'RectorPrefix202608\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202608\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\MyersDiff' => __DIR__ . '/..' . '/sebastian/diff/src/MyersDiff.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\NoMiddleSnakeFoundException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/NoMiddleSnakeFoundException.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202608\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Command\\TraceableCommand' => __DIR__ . '/..' . '/symfony/console/Command/TraceableCommand.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/RunCommandFailedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Helper\\TerminalInputHelper' => __DIR__ . '/..' . '/symfony/console/Helper/TerminalInputHelper.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandContext.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessage.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202608\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202608\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202608\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractString' => __DIR__ . '/..' . '/symfony/string/AbstractString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\AbstractUnicodeString' => __DIR__ . '/..' . '/symfony/string/AbstractUnicodeString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\ByteString' => __DIR__ . '/..' . '/symfony/string/ByteString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\CodePointString' => __DIR__ . '/..' . '/symfony/string/CodePointString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/string/Exception/ExceptionInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/string/Exception/InvalidArgumentException.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/string/Exception/RuntimeException.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\EnglishInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/EnglishInflector.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\FrenchInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/FrenchInflector.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\InflectorInterface' => __DIR__ . '/..' . '/symfony/string/Inflector/InflectorInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Inflector\\SpanishInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/SpanishInflector.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\LazyString' => __DIR__ . '/..' . '/symfony/string/LazyString.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Slugger\\AsciiSlugger' => __DIR__ . '/..' . '/symfony/string/Slugger/AsciiSlugger.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\Slugger\\SluggerInterface' => __DIR__ . '/..' . '/symfony/string/Slugger/SluggerInterface.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\TruncateMode' => __DIR__ . '/..' . '/symfony/string/TruncateMode.php', - 'RectorPrefix202608\\Symfony\\Component\\String\\UnicodeString' => __DIR__ . '/..' . '/symfony/string/UnicodeString.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ContainerAwareInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ContainerAwareInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ContainerProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ContainerProviderInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceCollectionInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceCollectionInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', - 'RectorPrefix202608\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ClassNameResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ClassNameResolver.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\FileSystem\\StaticRelativeFilePathHelper' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/FileSystem/StaticRelativeFilePathHelper.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Filtering\\PossiblyUnusedClassesFilter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Finder\\ClassNamesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Finder\\PhpFilesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Finder/PhpFilesFinder.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\NodeDecorator\\FullyQualifiedNameNodeDecorator' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeDecorator/FullyQualifiedNameNodeDecorator.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\NodeVisitor\\ClassNameNodeVisitor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\NodeVisitor\\UsedClassNodeVisitor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeVisitor/UsedClassNodeVisitor.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassReporter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Reporting/UnusedClassReporter.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassesResultFactory' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Reporting/UnusedClassesResultFactory.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\UseImportsResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/UseImportsResolver.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\ClassNames' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/ClassNames.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\FileWithClass' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php', - 'RectorPrefix202608\\TomasVotruba\\ClassLeak\\ValueObject\\UnusedClassesResult' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ApiDocStmtAnalyzer' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\CallReferencesFlatter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CallReferece\\ParentCallReferenceResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassMethodCallReferenceResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ClassTypeDetector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\CollectorMapper\\MethodCallCollectorMapper' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\AttributeCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\CallableTypeCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\ClassConstFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\FormTypeClassCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassLikeConstCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassMethodCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\PublicStaticPropertyFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Configuration' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\ReferenceMarker' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleIdentifier' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleIdentifier.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\RuleTips' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleTips.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\BladeRegex' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/BladeRegex.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Enum\\Template\\TwigRegex' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Finder\\TemplateFilesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\MethodTypeDetector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/MethodTypeDetector.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\NodeCollectorExtractor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\PublicClassMethodMatcher' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\LocalOnlyPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\RelativeUnusedPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassConstRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicPropertyRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateMethodCallsProvider' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\TemplateRegexFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Templates\\UsedMethodAnalyzer' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Arrays' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Arrays.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\Utils\\Strings' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Strings.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\ClassAndMethodArrayExprs' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/ClassAndMethodArrayExprs.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\LocalAndExternalMethodCallReferences' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php', - 'RectorPrefix202608\\TomasVotruba\\UnusedPublic\\ValueObject\\MethodCallReference' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php', - 'RectorPrefix202608\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202608\\Webmozart\\Assert\\HasAssert' => __DIR__ . '/..' . '/webmozart/assert/src/HasAssert.php', - 'RectorPrefix202608\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202608\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', - 'RectorPrefix202608\\Webmozart\\Assert\\PsalmPlugin' => __DIR__ . '/..' . '/webmozart/assert/src/PsalmPlugin.php', + 'RectorPrefix202609\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202609\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\InvalidRegexPatternRule' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregMatchFlags' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregMatchFlags.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregMatchParameterOutTypeExtension' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregMatchTypeSpecifyingExtension' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\PregReplaceCallbackClosureTypeExtension' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php', + 'RectorPrefix202609\\Composer\\Pcre\\PHPStan\\UnsafeStrictGroupsCallRule' => __DIR__ . '/..' . '/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php', + 'RectorPrefix202609\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202609\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', + 'RectorPrefix202609\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', + 'RectorPrefix202609\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202609\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202609\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', + 'RectorPrefix202609\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202609\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', + 'RectorPrefix202609\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', + 'RectorPrefix202609\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', + 'RectorPrefix202609\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202609\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/CachedWordInflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/GenericLanguageInflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/src/Inflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/src/Language.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/LanguageInflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/NoopWordInflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/English/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Esperanto\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Esperanto/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/French/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Italian\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Italian/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Pattern.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Patterns.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Ruleset.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Spanish/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Substitution.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Substitutions.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Transformation.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Transformations.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/Inflectible.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/Rules.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Turkish/Uninflected.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/src/Rules/Word.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/RulesetInflector.php', + 'RectorPrefix202609\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/src/WordInflector.php', + 'RectorPrefix202609\\Entropy\\Attributes\\RelatedTest' => __DIR__ . '/..' . '/entropy/entropy/src/Attributes/RelatedTest.php', + 'RectorPrefix202609\\Entropy\\Console\\CommandRegistry' => __DIR__ . '/..' . '/entropy/entropy/src/Console/CommandRegistry.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleApplication' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleApplication.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ConsoleTable' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ConsoleTable.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableRow' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableRow.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ValueObject\\TableView' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ValueObject/TableView.php', + 'RectorPrefix202609\\Entropy\\Console\\ConsoleTable\\ViewRenderer' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ConsoleTable/ViewRenderer.php', + 'RectorPrefix202609\\Entropy\\Console\\Contract\\CommandInterface' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Contract/CommandInterface.php', + 'RectorPrefix202609\\Entropy\\Console\\Contract\\DefaultCommandInterface' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Contract/DefaultCommandInterface.php', + 'RectorPrefix202609\\Entropy\\Console\\Contract\\HiddenCommandInterface' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Contract/HiddenCommandInterface.php', + 'RectorPrefix202609\\Entropy\\Console\\Enum\\Color' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Enum/Color.php', + 'RectorPrefix202609\\Entropy\\Console\\Enum\\ExitCode' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Enum/ExitCode.php', + 'RectorPrefix202609\\Entropy\\Console\\Exception\\ConsoleInputMappingException' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Exception/ConsoleInputMappingException.php', + 'RectorPrefix202609\\Entropy\\Console\\Exception\\InvalidCommandException' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Exception/InvalidCommandException.php', + 'RectorPrefix202609\\Entropy\\Console\\Input\\InputParser' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Input/InputParser.php', + 'RectorPrefix202609\\Entropy\\Console\\Mapper\\CLIRequestMapper' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Mapper/CLIRequestMapper.php', + 'RectorPrefix202609\\Entropy\\Console\\Mapper\\CommandRunParametersMapper' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Mapper/CommandRunParametersMapper.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\CommandHelpFactory' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/CommandHelpFactory.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\HelpPrinter' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/HelpPrinter.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\OutputColorizer' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/OutputColorizer.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\OutputPrinter' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/OutputPrinter.php', + 'RectorPrefix202609\\Entropy\\Console\\Output\\ProgressBar' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Output/ProgressBar.php', + 'RectorPrefix202609\\Entropy\\Console\\Terminal\\Terminal' => __DIR__ . '/..' . '/entropy/entropy/src/Console/Terminal/Terminal.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\Argument' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/Argument.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\ArgumentsAndOptions' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/ArgumentsAndOptions.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\CLIRequest' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/CLIRequest.php', + 'RectorPrefix202609\\Entropy\\Console\\ValueObject\\Option' => __DIR__ . '/..' . '/entropy/entropy/src/Console/ValueObject/Option.php', + 'RectorPrefix202609\\Entropy\\Container\\Autodiscovery' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Autodiscovery.php', + 'RectorPrefix202609\\Entropy\\Container\\Container' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Container.php', + 'RectorPrefix202609\\Entropy\\Container\\Exception\\CreateServiceException' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Exception/CreateServiceException.php', + 'RectorPrefix202609\\Entropy\\Container\\Exception\\RegisterServiceException' => __DIR__ . '/..' . '/entropy/entropy/src/Container/Exception/RegisterServiceException.php', + 'RectorPrefix202609\\Entropy\\FileSystem\\Exception\\FileSystemException' => __DIR__ . '/..' . '/entropy/entropy/src/FileSystem/Exception/FileSystemException.php', + 'RectorPrefix202609\\Entropy\\FileSystem\\FileFinder' => __DIR__ . '/..' . '/entropy/entropy/src/FileSystem/FileFinder.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ClassNameResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ClassNameResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ParameterDescriptionResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ParameterDescriptionResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ParameterOptionMarkerResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ParameterOptionMarkerResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\ParameterTypesResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/ParameterTypesResolver.php', + 'RectorPrefix202609\\Entropy\\Reflection\\UseStatementsResolver' => __DIR__ . '/..' . '/entropy/entropy/src/Reflection/UseStatementsResolver.php', + 'RectorPrefix202609\\Entropy\\Utils\\FileSystem' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/FileSystem.php', + 'RectorPrefix202609\\Entropy\\Utils\\FuzzyMatcher' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/FuzzyMatcher.php', + 'RectorPrefix202609\\Entropy\\Utils\\Json' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/Json.php', + 'RectorPrefix202609\\Entropy\\Utils\\Regex' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/Regex.php', + 'RectorPrefix202609\\Entropy\\Utils\\Strings' => __DIR__ . '/..' . '/entropy/entropy/src/Utils/Strings.php', + 'RectorPrefix202609\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202609\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202609\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\EnvVariableFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/EnvVariableFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202609\\Fidry\\CpuCoreCounter\\ParallelisationResult' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/ParallelisationResult.php', + 'RectorPrefix202609\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202609\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202609\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202609\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202609\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', + 'RectorPrefix202609\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\ShouldNotHappenException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202609\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202609\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202609\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202609\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202609\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202609\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202609\\Nette\\Utils\\DateTimeImmutable' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTimeImmutable.php', + 'RectorPrefix202609\\Nette\\Utils\\FileInfo' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileInfo.php', + 'RectorPrefix202609\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202609\\Nette\\Utils\\Finder' => __DIR__ . '/..' . '/nette/utils/src/Utils/Finder.php', + 'RectorPrefix202609\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202609\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202609\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202609\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202609\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202609\\Nette\\Utils\\ImageColor' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageColor.php', + 'RectorPrefix202609\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ImageType' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageType.php', + 'RectorPrefix202609\\Nette\\Utils\\Iterables' => __DIR__ . '/..' . '/nette/utils/src/Utils/Iterables.php', + 'RectorPrefix202609\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202609\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202609\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202609\\Nette\\Utils\\Process' => __DIR__ . '/..' . '/nette/utils/src/Utils/Process.php', + 'RectorPrefix202609\\Nette\\Utils\\ProcessFailedException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\ProcessTimeoutException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202609\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202609\\Nette\\Utils\\ReflectionMethod' => __DIR__ . '/..' . '/nette/utils/src/Utils/ReflectionMethod.php', + 'RectorPrefix202609\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202609\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202609\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202609\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202609\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202609\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202609\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202609\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202609\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202609\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202609\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202609\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202609\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', + 'RectorPrefix202609\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202609\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202609\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', + 'RectorPrefix202609\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', + 'RectorPrefix202609\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', + 'RectorPrefix202609\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202609\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', + 'RectorPrefix202609\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', + 'RectorPrefix202609\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202609\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202609\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202609\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202609\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', + 'RectorPrefix202609\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202609\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202609\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202609\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202609\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202609\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202609\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', + 'RectorPrefix202609\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', + 'RectorPrefix202609\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202609\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202609\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202609\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202609\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202609\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202609\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202609\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', + 'RectorPrefix202609\\React\\Promise\\Exception\\CompositeException' => __DIR__ . '/..' . '/react/promise/src/Exception/CompositeException.php', + 'RectorPrefix202609\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202609\\React\\Promise\\Internal\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/Internal/CancellationQueue.php', + 'RectorPrefix202609\\React\\Promise\\Internal\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/Internal/FulfilledPromise.php', + 'RectorPrefix202609\\React\\Promise\\Internal\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/Internal/RejectedPromise.php', + 'RectorPrefix202609\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', + 'RectorPrefix202609\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202609\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', + 'RectorPrefix202609\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202609\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', + 'RectorPrefix202609\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202609\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202609\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', + 'RectorPrefix202609\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202609\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202609\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202609\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202609\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202609\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', + 'RectorPrefix202609\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', + 'RectorPrefix202609\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202609\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', + 'RectorPrefix202609\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202609\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202609\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', + 'RectorPrefix202609\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202609\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202609\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', + 'RectorPrefix202609\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202609\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202609\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202609\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202609\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202609\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202609\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', + 'RectorPrefix202609\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202609\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\MyersDiff' => __DIR__ . '/..' . '/sebastian/diff/src/MyersDiff.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\NoMiddleSnakeFoundException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/NoMiddleSnakeFoundException.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202609\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Command\\TraceableCommand' => __DIR__ . '/..' . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Helper\\TerminalInputHelper' => __DIR__ . '/..' . '/symfony/console/Helper/TerminalInputHelper.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202609\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202609\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202609\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\AbstractString' => __DIR__ . '/..' . '/symfony/string/AbstractString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\AbstractUnicodeString' => __DIR__ . '/..' . '/symfony/string/AbstractUnicodeString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\ByteString' => __DIR__ . '/..' . '/symfony/string/ByteString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\CodePointString' => __DIR__ . '/..' . '/symfony/string/CodePointString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/string/Exception/ExceptionInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/string/Exception/InvalidArgumentException.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/string/Exception/RuntimeException.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\EnglishInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/EnglishInflector.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\FrenchInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/FrenchInflector.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\InflectorInterface' => __DIR__ . '/..' . '/symfony/string/Inflector/InflectorInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Inflector\\SpanishInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/SpanishInflector.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\LazyString' => __DIR__ . '/..' . '/symfony/string/LazyString.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Slugger\\AsciiSlugger' => __DIR__ . '/..' . '/symfony/string/Slugger/AsciiSlugger.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\Slugger\\SluggerInterface' => __DIR__ . '/..' . '/symfony/string/Slugger/SluggerInterface.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\TruncateMode' => __DIR__ . '/..' . '/symfony/string/TruncateMode.php', + 'RectorPrefix202609\\Symfony\\Component\\String\\UnicodeString' => __DIR__ . '/..' . '/symfony/string/UnicodeString.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ContainerAwareInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ContainerAwareInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ContainerProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ContainerProviderInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceCollectionInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceCollectionInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ClassNameResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ClassNameResolver.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\FileSystem\\StaticRelativeFilePathHelper' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/FileSystem/StaticRelativeFilePathHelper.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Filtering\\PossiblyUnusedClassesFilter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Finder\\ClassNamesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Finder\\PhpFilesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Finder/PhpFilesFinder.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeDecorator\\FullyQualifiedNameNodeDecorator' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeDecorator/FullyQualifiedNameNodeDecorator.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\ClassNameNodeVisitor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\UsedClassNodeVisitor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeVisitor/UsedClassNodeVisitor.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassReporter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Reporting/UnusedClassReporter.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassesResultFactory' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Reporting/UnusedClassesResultFactory.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\UseImportsResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/UseImportsResolver.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ValueObject\\ClassNames' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/ClassNames.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ValueObject\\FileWithClass' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ValueObject\\UnusedClassesResult' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ApiDocStmtAnalyzer' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\CallReferece\\CallReferencesFlatter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/CallReferencesFlatter.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\CallReferece\\ParentCallReferenceResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CallReferece/ParentCallReferenceResolver.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ClassMethodCallReferenceResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ClassMethodCallReferenceResolver.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ClassTypeDetector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ClassTypeDetector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\CollectorMapper\\MethodCallCollectorMapper' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\AttributeCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/AttributeCallableCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\Callable_\\CallableTypeCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\ClassConstFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\FormTypeClassCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\MethodCall\\MethodCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassLikeConstCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicClassMethodCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicPropertyFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\PublicStaticPropertyFetchCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Collectors\\StaticCall\\StaticMethodCallableCollector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Configuration' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\ReferenceMarker' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/ReferenceMarker.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\RuleIdentifier' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleIdentifier.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\RuleTips' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/RuleTips.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\Template\\BladeRegex' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/BladeRegex.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Enum\\Template\\TwigRegex' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Enum/Template/TwigRegex.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Finder\\TemplateFilesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Finder/TemplateFilesFinder.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\MethodTypeDetector' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/MethodTypeDetector.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\NodeCollectorExtractor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/NodeCollectorExtractor.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\PublicClassMethodMatcher' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/PublicClassMethodMatcher.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\LocalOnlyPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\RelativeUnusedPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/RelativeUnusedPublicClassMethodRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassConstRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassConstRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicClassMethodRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicClassMethodRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Rules\\UnusedPublicPropertyRule' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Rules/UnusedPublicPropertyRule.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Templates\\TemplateMethodCallsProvider' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateMethodCallsProvider.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Templates\\TemplateRegexFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/TemplateRegexFinder.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Templates\\UsedMethodAnalyzer' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Templates/UsedMethodAnalyzer.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Utils\\Arrays' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Arrays.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\Utils\\Strings' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/Utils/Strings.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ValueObject\\ClassAndMethodArrayExprs' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/ClassAndMethodArrayExprs.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ValueObject\\LocalAndExternalMethodCallReferences' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/LocalAndExternalMethodCallReferences.php', + 'RectorPrefix202609\\TomasVotruba\\UnusedPublic\\ValueObject\\MethodCallReference' => __DIR__ . '/..' . '/tomasvotruba/class-leak/packages/unused-public/src/ValueObject/MethodCallReference.php', + 'RectorPrefix202609\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202609\\Webmozart\\Assert\\HasAssert' => __DIR__ . '/..' . '/webmozart/assert/src/HasAssert.php', + 'RectorPrefix202609\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202609\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202609\\Webmozart\\Assert\\PsalmPlugin' => __DIR__ . '/..' . '/webmozart/assert/src/PsalmPlugin.php', 'Rector\\Application\\ApplicationFileProcessor' => __DIR__ . '/../..' . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Application\\ChangedNodeScopeRefresher' => __DIR__ . '/../..' . '/src/Application/ChangedNodeScopeRefresher.php', 'Rector\\Application\\FileProcessor' => __DIR__ . '/../..' . '/src/Application/FileProcessor.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 939717530b2..3e92286481e 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -28,7 +28,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202609\\Clue\\React\\NDJson\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -109,7 +109,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Composer\\Pcre\\": "src" + "RectorPrefix202609\\Composer\\Pcre\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -178,7 +178,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Composer\\Semver\\": "src" + "RectorPrefix202609\\Composer\\Semver\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -256,7 +256,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202609\\Composer\\XdebugHandler\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -325,7 +325,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Doctrine\\Inflector\\": "src" + "RectorPrefix202609\\Doctrine\\Inflector\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -427,7 +427,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Entropy\\": "src" + "RectorPrefix202609\\Entropy\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -467,7 +467,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Evenement\\": "src\/" + "RectorPrefix202609\\Evenement\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -525,7 +525,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Fidry\\CpuCoreCounter\\": "src\/" + "RectorPrefix202609\\Fidry\\CpuCoreCounter\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -603,7 +603,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Nette\\": "src" + "RectorPrefix202609\\Nette\\": "src" }, "classmap": [ "src\/" @@ -741,7 +741,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202609\\OndraM\\CiDetector\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -792,17 +792,17 @@ }, { "name": "phpstan\/phpdoc-parser", - "version": "2.3.4", - "version_normalized": "2.3.4.0", + "version": "2.3.5", + "version_normalized": "2.3.5.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpdoc-parser.git", - "reference": "98dbc9412932af5825e6d5aa5d6bc4de7d82538a" + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/98dbc9412932af5825e6d5aa5d6bc4de7d82538a", - "reference": "98dbc9412932af5825e6d5aa5d6bc4de7d82538a", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { @@ -819,7 +819,7 @@ "phpunit\/phpunit": "^9.6", "symfony\/process": "^5.2" }, - "time": "2026-08-30T16:25:38+00:00", + "time": "2026-08-31T16:05:28+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -836,7 +836,7 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https:\/\/github.com\/phpstan\/phpdoc-parser\/issues", - "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/2.3.4" + "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/2.3.5" }, "install-path": "..\/phpstan\/phpdoc-parser" }, @@ -868,7 +868,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Psr\\Container\\": "src\/" + "RectorPrefix202609\\Psr\\Container\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -924,7 +924,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Psr\\Log\\": "src" + "RectorPrefix202609\\Psr\\Log\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -976,7 +976,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\React\\Cache\\": "src\/" + "RectorPrefix202609\\React\\Cache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1055,7 +1055,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\React\\ChildProcess\\": "src\/" + "RectorPrefix202609\\React\\ChildProcess\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1133,7 +1133,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\React\\Dns\\": "src\/" + "RectorPrefix202609\\React\\Dns\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1210,7 +1210,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\React\\EventLoop\\": "src\/" + "RectorPrefix202609\\React\\EventLoop\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1286,7 +1286,7 @@ "src\/functions_include.php" ], "psr-4": { - "RectorPrefix202608\\React\\Promise\\": "src\/" + "RectorPrefix202609\\React\\Promise\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1366,7 +1366,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\React\\Socket\\": "src\/" + "RectorPrefix202609\\React\\Socket\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1444,7 +1444,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\React\\Stream\\": "src\/" + "RectorPrefix202609\\React\\Stream\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "c4e571ee6d61aa0bf68346bab12b85e2df3aead2" + "reference": "a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/c4e571ee6d61aa0bf68346bab12b85e2df3aead2", - "reference": "c4e571ee6d61aa0bf68346bab12b85e2df3aead2", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805", + "reference": "a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-29T17:48:30+00:00", + "time": "2026-09-01T10:55:25+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", @@ -1922,7 +1922,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Console\\": "" + "RectorPrefix202609\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2076,7 +2076,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202609\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2147,7 +2147,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202609\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2314,7 +2314,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202609\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" @@ -2408,7 +2408,7 @@ "Resources\/functions.php" ], "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\String\\": "" + "RectorPrefix202609\\Symfony\\Component\\String\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2570,8 +2570,8 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\TomasVotruba\\ClassLeak\\": "src", - "RectorPrefix202608\\TomasVotruba\\UnusedPublic\\": "packages\/unused-public\/src" + "RectorPrefix202609\\TomasVotruba\\ClassLeak\\": "src", + "RectorPrefix202609\\TomasVotruba\\UnusedPublic\\": "packages\/unused-public\/src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -2635,7 +2635,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202608\\Webmozart\\Assert\\": "src\/" + "RectorPrefix202609\\Webmozart\\Assert\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 192e9902c3e..951e2b6246d 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -1,5 +1,5 @@ array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.4', 'version' => '2.3.4.0', 'reference' => '98dbc9412932af5825e6d5aa5d6bc4de7d82538a', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.11.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '70b30bb29994d5851905cc642b19ea68f96834ef', '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' => 'c4e571ee6d61aa0bf68346bab12b85e2df3aead2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '70b30bb29994d5851905cc642b19ea68f96834ef', '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' => 'a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/composer/pcre/composer.json b/vendor/composer/pcre/composer.json index 0fec3d68dff..147517a0b9a 100644 --- a/vendor/composer/pcre/composer.json +++ b/vendor/composer/pcre/composer.json @@ -30,12 +30,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Composer\\Pcre\\": "src" + "RectorPrefix202609\\Composer\\Pcre\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202608\\Composer\\Pcre\\": "tests" + "RectorPrefix202609\\Composer\\Pcre\\": "tests" } }, "extra": { diff --git a/vendor/composer/pcre/src/MatchAllResult.php b/vendor/composer/pcre/src/MatchAllResult.php index cc0478009ef..67643812024 100644 --- a/vendor/composer/pcre/src/MatchAllResult.php +++ b/vendor/composer/pcre/src/MatchAllResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202608\Composer\Pcre; +namespace RectorPrefix202609\Composer\Pcre; final class MatchAllResult { diff --git a/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php b/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php index eaaf312ec80..b0a20814660 100644 --- a/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php +++ b/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202608\Composer\Pcre; +namespace RectorPrefix202609\Composer\Pcre; final class MatchAllStrictGroupsResult { diff --git a/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php b/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php index 7ac9ee7c926..d3266a660f8 100644 --- a/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php +++ b/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202608\Composer\Pcre; +namespace RectorPrefix202609\Composer\Pcre; final class MatchAllWithOffsetsResult { diff --git a/vendor/composer/pcre/src/MatchResult.php b/vendor/composer/pcre/src/MatchResult.php index 448a078ef09..3b727de3434 100644 --- a/vendor/composer/pcre/src/MatchResult.php +++ b/vendor/composer/pcre/src/MatchResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202608\Composer\Pcre; +namespace RectorPrefix202609\Composer\Pcre; final class MatchResult { diff --git a/vendor/composer/pcre/src/MatchStrictGroupsResult.php b/vendor/composer/pcre/src/MatchStrictGroupsResult.php index 90dabb49b0f..26be80efd6b 100644 --- a/vendor/composer/pcre/src/MatchStrictGroupsResult.php +++ b/vendor/composer/pcre/src/MatchStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202608\Composer\Pcre; +namespace RectorPrefix202609\Composer\Pcre; final class MatchStrictGroupsResult { diff --git a/vendor/composer/pcre/src/MatchWithOffsetsResult.php b/vendor/composer/pcre/src/MatchWithOffsetsResult.php index caa8a1c1685..62597152097 100644 --- a/vendor/composer/pcre/src/MatchWithOffsetsResult.php +++ b/vendor/composer/pcre/src/MatchWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202608\Composer\Pcre; +namespace RectorPrefix202609\Composer\Pcre; final class MatchWithOffsetsResult { diff --git a/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php b/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php index d25cc4716bc..ba80b0d54b7 100644 --- a/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php +++ b/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php @@ -1,13 +1,13 @@ diff --git a/vendor/composer/xdebug-handler/src/Process.php b/vendor/composer/xdebug-handler/src/Process.php index ab7e8f40e35..4f86fb0e09d 100644 --- a/vendor/composer/xdebug-handler/src/Process.php +++ b/vendor/composer/xdebug-handler/src/Process.php @@ -9,9 +9,9 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202608\Composer\XdebugHandler; +namespace RectorPrefix202609\Composer\XdebugHandler; -use RectorPrefix202608\Composer\Pcre\Preg; +use RectorPrefix202609\Composer\Pcre\Preg; /** * Process utility functions * diff --git a/vendor/composer/xdebug-handler/src/Status.php b/vendor/composer/xdebug-handler/src/Status.php index 13a64060b8a..381e4ff5919 100644 --- a/vendor/composer/xdebug-handler/src/Status.php +++ b/vendor/composer/xdebug-handler/src/Status.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202608\Composer\XdebugHandler; +namespace RectorPrefix202609\Composer\XdebugHandler; -use RectorPrefix202608\Psr\Log\LoggerInterface; -use RectorPrefix202608\Psr\Log\LogLevel; +use RectorPrefix202609\Psr\Log\LoggerInterface; +use RectorPrefix202609\Psr\Log\LogLevel; /** * @author John Stevenson * @internal diff --git a/vendor/composer/xdebug-handler/src/XdebugHandler.php b/vendor/composer/xdebug-handler/src/XdebugHandler.php index 3e6d90dac65..cd234f2b7d3 100644 --- a/vendor/composer/xdebug-handler/src/XdebugHandler.php +++ b/vendor/composer/xdebug-handler/src/XdebugHandler.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202608\Composer\XdebugHandler; +namespace RectorPrefix202609\Composer\XdebugHandler; -use RectorPrefix202608\Composer\Pcre\Preg; -use RectorPrefix202608\Psr\Log\LoggerInterface; +use RectorPrefix202609\Composer\Pcre\Preg; +use RectorPrefix202609\Psr\Log\LoggerInterface; /** * @author John Stevenson * diff --git a/vendor/doctrine/inflector/composer.json b/vendor/doctrine/inflector/composer.json index f2baa5980cc..2f092bc742c 100644 --- a/vendor/doctrine/inflector/composer.json +++ b/vendor/doctrine/inflector/composer.json @@ -50,12 +50,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Doctrine\\Inflector\\": "src" + "RectorPrefix202609\\Doctrine\\Inflector\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202608\\Doctrine\\Tests\\Inflector\\": "tests" + "RectorPrefix202609\\Doctrine\\Tests\\Inflector\\": "tests" } }, "config": { diff --git a/vendor/doctrine/inflector/src/CachedWordInflector.php b/vendor/doctrine/inflector/src/CachedWordInflector.php index 7c4d4299079..9c927d45c50 100644 --- a/vendor/doctrine/inflector/src/CachedWordInflector.php +++ b/vendor/doctrine/inflector/src/CachedWordInflector.php @@ -1,7 +1,7 @@ */ diff --git a/vendor/doctrine/inflector/src/Rules/Italian/InflectorFactory.php b/vendor/doctrine/inflector/src/Rules/Italian/InflectorFactory.php index e533b90727c..cc15c4e321b 100644 --- a/vendor/doctrine/inflector/src/Rules/Italian/InflectorFactory.php +++ b/vendor/doctrine/inflector/src/Rules/Italian/InflectorFactory.php @@ -1,10 +1,10 @@ */ diff --git a/vendor/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php b/vendor/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php index d73f989145c..7931cd09479 100644 --- a/vendor/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php +++ b/vendor/doctrine/inflector/src/Rules/NorwegianBokmal/Inflectible.php @@ -1,12 +1,12 @@ ignoreErrorsOnExtension('ext-filter', [ErrorType::SHADOW_DEPENDENCY]); diff --git a/vendor/entropy/entropy/composer.json b/vendor/entropy/entropy/composer.json index 683ee280410..3affaab6250 100644 --- a/vendor/entropy/entropy/composer.json +++ b/vendor/entropy/entropy/composer.json @@ -23,13 +23,13 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Entropy\\": "src" + "RectorPrefix202609\\Entropy\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202608\\Entropy\\Tests\\": "tests", - "RectorPrefix202608\\App\\Project\\": [ + "RectorPrefix202609\\Entropy\\Tests\\": "tests", + "RectorPrefix202609\\App\\Project\\": [ "tests\/Container\/Autodiscovery\/Fixture\/project-with-value-objects\/src" ] } diff --git a/vendor/entropy/entropy/src/Attributes/RelatedTest.php b/vendor/entropy/entropy/src/Attributes/RelatedTest.php index 2e45b3fc623..8845cf978e4 100644 --- a/vendor/entropy/entropy/src/Attributes/RelatedTest.php +++ b/vendor/entropy/entropy/src/Attributes/RelatedTest.php @@ -1,7 +1,7 @@ parameters(); $parameters->set(Option::SKIP, [__DIR__ . '/tests/PropertiesPrinterHelper.php']); diff --git a/vendor/ondram/ci-detector/src/Ci/AbstractCi.php b/vendor/ondram/ci-detector/src/Ci/AbstractCi.php index a33fa051208..8faed323b66 100644 --- a/vendor/ondram/ci-detector/src/Ci/AbstractCi.php +++ b/vendor/ondram/ci-detector/src/Ci/AbstractCi.php @@ -1,9 +1,9 @@ regexp === null) { $this->regexp = $this->generateRegexp(); } - preg_match_all($this->regexp, $s, $matches, PREG_SET_ORDER); + // PREG_PATTERN_ORDER, not PREG_SET_ORDER: it collects the whole PHPDoc + // into two arrays instead of allocating one array per token. This only + // pays off while the token patterns have no capturing groups, because + // every group would get an array of its own, one entry per token. + preg_match_all($this->regexp, $s, $matches); + $values = $matches[0]; + if ($values === []) { + return [['', self::TOKEN_END, 1]]; + } + $marks = $matches['MARK']; $tokens = []; $line = 1; - foreach ($matches as $match) { - $type = (int) $match['MARK']; - $tokens[] = [$match[0], $type, $line]; + foreach ($values as $i => $value) { + $type = (int) $marks[$i]; + $tokens[] = [$value, $type, $line]; if ($type !== self::TOKEN_PHPDOC_EOL) { continue; } @@ -85,6 +93,7 @@ public function tokenize(string $s): array } private function generateRegexp(): string { + // every group in here must be non-capturing, see tokenize() $patterns = [ self::TOKEN_HORIZONTAL_WS => '[\x09\x20]++', self::TOKEN_IDENTIFIER => '(?:[\\\\]?+[a-z_\x80-\xFF][0-9a-z_\x80-\xFF-]*+)++', @@ -117,8 +126,8 @@ private function generateRegexp(): string self::TOKEN_PHPDOC_TAG => '@(?:[a-z][a-z0-9-\\\\]+:)?[a-z][a-z0-9-\\\\]*+', self::TOKEN_DOCTRINE_TAG => '@[a-z_\\\\][a-z0-9_\:\\\\]*[a-z_][a-z0-9_]*', self::TOKEN_PHPDOC_EOL => '\r?+\n[\x09\x20]*+(?:\*(?!/)\x20?+)?', - self::TOKEN_FLOAT => '[+\-]?(?:(?:[0-9]++(_[0-9]++)*\.[0-9]*+(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]*+(_[0-9]++)*\.[0-9]++(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]++(_[0-9]++)*e[+\-]?[0-9]++(_[0-9]++)*))', - self::TOKEN_INTEGER => '[+\-]?(?:(?:0b[0-1]++(_[0-1]++)*)|(?:0o[0-7]++(_[0-7]++)*)|(?:0x[0-9a-f]++(_[0-9a-f]++)*)|(?:[0-9]++(_[0-9]++)*))', + self::TOKEN_FLOAT => '[+\-]?(?:(?:[0-9]++(?:_[0-9]++)*\.[0-9]*+(?:_[0-9]++)*(?:e[+\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]*+(?:_[0-9]++)*\.[0-9]++(?:_[0-9]++)*(?:e[+\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]++(?:_[0-9]++)*e[+\-]?[0-9]++(?:_[0-9]++)*))', + self::TOKEN_INTEGER => '[+\-]?(?:(?:0b[0-1]++(?:_[0-1]++)*)|(?:0o[0-7]++(?:_[0-7]++)*)|(?:0x[0-9a-f]++(?:_[0-9a-f]++)*)|(?:[0-9]++(?:_[0-9]++)*))', self::TOKEN_SINGLE_QUOTED_STRING => '\'(?:\\\\[^\r\n]|[^\'\r\n\\\\])*+\'', self::TOKEN_DOUBLE_QUOTED_STRING => '"(?:\\\\[^\r\n]|[^"\r\n\\\\])*+"', self::TOKEN_DOCTRINE_ANNOTATION_STRING => '"(?:""|[^"])*+"', diff --git a/vendor/psr/container/composer.json b/vendor/psr/container/composer.json index ad1d71736b5..5c6592bd951 100644 --- a/vendor/psr/container/composer.json +++ b/vendor/psr/container/composer.json @@ -22,7 +22,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Psr\\Container\\": "src\/" + "RectorPrefix202609\\Psr\\Container\\": "src\/" } }, "extra": { diff --git a/vendor/psr/container/src/ContainerExceptionInterface.php b/vendor/psr/container/src/ContainerExceptionInterface.php index 8ed0d263dc7..9b446c78a46 100644 --- a/vendor/psr/container/src/ContainerExceptionInterface.php +++ b/vendor/psr/container/src/ContainerExceptionInterface.php @@ -1,6 +1,6 @@ cmd = $cmd; @@ -405,7 +405,7 @@ final public static function isSigchildEnabled() if (null !== self::$sigchild) { return self::$sigchild; } - if (!\function_exists('phpinfo') && !\function_exists('RectorPrefix202608\phpinfo')) { + if (!\function_exists('phpinfo') && !\function_exists('RectorPrefix202609\phpinfo')) { return self::$sigchild = \false; // @codeCoverageIgnore } diff --git a/vendor/react/dns/composer.json b/vendor/react/dns/composer.json index c836e41c5c8..8e3b9e27dbe 100644 --- a/vendor/react/dns/composer.json +++ b/vendor/react/dns/composer.json @@ -43,12 +43,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\React\\Dns\\": "src\/" + "RectorPrefix202609\\React\\Dns\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202608\\React\\Tests\\Dns\\": "tests\/" + "RectorPrefix202609\\React\\Tests\\Dns\\": "tests\/" } } } \ No newline at end of file diff --git a/vendor/react/dns/src/BadServerException.php b/vendor/react/dns/src/BadServerException.php index eb03a87ada2..67c6047b307 100644 --- a/vendor/react/dns/src/BadServerException.php +++ b/vendor/react/dns/src/BadServerException.php @@ -1,6 +1,6 @@ class !== Message::CLASS_IN ? 'CLASS' . $this->class . ' ' : ''; $type = 'TYPE' . $this->type; - $ref = new \ReflectionClass('RectorPrefix202608\React\Dns\Model\Message'); + $ref = new \ReflectionClass('RectorPrefix202609\React\Dns\Model\Message'); foreach ($ref->getConstants() as $name => $value) { if ($value === $this->type && \strpos($name, 'TYPE_') === 0) { $type = (string) \substr($name, 5); diff --git a/vendor/react/dns/src/Query/RetryExecutor.php b/vendor/react/dns/src/Query/RetryExecutor.php index e7a99f5f45a..31dc3de0a6f 100644 --- a/vendor/react/dns/src/Query/RetryExecutor.php +++ b/vendor/react/dns/src/Query/RetryExecutor.php @@ -1,9 +1,9 @@ dumper->toBinary($request); $length = \strlen($queryData); if ($length > 0xffff) { - return \RectorPrefix202608\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); + return \RectorPrefix202609\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); } $queryData = \pack('n', $length) . $queryData; if ($this->socket === null) { // create async TCP/IP connection (may take a while) $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0, \STREAM_CLIENT_CONNECT | \STREAM_CLIENT_ASYNC_CONNECT); if ($socket === \false) { - return \RectorPrefix202608\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202609\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and wait for it to become writable (connection success/rejected) \stream_set_blocking($socket, \false); diff --git a/vendor/react/dns/src/Query/TimeoutException.php b/vendor/react/dns/src/Query/TimeoutException.php index 62e283e3bb5..65745b34cc0 100644 --- a/vendor/react/dns/src/Query/TimeoutException.php +++ b/vendor/react/dns/src/Query/TimeoutException.php @@ -1,6 +1,6 @@ dumper->toBinary($request); if (isset($queryData[$this->maxPacketSize])) { - return \RectorPrefix202608\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); + return \RectorPrefix202609\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); } // UDP connections are instant, so try connection without a loop or timeout $errno = 0; $errstr = ''; $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0); if ($socket === \false) { - return \RectorPrefix202608\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202609\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and immediately try to send (fill write buffer) \stream_set_blocking($socket, \false); @@ -142,7 +142,7 @@ public function query(Query $query) $written = \fwrite($socket, $queryData); \restore_error_handler(); if ($written !== \strlen($queryData)) { - return \RectorPrefix202608\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202609\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } $loop = $this->loop; $deferred = new Deferred(function () use ($loop, $socket, $query) { diff --git a/vendor/react/dns/src/RecordNotFoundException.php b/vendor/react/dns/src/RecordNotFoundException.php index d46426f59ab..1e76dfb04bb 100644 --- a/vendor/react/dns/src/RecordNotFoundException.php +++ b/vendor/react/dns/src/RecordNotFoundException.php @@ -1,6 +1,6 @@ loop = new EventLoop(); diff --git a/vendor/react/event-loop/src/ExtLibeventLoop.php b/vendor/react/event-loop/src/ExtLibeventLoop.php index 4d2828fd6a6..c5b8deaf6fe 100644 --- a/vendor/react/event-loop/src/ExtLibeventLoop.php +++ b/vendor/react/event-loop/src/ExtLibeventLoop.php @@ -1,12 +1,12 @@ eventBase = \event_base_new(); diff --git a/vendor/react/event-loop/src/ExtUvLoop.php b/vendor/react/event-loop/src/ExtUvLoop.php index 6e0c4d7d492..54710b7a877 100644 --- a/vendor/react/event-loop/src/ExtUvLoop.php +++ b/vendor/react/event-loop/src/ExtUvLoop.php @@ -1,9 +1,9 @@ uv = \uv_loop_new(); @@ -197,7 +197,7 @@ public function stop() private function addStream($stream) { if (!isset($this->streamEvents[(int) $stream])) { - $this->streamEvents[(int) $stream] = \RectorPrefix202608\uv_poll_init_socket($this->uv, $stream); + $this->streamEvents[(int) $stream] = \RectorPrefix202609\uv_poll_init_socket($this->uv, $stream); } if ($this->streamEvents[(int) $stream] !== \false) { $this->pollStream($stream); diff --git a/vendor/react/event-loop/src/Factory.php b/vendor/react/event-loop/src/Factory.php index ebb6f43a933..6a83c9b4645 100644 --- a/vendor/react/event-loop/src/Factory.php +++ b/vendor/react/event-loop/src/Factory.php @@ -1,6 +1,6 @@ diff --git a/vendor/react/promise/src/PromiseInterface.php b/vendor/react/promise/src/PromiseInterface.php index 449950f6de3..2dd0ba32138 100644 --- a/vendor/react/promise/src/PromiseInterface.php +++ b/vendor/react/promise/src/PromiseInterface.php @@ -1,6 +1,6 @@ connectors[$scheme])) { - return \RectorPrefix202608\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); + return \RectorPrefix202609\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); } return $this->connectors[$scheme]->connect($uri); } diff --git a/vendor/react/socket/src/ConnectorInterface.php b/vendor/react/socket/src/ConnectorInterface.php index c7ef35570d2..95f5c4d3829 100644 --- a/vendor/react/socket/src/ConnectorInterface.php +++ b/vendor/react/socket/src/ConnectorInterface.php @@ -1,6 +1,6 @@ then($resolve, $reject); }, function ($_, $reject) use (&$promise, $uri, &$connected) { if ($connected) { diff --git a/vendor/react/socket/src/SecureServer.php b/vendor/react/socket/src/SecureServer.php index b3bfdde853e..6319d3a83c5 100644 --- a/vendor/react/socket/src/SecureServer.php +++ b/vendor/react/socket/src/SecureServer.php @@ -1,10 +1,10 @@ services(); $services->set(TypedPropertyRector::class); diff --git a/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/extension-installer/src/GeneratedConfig.php index 9be44d3207d..c129dff3636 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 70b30bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c4e571e'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 70b30bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main a2ec380'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/extension-installer/src/PluginInstaller.php b/vendor/rector/extension-installer/src/PluginInstaller.php index 2aae8066114..d0b4ef3fe46 100644 --- a/vendor/rector/extension-installer/src/PluginInstaller.php +++ b/vendor/rector/extension-installer/src/PluginInstaller.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\RectorInstaller; -use RectorPrefix202608\Composer\Installer\InstallationManager; -use RectorPrefix202608\Composer\IO\IOInterface; -use RectorPrefix202608\Composer\Package\PackageInterface; -use RectorPrefix202608\Composer\Repository\InstalledRepositoryInterface; -use RectorPrefix202608\Composer\Util\Filesystem as ComposerFilesystem; +use RectorPrefix202609\Composer\Installer\InstallationManager; +use RectorPrefix202609\Composer\IO\IOInterface; +use RectorPrefix202609\Composer\Package\PackageInterface; +use RectorPrefix202609\Composer\Repository\InstalledRepositoryInterface; +use RectorPrefix202609\Composer\Util\Filesystem as ComposerFilesystem; /** * @see \Rector\RectorInstaller\Tests\PluginInstallerTest */ diff --git a/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php b/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php index e14c585e8e8..590295c35d9 100644 --- a/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php +++ b/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php @@ -1,7 +1,7 @@ reflectionProvider = $reflectionProvider; $this->testClassNameResolver = $testClassNameResolver; $this->docBlockUpdater = $docBlockUpdater; $this->phpDocInfoFactory = $phpDocInfoFactory; + $this->classAnnotationMatcher = $classAnnotationMatcher; } public function getRuleDefinition(): RuleDefinition { @@ -132,6 +138,11 @@ private function shouldSkipClass(Class_ $class): bool if ($this->reflectionProvider->hasClass($seeTagClass)) { return \true; } + // the @see value can be a short name, imported or in the current namespace + $resolvedSeeTagClass = $this->classAnnotationMatcher->resolveTagFullyQualifiedName($seeTagClass, $class); + if ($this->reflectionProvider->hasClass($resolvedSeeTagClass)) { + return \true; + } } return \false; } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/SingleMockPropertyTypeRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/SingleMockPropertyTypeRector.php index c2e552076ff..fb44c451cbf 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/SingleMockPropertyTypeRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/SingleMockPropertyTypeRector.php @@ -7,7 +7,7 @@ use PhpParser\Node\IntersectionType; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\UnionType; -use RectorPrefix202608\PHPUnit\Framework\MockObject\MockObject; +use RectorPrefix202609\PHPUnit\Framework\MockObject\MockObject; use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; use Rector\Rector\AbstractRector; use Rector\VersionBonding\Contract\ComposerPackageConstraintInterface; diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php index 93317946b48..e2a5bad273c 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\PHPUnit\CodeQuality\Rector\Class_; -use RectorPrefix202608\Nette\Utils\Json; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Json; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Modifiers; use PhpParser\Node; use PhpParser\Node\ArrayItem; diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Expression/ConfiguredMockEntityToSetterObjectRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Expression/ConfiguredMockEntityToSetterObjectRector.php index 1fa9e414b23..3c2d7076a2d 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Expression/ConfiguredMockEntityToSetterObjectRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Expression/ConfiguredMockEntityToSetterObjectRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\CodeQuality\Rector\Expression; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php b/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php index 04681072ef1..71d5f6f5057 100644 --- a/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php +++ b/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\PHPUnit70\Rector\Class_; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\Class_; diff --git a/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php b/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php index b6b61dedfc3..b55d3bea19c 100644 --- a/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php +++ b/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\PhpDoc; -use RectorPrefix202608\Nette\Utils\Strings; +use RectorPrefix202609\Nette\Utils\Strings; use PhpParser\Node\Stmt\Class_; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; diff --git a/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php b/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php index 39bd0624d45..b0905019234 100644 --- a/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php +++ b/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php @@ -1,7 +1,7 @@ */ diff --git a/vendor/symfony/console/Command/Command.php b/vendor/symfony/console/Command/Command.php index d2c9a70bd6f..b10e86d5cde 100644 --- a/vendor/symfony/console/Command/Command.php +++ b/vendor/symfony/console/Command/Command.php @@ -8,23 +8,23 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202608\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202608\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202608\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202609\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202609\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * Base class for all commands. * diff --git a/vendor/symfony/console/Command/CompleteCommand.php b/vendor/symfony/console/Command/CompleteCommand.php index afaeba2ee72..279e7d11bb0 100644 --- a/vendor/symfony/console/Command/CompleteCommand.php +++ b/vendor/symfony/console/Command/CompleteCommand.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Completion\Output\BashCompletionOutput; -use RectorPrefix202608\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Completion\Output\FishCompletionOutput; -use RectorPrefix202608\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; -use RectorPrefix202608\Symfony\Component\Console\Exception\CommandNotFoundException; -use RectorPrefix202608\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Completion\Output\BashCompletionOutput; +use RectorPrefix202609\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Completion\Output\FishCompletionOutput; +use RectorPrefix202609\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; +use RectorPrefix202609\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202609\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * Responsible for providing the values to the shell completion. * diff --git a/vendor/symfony/console/Command/DumpCompletionCommand.php b/vendor/symfony/console/Command/DumpCompletionCommand.php index d4a5900ff76..0f79ee8d47c 100644 --- a/vendor/symfony/console/Command/DumpCompletionCommand.php +++ b/vendor/symfony/console/Command/DumpCompletionCommand.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Process\Process; +use RectorPrefix202609\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Process\Process; /** * Dumps the completion script for the current shell. * diff --git a/vendor/symfony/console/Command/HelpCommand.php b/vendor/symfony/console/Command/HelpCommand.php index 76f497448b3..a52bf3619da 100644 --- a/vendor/symfony/console/Command/HelpCommand.php +++ b/vendor/symfony/console/Command/HelpCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202608\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202609\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * HelpCommand displays the help for a given command. * diff --git a/vendor/symfony/console/Command/LazyCommand.php b/vendor/symfony/console/Command/LazyCommand.php index f455ea780c9..cc20b97533b 100644 --- a/vendor/symfony/console/Command/LazyCommand.php +++ b/vendor/symfony/console/Command/LazyCommand.php @@ -8,17 +8,17 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202608\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202608\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202609\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202609\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Nicolas Grekas */ diff --git a/vendor/symfony/console/Command/ListCommand.php b/vendor/symfony/console/Command/ListCommand.php index e995cfa54be..b4b2a1ed1b5 100644 --- a/vendor/symfony/console/Command/ListCommand.php +++ b/vendor/symfony/console/Command/ListCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; - -use RectorPrefix202608\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202608\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +namespace RectorPrefix202609\Symfony\Component\Console\Command; + +use RectorPrefix202609\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202609\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * ListCommand displays the list of all available commands for the application. * diff --git a/vendor/symfony/console/Command/LockableTrait.php b/vendor/symfony/console/Command/LockableTrait.php index caa5bd53c44..003c06757f1 100644 --- a/vendor/symfony/console/Command/LockableTrait.php +++ b/vendor/symfony/console/Command/LockableTrait.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202608\Symfony\Component\Lock\LockFactory; -use RectorPrefix202608\Symfony\Component\Lock\LockInterface; -use RectorPrefix202608\Symfony\Component\Lock\Store\FlockStore; -use RectorPrefix202608\Symfony\Component\Lock\Store\SemaphoreStore; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Lock\LockFactory; +use RectorPrefix202609\Symfony\Component\Lock\LockInterface; +use RectorPrefix202609\Symfony\Component\Lock\Store\FlockStore; +use RectorPrefix202609\Symfony\Component\Lock\Store\SemaphoreStore; /** * Basic lock feature for commands. * diff --git a/vendor/symfony/console/Command/SignalableCommandInterface.php b/vendor/symfony/console/Command/SignalableCommandInterface.php index 092be3f106a..0a33c7d4c68 100644 --- a/vendor/symfony/console/Command/SignalableCommandInterface.php +++ b/vendor/symfony/console/Command/SignalableCommandInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; /** * Interface for command reacting to signal. diff --git a/vendor/symfony/console/Command/TraceableCommand.php b/vendor/symfony/console/Command/TraceableCommand.php index baa637e8e2e..996c501ef89 100644 --- a/vendor/symfony/console/Command/TraceableCommand.php +++ b/vendor/symfony/console/Command/TraceableCommand.php @@ -8,18 +8,18 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Command; +namespace RectorPrefix202609\Symfony\Component\Console\Command; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202608\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Stopwatch\Stopwatch; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202609\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Stopwatch\Stopwatch; /** * @internal * diff --git a/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php b/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php index 8e0e4b8a3b1..3e51691db51 100644 --- a/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +++ b/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202609\Symfony\Component\Console\CommandLoader; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Robin Chalas */ diff --git a/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php b/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php index 064b69e4425..3f2e8751adb 100644 --- a/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +++ b/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202609\Symfony\Component\Console\CommandLoader; -use RectorPrefix202608\Psr\Container\ContainerInterface; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202609\Psr\Container\ContainerInterface; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Exception\CommandNotFoundException; /** * Loads commands from a PSR-11 container. * diff --git a/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php b/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php index e81199f6aa4..02daf437563 100644 --- a/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +++ b/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202609\Symfony\Component\Console\CommandLoader; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Exception\CommandNotFoundException; /** * A simple command loader using factories to instantiate commands lazily. * diff --git a/vendor/symfony/console/Completion/CompletionInput.php b/vendor/symfony/console/Completion/CompletionInput.php index 812d19ea59b..76a7ca1277a 100644 --- a/vendor/symfony/console/Completion/CompletionInput.php +++ b/vendor/symfony/console/Completion/CompletionInput.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Completion; +namespace RectorPrefix202609\Symfony\Component\Console\Completion; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202608\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; /** * An input specialized for shell completion. * diff --git a/vendor/symfony/console/Completion/CompletionSuggestions.php b/vendor/symfony/console/Completion/CompletionSuggestions.php index 95c1a19b3a3..90d6ec0c078 100644 --- a/vendor/symfony/console/Completion/CompletionSuggestions.php +++ b/vendor/symfony/console/Completion/CompletionSuggestions.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Completion; +namespace RectorPrefix202609\Symfony\Component\Console\Completion; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; /** * Stores all completion suggestions for the current input. * diff --git a/vendor/symfony/console/Completion/Output/BashCompletionOutput.php b/vendor/symfony/console/Completion/Output/BashCompletionOutput.php index 515cb113e5a..fca6dd6d1ff 100644 --- a/vendor/symfony/console/Completion/Output/BashCompletionOutput.php +++ b/vendor/symfony/console/Completion/Output/BashCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Completion\Output; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Wouter de Jong */ diff --git a/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php b/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php index daa965bdf9f..31c8035dd2a 100644 --- a/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php +++ b/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Completion\Output; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * Transforms the {@see CompletionSuggestions} object into output readable by the shell completion. * diff --git a/vendor/symfony/console/Completion/Output/FishCompletionOutput.php b/vendor/symfony/console/Completion/Output/FishCompletionOutput.php index 535db561a32..1d73716cc1b 100644 --- a/vendor/symfony/console/Completion/Output/FishCompletionOutput.php +++ b/vendor/symfony/console/Completion/Output/FishCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Completion\Output; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Guillaume Aveline */ diff --git a/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php b/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php index 048db7263d6..c3cb8d87f4b 100644 --- a/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php +++ b/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Completion\Output; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Jitendra A */ diff --git a/vendor/symfony/console/Completion/Suggestion.php b/vendor/symfony/console/Completion/Suggestion.php index 52e51c53773..c2f67b45db0 100644 --- a/vendor/symfony/console/Completion/Suggestion.php +++ b/vendor/symfony/console/Completion/Suggestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Completion; +namespace RectorPrefix202609\Symfony\Component\Console\Completion; /** * Represents a single suggested value. diff --git a/vendor/symfony/console/ConsoleEvents.php b/vendor/symfony/console/ConsoleEvents.php index 7c7b9baf584..b0af147ec1a 100644 --- a/vendor/symfony/console/ConsoleEvents.php +++ b/vendor/symfony/console/ConsoleEvents.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console; +namespace RectorPrefix202609\Symfony\Component\Console; -use RectorPrefix202608\Symfony\Component\Console\Event\ConsoleCommandEvent; -use RectorPrefix202608\Symfony\Component\Console\Event\ConsoleErrorEvent; -use RectorPrefix202608\Symfony\Component\Console\Event\ConsoleSignalEvent; -use RectorPrefix202608\Symfony\Component\Console\Event\ConsoleTerminateEvent; +use RectorPrefix202609\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202609\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202609\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202609\Symfony\Component\Console\Event\ConsoleTerminateEvent; /** * Contains all events dispatched by an Application. * diff --git a/vendor/symfony/console/Cursor.php b/vendor/symfony/console/Cursor.php index 5db3ebdb7f1..ab850c36839 100644 --- a/vendor/symfony/console/Cursor.php +++ b/vendor/symfony/console/Cursor.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console; +namespace RectorPrefix202609\Symfony\Component\Console; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Pierre du Plessis */ diff --git a/vendor/symfony/console/DataCollector/CommandDataCollector.php b/vendor/symfony/console/DataCollector/CommandDataCollector.php index c24a1cd9582..66e61972260 100644 --- a/vendor/symfony/console/DataCollector/CommandDataCollector.php +++ b/vendor/symfony/console/DataCollector/CommandDataCollector.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\DataCollector; +namespace RectorPrefix202609\Symfony\Component\Console\DataCollector; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Debug\CliRequest; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\SignalRegistry\SignalMap; -use RectorPrefix202608\Symfony\Component\HttpFoundation\Request; -use RectorPrefix202608\Symfony\Component\HttpFoundation\Response; -use RectorPrefix202608\Symfony\Component\HttpKernel\DataCollector\DataCollector; -use RectorPrefix202608\Symfony\Component\VarDumper\Cloner\Data; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Debug\CliRequest; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\SignalRegistry\SignalMap; +use RectorPrefix202609\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202609\Symfony\Component\HttpFoundation\Response; +use RectorPrefix202609\Symfony\Component\HttpKernel\DataCollector\DataCollector; +use RectorPrefix202609\Symfony\Component\VarDumper\Cloner\Data; /** * @internal * diff --git a/vendor/symfony/console/Debug/CliRequest.php b/vendor/symfony/console/Debug/CliRequest.php index 5b3e6343d5e..037a06581b2 100644 --- a/vendor/symfony/console/Debug/CliRequest.php +++ b/vendor/symfony/console/Debug/CliRequest.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Debug; +namespace RectorPrefix202609\Symfony\Component\Console\Debug; -use RectorPrefix202608\Symfony\Component\Console\Command\TraceableCommand; -use RectorPrefix202608\Symfony\Component\HttpFoundation\Request; -use RectorPrefix202608\Symfony\Component\HttpFoundation\Response; +use RectorPrefix202609\Symfony\Component\Console\Command\TraceableCommand; +use RectorPrefix202609\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202609\Symfony\Component\HttpFoundation\Response; /** * @internal */ diff --git a/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php index 807b6e45748..cbb6a35e04b 100644 --- a/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ b/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php @@ -8,18 +8,18 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\DependencyInjection; +namespace RectorPrefix202609\Symfony\Component\Console\DependencyInjection; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Command\LazyCommand; -use RectorPrefix202608\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; -use RectorPrefix202608\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202608\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use RectorPrefix202608\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; -use RectorPrefix202608\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202608\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202608\Symfony\Component\DependencyInjection\TypedReference; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202609\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; +use RectorPrefix202609\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use RectorPrefix202609\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use RectorPrefix202609\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; +use RectorPrefix202609\Symfony\Component\DependencyInjection\ContainerBuilder; +use RectorPrefix202609\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\DependencyInjection\Reference; +use RectorPrefix202609\Symfony\Component\DependencyInjection\TypedReference; /** * Registers console commands. * diff --git a/vendor/symfony/console/Descriptor/ApplicationDescription.php b/vendor/symfony/console/Descriptor/ApplicationDescription.php index c5454faca13..522c9bd42e1 100644 --- a/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ b/vendor/symfony/console/Descriptor/ApplicationDescription.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Jean-François Simon * diff --git a/vendor/symfony/console/Descriptor/Descriptor.php b/vendor/symfony/console/Descriptor/Descriptor.php index 643feb6f61a..9da49bbbc0e 100644 --- a/vendor/symfony/console/Descriptor/Descriptor.php +++ b/vendor/symfony/console/Descriptor/Descriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Jean-François Simon * diff --git a/vendor/symfony/console/Descriptor/DescriptorInterface.php b/vendor/symfony/console/Descriptor/DescriptorInterface.php index edf39f1bd0f..0bf84d0b658 100644 --- a/vendor/symfony/console/Descriptor/DescriptorInterface.php +++ b/vendor/symfony/console/Descriptor/DescriptorInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * Descriptor interface. * diff --git a/vendor/symfony/console/Descriptor/JsonDescriptor.php b/vendor/symfony/console/Descriptor/JsonDescriptor.php index f966b336336..9b635e8f617 100644 --- a/vendor/symfony/console/Descriptor/JsonDescriptor.php +++ b/vendor/symfony/console/Descriptor/JsonDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; /** * JSON descriptor. * diff --git a/vendor/symfony/console/Descriptor/MarkdownDescriptor.php b/vendor/symfony/console/Descriptor/MarkdownDescriptor.php index 5aaae99da62..4b029b764ad 100644 --- a/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +++ b/vendor/symfony/console/Descriptor/MarkdownDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * Markdown descriptor. * diff --git a/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php b/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php index 221ae33b9ea..5fb3c3a2b77 100644 --- a/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php +++ b/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\String\UnicodeString; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\String\UnicodeString; class ReStructuredTextDescriptor extends Descriptor { //

diff --git a/vendor/symfony/console/Descriptor/TextDescriptor.php b/vendor/symfony/console/Descriptor/TextDescriptor.php index 44898f9f981..c8eae102e66 100644 --- a/vendor/symfony/console/Descriptor/TextDescriptor.php +++ b/vendor/symfony/console/Descriptor/TextDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; /** * Text descriptor. * diff --git a/vendor/symfony/console/Descriptor/XmlDescriptor.php b/vendor/symfony/console/Descriptor/XmlDescriptor.php index 805fba9090f..1b1ace1fe9b 100644 --- a/vendor/symfony/console/Descriptor/XmlDescriptor.php +++ b/vendor/symfony/console/Descriptor/XmlDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202609\Symfony\Component\Console\Descriptor; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202608\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202608\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202609\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202609\Symfony\Component\Console\Input\InputOption; /** * XML descriptor. * diff --git a/vendor/symfony/console/Exception/CommandNotFoundException.php b/vendor/symfony/console/Exception/CommandNotFoundException.php index b9d1320ff9f..541a6c97dec 100644 --- a/vendor/symfony/console/Exception/CommandNotFoundException.php +++ b/vendor/symfony/console/Exception/CommandNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * Represents an incorrect command name typed in the console. diff --git a/vendor/symfony/console/Exception/ExceptionInterface.php b/vendor/symfony/console/Exception/ExceptionInterface.php index ff717ea47cb..ce4438e4e6a 100644 --- a/vendor/symfony/console/Exception/ExceptionInterface.php +++ b/vendor/symfony/console/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * ExceptionInterface. diff --git a/vendor/symfony/console/Exception/InvalidArgumentException.php b/vendor/symfony/console/Exception/InvalidArgumentException.php index 538ae089f0a..36a1553c80f 100644 --- a/vendor/symfony/console/Exception/InvalidArgumentException.php +++ b/vendor/symfony/console/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/symfony/console/Exception/InvalidOptionException.php b/vendor/symfony/console/Exception/InvalidOptionException.php index 89159098ecf..6597a30f7ba 100644 --- a/vendor/symfony/console/Exception/InvalidOptionException.php +++ b/vendor/symfony/console/Exception/InvalidOptionException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * Represents an incorrect option name or value typed in the console. diff --git a/vendor/symfony/console/Exception/LogicException.php b/vendor/symfony/console/Exception/LogicException.php index 8c9f72fbed9..473d8476b22 100644 --- a/vendor/symfony/console/Exception/LogicException.php +++ b/vendor/symfony/console/Exception/LogicException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/symfony/console/Exception/MissingInputException.php b/vendor/symfony/console/Exception/MissingInputException.php index 46417f84b9e..fc55387854b 100644 --- a/vendor/symfony/console/Exception/MissingInputException.php +++ b/vendor/symfony/console/Exception/MissingInputException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * Represents failure to read input from stdin. diff --git a/vendor/symfony/console/Exception/NamespaceNotFoundException.php b/vendor/symfony/console/Exception/NamespaceNotFoundException.php index f63bb5847d7..f6f8b34d30e 100644 --- a/vendor/symfony/console/Exception/NamespaceNotFoundException.php +++ b/vendor/symfony/console/Exception/NamespaceNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * Represents an incorrect namespace typed in the console. diff --git a/vendor/symfony/console/Exception/RunCommandFailedException.php b/vendor/symfony/console/Exception/RunCommandFailedException.php index 807c6fea5ea..09f0495321f 100644 --- a/vendor/symfony/console/Exception/RunCommandFailedException.php +++ b/vendor/symfony/console/Exception/RunCommandFailedException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; -use RectorPrefix202608\Symfony\Component\Console\Messenger\RunCommandContext; +use RectorPrefix202609\Symfony\Component\Console\Messenger\RunCommandContext; /** * @author Kevin Bond */ diff --git a/vendor/symfony/console/Exception/RuntimeException.php b/vendor/symfony/console/Exception/RuntimeException.php index 86c9fcc4edb..8d86a6c1b79 100644 --- a/vendor/symfony/console/Exception/RuntimeException.php +++ b/vendor/symfony/console/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Exception; +namespace RectorPrefix202609\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/symfony/console/Formatter/NullOutputFormatter.php b/vendor/symfony/console/Formatter/NullOutputFormatter.php index 1acc23f0630..ab4e66c9911 100644 --- a/vendor/symfony/console/Formatter/NullOutputFormatter.php +++ b/vendor/symfony/console/Formatter/NullOutputFormatter.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo diff --git a/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php b/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php index 8042eb91b04..949d83375a6 100644 --- a/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php +++ b/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo diff --git a/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/symfony/console/Formatter/OutputFormatter.php index baed6eb20fd..505a18d4a22 100644 --- a/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/symfony/console/Formatter/OutputFormatter.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Helper\Helper; -use function RectorPrefix202608\Symfony\Component\String\b; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Helper\Helper; +use function RectorPrefix202609\Symfony\Component\String\b; /** * Formatter class for console output. * diff --git a/vendor/symfony/console/Formatter/OutputFormatterInterface.php b/vendor/symfony/console/Formatter/OutputFormatterInterface.php index 12003cebb8c..0d5ee31ade8 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterInterface.php +++ b/vendor/symfony/console/Formatter/OutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; /** * Formatter interface for console output. diff --git a/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/vendor/symfony/console/Formatter/OutputFormatterStyle.php index 594a5e09c5f..243cc0f0e9d 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ b/vendor/symfony/console/Formatter/OutputFormatterStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; -use RectorPrefix202608\Symfony\Component\Console\Color; +use RectorPrefix202609\Symfony\Component\Console\Color; /** * Formatter style class for defining styles. * diff --git a/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php index 98a4c3a02a3..a4a8a0c221f 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +++ b/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; /** * Formatter style interface for defining styles. diff --git a/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php index 1d735d8ff16..272a4b967b9 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +++ b/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Contracts\Service\ResetInterface; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Contracts\Service\ResetInterface; /** * @author Jean-François Simon */ diff --git a/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php b/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php index 78043bc0b7c..47ff51263e6 100644 --- a/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +++ b/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Formatter; +namespace RectorPrefix202609\Symfony\Component\Console\Formatter; /** * Formatter interface for console output that supports word wrapping. diff --git a/vendor/symfony/console/Helper/DebugFormatterHelper.php b/vendor/symfony/console/Helper/DebugFormatterHelper.php index 76441208003..14b30548df0 100644 --- a/vendor/symfony/console/Helper/DebugFormatterHelper.php +++ b/vendor/symfony/console/Helper/DebugFormatterHelper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; /** * Helps outputting debug information when running an external program from a command. diff --git a/vendor/symfony/console/Helper/DescriptorHelper.php b/vendor/symfony/console/Helper/DescriptorHelper.php index 6ac4ab5cba8..5573216233c 100644 --- a/vendor/symfony/console/Helper/DescriptorHelper.php +++ b/vendor/symfony/console/Helper/DescriptorHelper.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Descriptor\DescriptorInterface; -use RectorPrefix202608\Symfony\Component\Console\Descriptor\JsonDescriptor; -use RectorPrefix202608\Symfony\Component\Console\Descriptor\MarkdownDescriptor; -use RectorPrefix202608\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; -use RectorPrefix202608\Symfony\Component\Console\Descriptor\TextDescriptor; -use RectorPrefix202608\Symfony\Component\Console\Descriptor\XmlDescriptor; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Descriptor\DescriptorInterface; +use RectorPrefix202609\Symfony\Component\Console\Descriptor\JsonDescriptor; +use RectorPrefix202609\Symfony\Component\Console\Descriptor\MarkdownDescriptor; +use RectorPrefix202609\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; +use RectorPrefix202609\Symfony\Component\Console\Descriptor\TextDescriptor; +use RectorPrefix202609\Symfony\Component\Console\Descriptor\XmlDescriptor; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * This class adds helper method to describe objects in various formats. * diff --git a/vendor/symfony/console/Helper/Dumper.php b/vendor/symfony/console/Helper/Dumper.php index 3790e15dccc..71440bb3bac 100644 --- a/vendor/symfony/console/Helper/Dumper.php +++ b/vendor/symfony/console/Helper/Dumper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\VarDumper\Cloner\ClonerInterface; -use RectorPrefix202608\Symfony\Component\VarDumper\Cloner\VarCloner; -use RectorPrefix202608\Symfony\Component\VarDumper\Dumper\CliDumper; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\VarDumper\Cloner\ClonerInterface; +use RectorPrefix202609\Symfony\Component\VarDumper\Cloner\VarCloner; +use RectorPrefix202609\Symfony\Component\VarDumper\Dumper\CliDumper; /** * @author Roland Franssen */ diff --git a/vendor/symfony/console/Helper/FormatterHelper.php b/vendor/symfony/console/Helper/FormatterHelper.php index 5c288ad9b79..5535a2a3345 100644 --- a/vendor/symfony/console/Helper/FormatterHelper.php +++ b/vendor/symfony/console/Helper/FormatterHelper.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; /** * The Formatter class provides helpers to format messages. * diff --git a/vendor/symfony/console/Helper/Helper.php b/vendor/symfony/console/Helper/Helper.php index a044def36d3..326b8393115 100644 --- a/vendor/symfony/console/Helper/Helper.php +++ b/vendor/symfony/console/Helper/Helper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202608\Symfony\Component\String\UnicodeString; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\String\UnicodeString; /** * Helper is the base class for all helper classes. * diff --git a/vendor/symfony/console/Helper/HelperInterface.php b/vendor/symfony/console/Helper/HelperInterface.php index c4fe1a4f5ff..f4151c937cf 100644 --- a/vendor/symfony/console/Helper/HelperInterface.php +++ b/vendor/symfony/console/Helper/HelperInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; /** * HelperInterface is the interface all helpers must implement. diff --git a/vendor/symfony/console/Helper/HelperSet.php b/vendor/symfony/console/Helper/HelperSet.php index 95b5bd1d8e1..baef5c5b45e 100644 --- a/vendor/symfony/console/Helper/HelperSet.php +++ b/vendor/symfony/console/Helper/HelperSet.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; /** * HelperSet represents a set of helpers to be used with a command. * diff --git a/vendor/symfony/console/Helper/InputAwareHelper.php b/vendor/symfony/console/Helper/InputAwareHelper.php index f00ea947a7c..357db882c5f 100644 --- a/vendor/symfony/console/Helper/InputAwareHelper.php +++ b/vendor/symfony/console/Helper/InputAwareHelper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Input\InputAwareInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; /** * An implementation of InputAwareInterface for Helpers. * diff --git a/vendor/symfony/console/Helper/OutputWrapper.php b/vendor/symfony/console/Helper/OutputWrapper.php index 00b75d3e16c..8056f6fd6aa 100644 --- a/vendor/symfony/console/Helper/OutputWrapper.php +++ b/vendor/symfony/console/Helper/OutputWrapper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; /** * Simple output wrapper for "tagged outputs" instead of wordwrap(). This solution is based on a StackOverflow diff --git a/vendor/symfony/console/Helper/ProcessHelper.php b/vendor/symfony/console/Helper/ProcessHelper.php index 555d76caaa2..ea5de37db8d 100644 --- a/vendor/symfony/console/Helper/ProcessHelper.php +++ b/vendor/symfony/console/Helper/ProcessHelper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202608\Symfony\Component\Process\Process; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202609\Symfony\Component\Process\Process; /** * The ProcessHelper class provides helpers to run external processes. * diff --git a/vendor/symfony/console/Helper/ProgressBar.php b/vendor/symfony/console/Helper/ProgressBar.php index aa5835ec700..dff0fea00b9 100644 --- a/vendor/symfony/console/Helper/ProgressBar.php +++ b/vendor/symfony/console/Helper/ProgressBar.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Cursor; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Terminal; +use RectorPrefix202609\Symfony\Component\Console\Cursor; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Terminal; /** * The ProgressBar provides helpers to display progress output. * diff --git a/vendor/symfony/console/Helper/ProgressIndicator.php b/vendor/symfony/console/Helper/ProgressIndicator.php index 2f68644a1cd..7392fe0d603 100644 --- a/vendor/symfony/console/Helper/ProgressIndicator.php +++ b/vendor/symfony/console/Helper/ProgressIndicator.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Kevin Bond */ diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index 6339908232b..708c611513f 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -8,22 +8,22 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Cursor; -use RectorPrefix202608\Symfony\Component\Console\Exception\MissingInputException; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterStyle; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Input\StreamableInputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202608\Symfony\Component\Console\Question\Question; -use RectorPrefix202608\Symfony\Component\Console\Terminal; -use function RectorPrefix202608\Symfony\Component\String\s; +use RectorPrefix202609\Symfony\Component\Console\Cursor; +use RectorPrefix202609\Symfony\Component\Console\Exception\MissingInputException; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterStyle; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Input\StreamableInputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202609\Symfony\Component\Console\Question\Question; +use RectorPrefix202609\Symfony\Component\Console\Terminal; +use function RectorPrefix202609\Symfony\Component\String\s; /** * The QuestionHelper class provides helpers to interact with the user. * diff --git a/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/vendor/symfony/console/Helper/SymfonyQuestionHelper.php index 999266b898c..5eeb1ad5868 100644 --- a/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +++ b/vendor/symfony/console/Helper/SymfonyQuestionHelper.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202608\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202608\Symfony\Component\Console\Question\Question; -use RectorPrefix202608\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202609\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202609\Symfony\Component\Console\Question\Question; +use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; /** * Symfony Style Guide compliant question helper. * diff --git a/vendor/symfony/console/Helper/Table.php b/vendor/symfony/console/Helper/Table.php index 04767ef5ad0..62c1d91949f 100644 --- a/vendor/symfony/console/Helper/Table.php +++ b/vendor/symfony/console/Helper/Table.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * Provides helpers to display a table. * diff --git a/vendor/symfony/console/Helper/TableCell.php b/vendor/symfony/console/Helper/TableCell.php index d03a2079106..b4c4db55c1f 100644 --- a/vendor/symfony/console/Helper/TableCell.php +++ b/vendor/symfony/console/Helper/TableCell.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Abdellatif Ait boudad */ diff --git a/vendor/symfony/console/Helper/TableCellStyle.php b/vendor/symfony/console/Helper/TableCellStyle.php index c4eeb03f929..f0a37859360 100644 --- a/vendor/symfony/console/Helper/TableCellStyle.php +++ b/vendor/symfony/console/Helper/TableCellStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Yewhen Khoptynskyi */ diff --git a/vendor/symfony/console/Helper/TableRows.php b/vendor/symfony/console/Helper/TableRows.php index c89c63ca2e3..8fee35983e0 100644 --- a/vendor/symfony/console/Helper/TableRows.php +++ b/vendor/symfony/console/Helper/TableRows.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; /** * @internal diff --git a/vendor/symfony/console/Helper/TableSeparator.php b/vendor/symfony/console/Helper/TableSeparator.php index d53e42a312b..d940bf45ddc 100644 --- a/vendor/symfony/console/Helper/TableSeparator.php +++ b/vendor/symfony/console/Helper/TableSeparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; /** * Marks a row as being a separator. diff --git a/vendor/symfony/console/Helper/TableStyle.php b/vendor/symfony/console/Helper/TableStyle.php index 6599b859bdd..4941ca26914 100644 --- a/vendor/symfony/console/Helper/TableStyle.php +++ b/vendor/symfony/console/Helper/TableStyle.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; /** * Defines the styles for a Table. * diff --git a/vendor/symfony/console/Helper/TerminalInputHelper.php b/vendor/symfony/console/Helper/TerminalInputHelper.php index cd44f0fe5db..12d560a03bc 100644 --- a/vendor/symfony/console/Helper/TerminalInputHelper.php +++ b/vendor/symfony/console/Helper/TerminalInputHelper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Helper; +namespace RectorPrefix202609\Symfony\Component\Console\Helper; /** * TerminalInputHelper stops Ctrl-C and similar signals from leaving the terminal in @@ -101,7 +101,7 @@ public function finish(): void } private function createSignalHandlers(): void { - if (!\function_exists('pcntl_async_signals') || !\function_exists('pcntl_signal') && !\function_exists('RectorPrefix202608\pcntl_signal')) { + if (!\function_exists('pcntl_async_signals') || !\function_exists('pcntl_signal') && !\function_exists('RectorPrefix202609\pcntl_signal')) { return; } pcntl_async_signals(\true); diff --git a/vendor/symfony/console/Input/ArgvInput.php b/vendor/symfony/console/Input/ArgvInput.php index fe70e4fe5c5..9c69dd97b7f 100644 --- a/vendor/symfony/console/Input/ArgvInput.php +++ b/vendor/symfony/console/Input/ArgvInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; /** * ArgvInput represents an input coming from the CLI arguments. * diff --git a/vendor/symfony/console/Input/ArrayInput.php b/vendor/symfony/console/Input/ArrayInput.php index e763dcd52f4..6b2327df632 100644 --- a/vendor/symfony/console/Input/ArrayInput.php +++ b/vendor/symfony/console/Input/ArrayInput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidOptionException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidOptionException; /** * ArrayInput represents an input provided as an array. * diff --git a/vendor/symfony/console/Input/Input.php b/vendor/symfony/console/Input/Input.php index 33250c11c50..2a5bc353a34 100644 --- a/vendor/symfony/console/Input/Input.php +++ b/vendor/symfony/console/Input/Input.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; /** * Input is the base class for all concrete Input classes. * diff --git a/vendor/symfony/console/Input/InputArgument.php b/vendor/symfony/console/Input/InputArgument.php index e62c663131d..a6c51309f40 100644 --- a/vendor/symfony/console/Input/InputArgument.php +++ b/vendor/symfony/console/Input/InputArgument.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line argument. * diff --git a/vendor/symfony/console/Input/InputAwareInterface.php b/vendor/symfony/console/Input/InputAwareInterface.php index ff732285f76..ec2ac8ccad7 100644 --- a/vendor/symfony/console/Input/InputAwareInterface.php +++ b/vendor/symfony/console/Input/InputAwareInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; /** * InputAwareInterface should be implemented by classes that depends on the diff --git a/vendor/symfony/console/Input/InputDefinition.php b/vendor/symfony/console/Input/InputDefinition.php index acb253eab98..67c70a6e744 100644 --- a/vendor/symfony/console/Input/InputDefinition.php +++ b/vendor/symfony/console/Input/InputDefinition.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; /** * A InputDefinition represents a set of valid command line arguments and options. * diff --git a/vendor/symfony/console/Input/InputInterface.php b/vendor/symfony/console/Input/InputInterface.php index 9ebe7aea422..52858790ab9 100644 --- a/vendor/symfony/console/Input/InputInterface.php +++ b/vendor/symfony/console/Input/InputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; /** * InputInterface is the interface implemented by all input classes. * diff --git a/vendor/symfony/console/Input/InputOption.php b/vendor/symfony/console/Input/InputOption.php index d19351f9a1a..ebdbec77ac1 100644 --- a/vendor/symfony/console/Input/InputOption.php +++ b/vendor/symfony/console/Input/InputOption.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202608\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202608\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202609\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202609\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line option. * diff --git a/vendor/symfony/console/Input/StreamableInputInterface.php b/vendor/symfony/console/Input/StreamableInputInterface.php index 6e88ed7231d..42042b77f20 100644 --- a/vendor/symfony/console/Input/StreamableInputInterface.php +++ b/vendor/symfony/console/Input/StreamableInputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; /** * StreamableInputInterface is the interface implemented by all input classes diff --git a/vendor/symfony/console/Input/StringInput.php b/vendor/symfony/console/Input/StringInput.php index bf819b613da..a0bfa6a44e6 100644 --- a/vendor/symfony/console/Input/StringInput.php +++ b/vendor/symfony/console/Input/StringInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Input; +namespace RectorPrefix202609\Symfony\Component\Console\Input; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; /** * StringInput represents an input provided as a string. * diff --git a/vendor/symfony/console/Logger/ConsoleLogger.php b/vendor/symfony/console/Logger/ConsoleLogger.php index b0cb8d1317f..f0b103a9293 100644 --- a/vendor/symfony/console/Logger/ConsoleLogger.php +++ b/vendor/symfony/console/Logger/ConsoleLogger.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Logger; +namespace RectorPrefix202609\Symfony\Component\Console\Logger; -use RectorPrefix202608\Psr\Log\AbstractLogger; -use RectorPrefix202608\Psr\Log\InvalidArgumentException; -use RectorPrefix202608\Psr\Log\LogLevel; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Psr\Log\AbstractLogger; +use RectorPrefix202609\Psr\Log\InvalidArgumentException; +use RectorPrefix202609\Psr\Log\LogLevel; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * PSR-3 compliant console logger. * diff --git a/vendor/symfony/console/Messenger/RunCommandContext.php b/vendor/symfony/console/Messenger/RunCommandContext.php index 1e40fee1f44..f22f1b24459 100644 --- a/vendor/symfony/console/Messenger/RunCommandContext.php +++ b/vendor/symfony/console/Messenger/RunCommandContext.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Messenger; +namespace RectorPrefix202609\Symfony\Component\Console\Messenger; /** * @author Kevin Bond diff --git a/vendor/symfony/console/Messenger/RunCommandMessage.php b/vendor/symfony/console/Messenger/RunCommandMessage.php index 3cdd37a67e2..9972f2a0015 100644 --- a/vendor/symfony/console/Messenger/RunCommandMessage.php +++ b/vendor/symfony/console/Messenger/RunCommandMessage.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Messenger; +namespace RectorPrefix202609\Symfony\Component\Console\Messenger; -use RectorPrefix202608\Symfony\Component\Console\Exception\RunCommandFailedException; +use RectorPrefix202609\Symfony\Component\Console\Exception\RunCommandFailedException; /** * @author Kevin Bond */ diff --git a/vendor/symfony/console/Messenger/RunCommandMessageHandler.php b/vendor/symfony/console/Messenger/RunCommandMessageHandler.php index 0749bb06b01..ceed8afbae2 100644 --- a/vendor/symfony/console/Messenger/RunCommandMessageHandler.php +++ b/vendor/symfony/console/Messenger/RunCommandMessageHandler.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Messenger; +namespace RectorPrefix202609\Symfony\Component\Console\Messenger; -use RectorPrefix202608\Symfony\Component\Console\Application; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Exception\RunCommandFailedException; -use RectorPrefix202608\Symfony\Component\Console\Input\StringInput; -use RectorPrefix202608\Symfony\Component\Console\Output\BufferedOutput; -use RectorPrefix202608\Symfony\Component\Messenger\Exception\RecoverableExceptionInterface; -use RectorPrefix202608\Symfony\Component\Messenger\Exception\UnrecoverableExceptionInterface; +use RectorPrefix202609\Symfony\Component\Console\Application; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Exception\RunCommandFailedException; +use RectorPrefix202609\Symfony\Component\Console\Input\StringInput; +use RectorPrefix202609\Symfony\Component\Console\Output\BufferedOutput; +use RectorPrefix202609\Symfony\Component\Messenger\Exception\RecoverableExceptionInterface; +use RectorPrefix202609\Symfony\Component\Messenger\Exception\UnrecoverableExceptionInterface; /** * @author Kevin Bond */ diff --git a/vendor/symfony/console/Output/AnsiColorMode.php b/vendor/symfony/console/Output/AnsiColorMode.php index 4e32fbd32cf..574ebab4ae2 100644 --- a/vendor/symfony/console/Output/AnsiColorMode.php +++ b/vendor/symfony/console/Output/AnsiColorMode.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; class AnsiColorMode { public const Ansi4 = 'ansi4'; diff --git a/vendor/symfony/console/Output/BufferedOutput.php b/vendor/symfony/console/Output/BufferedOutput.php index ed91efc4dc6..247386db089 100644 --- a/vendor/symfony/console/Output/BufferedOutput.php +++ b/vendor/symfony/console/Output/BufferedOutput.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; /** * @author Jean-François Simon diff --git a/vendor/symfony/console/Output/ConsoleOutput.php b/vendor/symfony/console/Output/ConsoleOutput.php index 6a52438709e..d69df89d333 100644 --- a/vendor/symfony/console/Output/ConsoleOutput.php +++ b/vendor/symfony/console/Output/ConsoleOutput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * ConsoleOutput is the default class for all CLI output. It uses STDOUT and STDERR. * diff --git a/vendor/symfony/console/Output/ConsoleOutputInterface.php b/vendor/symfony/console/Output/ConsoleOutputInterface.php index 8e3d1099b16..1ebc229533d 100644 --- a/vendor/symfony/console/Output/ConsoleOutputInterface.php +++ b/vendor/symfony/console/Output/ConsoleOutputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; /** * ConsoleOutputInterface is the interface implemented by ConsoleOutput class. diff --git a/vendor/symfony/console/Output/ConsoleSectionOutput.php b/vendor/symfony/console/Output/ConsoleSectionOutput.php index 363f38fe27d..3e886cae996 100644 --- a/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202608\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202608\Symfony\Component\Console\Terminal; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202609\Symfony\Component\Console\Terminal; /** * @author Pierre du Plessis * @author Gabriel Ostrolucký diff --git a/vendor/symfony/console/Output/NullOutput.php b/vendor/symfony/console/Output/NullOutput.php index 5b5652d0099..08b5ad03831 100644 --- a/vendor/symfony/console/Output/NullOutput.php +++ b/vendor/symfony/console/Output/NullOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Formatter\NullOutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Formatter\NullOutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * NullOutput suppresses all output. * diff --git a/vendor/symfony/console/Output/Output.php b/vendor/symfony/console/Output/Output.php index 84f5a320c17..2dab865a1dc 100644 --- a/vendor/symfony/console/Output/Output.php +++ b/vendor/symfony/console/Output/Output.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * Base class for output classes. * diff --git a/vendor/symfony/console/Output/OutputInterface.php b/vendor/symfony/console/Output/OutputInterface.php index 1c4efaba5d1..37332657ed2 100644 --- a/vendor/symfony/console/Output/OutputInterface.php +++ b/vendor/symfony/console/Output/OutputInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * OutputInterface is the interface implemented by all Output classes. * diff --git a/vendor/symfony/console/Output/StreamOutput.php b/vendor/symfony/console/Output/StreamOutput.php index d0d81e07ce1..1f854e9dc62 100644 --- a/vendor/symfony/console/Output/StreamOutput.php +++ b/vendor/symfony/console/Output/StreamOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * StreamOutput writes the output to a given stream. * diff --git a/vendor/symfony/console/Output/TrimmedBufferOutput.php b/vendor/symfony/console/Output/TrimmedBufferOutput.php index 5dc4448a1a0..a2cdb44eb4d 100644 --- a/vendor/symfony/console/Output/TrimmedBufferOutput.php +++ b/vendor/symfony/console/Output/TrimmedBufferOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Output; +namespace RectorPrefix202609\Symfony\Component\Console\Output; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * A BufferedOutput that keeps only the last N chars. * diff --git a/vendor/symfony/console/Question/ChoiceQuestion.php b/vendor/symfony/console/Question/ChoiceQuestion.php index 7de4858972e..0b271fcefe8 100644 --- a/vendor/symfony/console/Question/ChoiceQuestion.php +++ b/vendor/symfony/console/Question/ChoiceQuestion.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Question; +namespace RectorPrefix202609\Symfony\Component\Console\Question; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; /** * Represents a choice question. * diff --git a/vendor/symfony/console/Question/ConfirmationQuestion.php b/vendor/symfony/console/Question/ConfirmationQuestion.php index bd0a7455c8f..3158e9de484 100644 --- a/vendor/symfony/console/Question/ConfirmationQuestion.php +++ b/vendor/symfony/console/Question/ConfirmationQuestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Question; +namespace RectorPrefix202609\Symfony\Component\Console\Question; /** * Represents a yes/no question. diff --git a/vendor/symfony/console/Question/Question.php b/vendor/symfony/console/Question/Question.php index 018bed3a8b3..2ff768e1027 100644 --- a/vendor/symfony/console/Question/Question.php +++ b/vendor/symfony/console/Question/Question.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Question; +namespace RectorPrefix202609\Symfony\Component\Console\Question; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\LogicException; /** * Represents a Question. * diff --git a/vendor/symfony/console/SignalRegistry/SignalMap.php b/vendor/symfony/console/SignalRegistry/SignalMap.php index 5765d2e206f..ba995968691 100644 --- a/vendor/symfony/console/SignalRegistry/SignalMap.php +++ b/vendor/symfony/console/SignalRegistry/SignalMap.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202609\Symfony\Component\Console\SignalRegistry; /** * @author Grégoire Pineau diff --git a/vendor/symfony/console/SignalRegistry/SignalRegistry.php b/vendor/symfony/console/SignalRegistry/SignalRegistry.php index edce7368cb1..c1b8799d037 100644 --- a/vendor/symfony/console/SignalRegistry/SignalRegistry.php +++ b/vendor/symfony/console/SignalRegistry/SignalRegistry.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202609\Symfony\Component\Console\SignalRegistry; final class SignalRegistry { diff --git a/vendor/symfony/console/SingleCommandApplication.php b/vendor/symfony/console/SingleCommandApplication.php index 7e8f6a8f746..1098db13171 100644 --- a/vendor/symfony/console/SingleCommandApplication.php +++ b/vendor/symfony/console/SingleCommandApplication.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console; +namespace RectorPrefix202609\Symfony\Component\Console; -use RectorPrefix202608\Symfony\Component\Console\Command\Command; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Command\Command; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * @author Grégoire Pineau */ diff --git a/vendor/symfony/console/Style/OutputStyle.php b/vendor/symfony/console/Style/OutputStyle.php index f2604f65dbe..fb6ebd58fbe 100644 --- a/vendor/symfony/console/Style/OutputStyle.php +++ b/vendor/symfony/console/Style/OutputStyle.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Style; +namespace RectorPrefix202609\Symfony\Component\Console\Style; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202608\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202609\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; /** * Decorates output to add console style guide helpers. * diff --git a/vendor/symfony/console/Style/StyleInterface.php b/vendor/symfony/console/Style/StyleInterface.php index b52b4af0217..5752524b5bc 100644 --- a/vendor/symfony/console/Style/StyleInterface.php +++ b/vendor/symfony/console/Style/StyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Style; +namespace RectorPrefix202609\Symfony\Component\Console\Style; /** * Output style helpers. diff --git a/vendor/symfony/console/Style/SymfonyStyle.php b/vendor/symfony/console/Style/SymfonyStyle.php index 757d510cc38..b9502577d88 100644 --- a/vendor/symfony/console/Style/SymfonyStyle.php +++ b/vendor/symfony/console/Style/SymfonyStyle.php @@ -8,27 +8,27 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console\Style; +namespace RectorPrefix202609\Symfony\Component\Console\Style; -use RectorPrefix202608\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202608\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202608\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202608\Symfony\Component\Console\Helper\OutputWrapper; -use RectorPrefix202608\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202608\Symfony\Component\Console\Helper\SymfonyQuestionHelper; -use RectorPrefix202608\Symfony\Component\Console\Helper\Table; -use RectorPrefix202608\Symfony\Component\Console\Helper\TableCell; -use RectorPrefix202608\Symfony\Component\Console\Helper\TableSeparator; -use RectorPrefix202608\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202608\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202608\Symfony\Component\Console\Output\TrimmedBufferOutput; -use RectorPrefix202608\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202608\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202608\Symfony\Component\Console\Question\Question; -use RectorPrefix202608\Symfony\Component\Console\Terminal; +use RectorPrefix202609\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202609\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202609\Symfony\Component\Console\Helper\OutputWrapper; +use RectorPrefix202609\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202609\Symfony\Component\Console\Helper\SymfonyQuestionHelper; +use RectorPrefix202609\Symfony\Component\Console\Helper\Table; +use RectorPrefix202609\Symfony\Component\Console\Helper\TableCell; +use RectorPrefix202609\Symfony\Component\Console\Helper\TableSeparator; +use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202609\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202609\Symfony\Component\Console\Output\TrimmedBufferOutput; +use RectorPrefix202609\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202609\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202609\Symfony\Component\Console\Question\Question; +use RectorPrefix202609\Symfony\Component\Console\Terminal; /** * Output decorator helpers for the Symfony Style Guide. * diff --git a/vendor/symfony/console/Terminal.php b/vendor/symfony/console/Terminal.php index 535ad199ce9..6f99f03b559 100644 --- a/vendor/symfony/console/Terminal.php +++ b/vendor/symfony/console/Terminal.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Console; +namespace RectorPrefix202609\Symfony\Component\Console; -use RectorPrefix202608\Symfony\Component\Console\Output\AnsiColorMode; +use RectorPrefix202609\Symfony\Component\Console\Output\AnsiColorMode; class Terminal { public const DEFAULT_COLOR_MODE = AnsiColorMode::Ansi4; @@ -100,7 +100,7 @@ public static function hasSttyAvailable(): bool return self::$stty; } // skip check if shell_exec function is disabled - if (!\function_exists('shell_exec') && !\function_exists('RectorPrefix202608\shell_exec')) { + if (!\function_exists('shell_exec') && !\function_exists('RectorPrefix202609\shell_exec')) { return \false; } return self::$stty = (bool) @shell_exec('stty 2> ' . ('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null')); @@ -176,7 +176,7 @@ private static function getSttyColumns(): ?string */ private static function readFromProcess($command): ?string { - if (!\function_exists('proc_open') && !\function_exists('RectorPrefix202608\proc_open')) { + if (!\function_exists('proc_open') && !\function_exists('RectorPrefix202609\proc_open')) { return null; } $descriptorspec = [1 => ['pipe', 'w'], 2 => ['pipe', 'w']]; diff --git a/vendor/symfony/console/composer.json b/vendor/symfony/console/composer.json index 90fa6ef6485..89046a3429f 100644 --- a/vendor/symfony/console/composer.json +++ b/vendor/symfony/console/composer.json @@ -52,7 +52,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Console\\": "" + "RectorPrefix202609\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/symfony/deprecation-contracts/function.php b/vendor/symfony/deprecation-contracts/function.php index ca4b8093d2a..7bacb43d22d 100644 --- a/vendor/symfony/deprecation-contracts/function.php +++ b/vendor/symfony/deprecation-contracts/function.php @@ -1,6 +1,6 @@ diff --git a/vendor/symfony/filesystem/Exception/RuntimeException.php b/vendor/symfony/filesystem/Exception/RuntimeException.php index b113f627087..6376058fef9 100644 --- a/vendor/symfony/filesystem/Exception/RuntimeException.php +++ b/vendor/symfony/filesystem/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202609\Symfony\Component\Filesystem\Exception; /** * @author Théo Fidry diff --git a/vendor/symfony/filesystem/Filesystem.php b/vendor/symfony/filesystem/Filesystem.php index 5d0332f2e42..76cd86de820 100644 --- a/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/symfony/filesystem/Filesystem.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Filesystem; +namespace RectorPrefix202609\Symfony\Component\Filesystem; -use RectorPrefix202608\Symfony\Component\Filesystem\Exception\FileNotFoundException; -use RectorPrefix202608\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Filesystem\Exception\IOException; +use RectorPrefix202609\Symfony\Component\Filesystem\Exception\FileNotFoundException; +use RectorPrefix202609\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Filesystem\Exception\IOException; /** * Provides basic utility to manipulate the file system. * diff --git a/vendor/symfony/filesystem/Path.php b/vendor/symfony/filesystem/Path.php index 70a615a6240..c40188c4b32 100644 --- a/vendor/symfony/filesystem/Path.php +++ b/vendor/symfony/filesystem/Path.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Filesystem; +namespace RectorPrefix202609\Symfony\Component\Filesystem; -use RectorPrefix202608\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\Filesystem\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\Filesystem\Exception\RuntimeException; /** * Contains utility methods for handling path strings. * diff --git a/vendor/symfony/filesystem/composer.json b/vendor/symfony/filesystem/composer.json index 6db4626b64c..94625312b8f 100644 --- a/vendor/symfony/filesystem/composer.json +++ b/vendor/symfony/filesystem/composer.json @@ -26,7 +26,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202609\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/symfony/finder/Comparator/Comparator.php b/vendor/symfony/finder/Comparator/Comparator.php index fca59e2bac4..591adb992c1 100644 --- a/vendor/symfony/finder/Comparator/Comparator.php +++ b/vendor/symfony/finder/Comparator/Comparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202609\Symfony\Component\Finder\Comparator; /** * @author Fabien Potencier diff --git a/vendor/symfony/finder/Comparator/DateComparator.php b/vendor/symfony/finder/Comparator/DateComparator.php index 49ac5c8111e..ab2cc62495b 100644 --- a/vendor/symfony/finder/Comparator/DateComparator.php +++ b/vendor/symfony/finder/Comparator/DateComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202609\Symfony\Component\Finder\Comparator; /** * DateCompare compiles date comparisons. diff --git a/vendor/symfony/finder/Comparator/NumberComparator.php b/vendor/symfony/finder/Comparator/NumberComparator.php index 0dba347c4ac..9c09057163b 100644 --- a/vendor/symfony/finder/Comparator/NumberComparator.php +++ b/vendor/symfony/finder/Comparator/NumberComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202609\Symfony\Component\Finder\Comparator; /** * NumberComparator compiles a simple comparison to an anonymous diff --git a/vendor/symfony/finder/Exception/AccessDeniedException.php b/vendor/symfony/finder/Exception/AccessDeniedException.php index f8bd4d79568..37689c79759 100644 --- a/vendor/symfony/finder/Exception/AccessDeniedException.php +++ b/vendor/symfony/finder/Exception/AccessDeniedException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Exception; +namespace RectorPrefix202609\Symfony\Component\Finder\Exception; /** * @author Jean-François Simon diff --git a/vendor/symfony/finder/Exception/DirectoryNotFoundException.php b/vendor/symfony/finder/Exception/DirectoryNotFoundException.php index 5c1f38007cb..53904e6f2ba 100644 --- a/vendor/symfony/finder/Exception/DirectoryNotFoundException.php +++ b/vendor/symfony/finder/Exception/DirectoryNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Exception; +namespace RectorPrefix202609\Symfony\Component\Finder\Exception; /** * @author Andreas Erhard diff --git a/vendor/symfony/finder/Finder.php b/vendor/symfony/finder/Finder.php index c96456a3cbd..28186ad506b 100644 --- a/vendor/symfony/finder/Finder.php +++ b/vendor/symfony/finder/Finder.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder; +namespace RectorPrefix202609\Symfony\Component\Finder; -use RectorPrefix202608\Symfony\Component\Finder\Comparator\DateComparator; -use RectorPrefix202608\Symfony\Component\Finder\Comparator\NumberComparator; -use RectorPrefix202608\Symfony\Component\Finder\Exception\DirectoryNotFoundException; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\CustomFilterIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\FilenameFilterIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\LazyIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; -use RectorPrefix202608\Symfony\Component\Finder\Iterator\SortableIterator; +use RectorPrefix202609\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202609\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202609\Symfony\Component\Finder\Exception\DirectoryNotFoundException; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\CustomFilterIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\FilenameFilterIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\LazyIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; +use RectorPrefix202609\Symfony\Component\Finder\Iterator\SortableIterator; /** * Finder allows to build rules to find files and directories. * diff --git a/vendor/symfony/finder/Gitignore.php b/vendor/symfony/finder/Gitignore.php index d77790c4906..891a13c84cf 100644 --- a/vendor/symfony/finder/Gitignore.php +++ b/vendor/symfony/finder/Gitignore.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder; +namespace RectorPrefix202609\Symfony\Component\Finder; /** * Gitignore matches against text. diff --git a/vendor/symfony/finder/Glob.php b/vendor/symfony/finder/Glob.php index 07eb3a94148..6ea86cc05ae 100644 --- a/vendor/symfony/finder/Glob.php +++ b/vendor/symfony/finder/Glob.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder; +namespace RectorPrefix202609\Symfony\Component\Finder; /** * Glob matches globbing patterns against text. diff --git a/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/vendor/symfony/finder/Iterator/CustomFilterIterator.php index ddbebfeb74d..0277970856b 100644 --- a/vendor/symfony/finder/Iterator/CustomFilterIterator.php +++ b/vendor/symfony/finder/Iterator/CustomFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; /** * CustomFilterIterator filters files by applying anonymous functions. diff --git a/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php index ad330eaf885..d7b363e4783 100644 --- a/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +++ b/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202609\Symfony\Component\Finder\Comparator\DateComparator; /** * DateRangeFilterIterator filters out files that are not in the given date range (last modified dates). * diff --git a/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php index 6db02390881..77acffb7e9e 100644 --- a/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +++ b/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; /** * DepthRangeFilterIterator limits the directory depth. diff --git a/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php index 86f66b4ff41..af9690f6ccc 100644 --- a/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +++ b/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202609\Symfony\Component\Finder\SplFileInfo; /** * ExcludeDirectoryFilterIterator filters out directories. * diff --git a/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php index b8c273a104b..50209bd5f88 100644 --- a/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +++ b/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; /** * FileTypeFilterIterator only keeps files, directories, or both. diff --git a/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php index 486003b5e8d..39b287eb5e4 100644 --- a/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +++ b/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202609\Symfony\Component\Finder\SplFileInfo; /** * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings). * diff --git a/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/vendor/symfony/finder/Iterator/FilenameFilterIterator.php index 7df352b75af..a9bd820bdd8 100644 --- a/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +++ b/vendor/symfony/finder/Iterator/FilenameFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\Glob; +use RectorPrefix202609\Symfony\Component\Finder\Glob; /** * FilenameFilterIterator filters files by patterns (a regexp, a glob, or a string). * diff --git a/vendor/symfony/finder/Iterator/LazyIterator.php b/vendor/symfony/finder/Iterator/LazyIterator.php index bc4487d2d61..bb5f88ed405 100644 --- a/vendor/symfony/finder/Iterator/LazyIterator.php +++ b/vendor/symfony/finder/Iterator/LazyIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; /** * @author Jérémy Derussé diff --git a/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php index cadd3e7645a..fa381b40da5 100644 --- a/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +++ b/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; /** * MultiplePcreFilterIterator filters files using patterns (regexps, globs or strings). diff --git a/vendor/symfony/finder/Iterator/PathFilterIterator.php b/vendor/symfony/finder/Iterator/PathFilterIterator.php index d85c44114bf..5815c107cf7 100644 --- a/vendor/symfony/finder/Iterator/PathFilterIterator.php +++ b/vendor/symfony/finder/Iterator/PathFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202609\Symfony\Component\Finder\SplFileInfo; /** * PathFilterIterator filters files by path patterns (e.g. some/special/dir). * diff --git a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php index fca9849f1f6..9e77b1fdac2 100644 --- a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +++ b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\Exception\AccessDeniedException; -use RectorPrefix202608\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202609\Symfony\Component\Finder\Exception\AccessDeniedException; +use RectorPrefix202609\Symfony\Component\Finder\SplFileInfo; /** * Extends the \RecursiveDirectoryIterator to support relative paths. * diff --git a/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php index 82f3942bbe3..a46d2d8776a 100644 --- a/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +++ b/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202609\Symfony\Component\Finder\Comparator\NumberComparator; /** * SizeRangeFilterIterator filters out files that are not in the given size range. * diff --git a/vendor/symfony/finder/Iterator/SortableIterator.php b/vendor/symfony/finder/Iterator/SortableIterator.php index 41c2cad66f3..d9f08169564 100644 --- a/vendor/symfony/finder/Iterator/SortableIterator.php +++ b/vendor/symfony/finder/Iterator/SortableIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; /** * SortableIterator applies a sort on a given Iterator. diff --git a/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php b/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php index b58a11dfa29..baa7a4ef58e 100644 --- a/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php +++ b/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202609\Symfony\Component\Finder\Iterator; -use RectorPrefix202608\Symfony\Component\Finder\Gitignore; +use RectorPrefix202609\Symfony\Component\Finder\Gitignore; /** * @extends \FilterIterator */ diff --git a/vendor/symfony/finder/SplFileInfo.php b/vendor/symfony/finder/SplFileInfo.php index d30dd8db9fb..37dde091735 100644 --- a/vendor/symfony/finder/SplFileInfo.php +++ b/vendor/symfony/finder/SplFileInfo.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\Finder; +namespace RectorPrefix202609\Symfony\Component\Finder; /** * Extends \SplFileInfo to support relative paths. diff --git a/vendor/symfony/finder/composer.json b/vendor/symfony/finder/composer.json index 84d4ede72b0..13355686657 100644 --- a/vendor/symfony/finder/composer.json +++ b/vendor/symfony/finder/composer.json @@ -23,7 +23,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202609\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/symfony/service-contracts/Attribute/Required.php b/vendor/symfony/service-contracts/Attribute/Required.php index fe0044b354c..044b8c48722 100644 --- a/vendor/symfony/service-contracts/Attribute/Required.php +++ b/vendor/symfony/service-contracts/Attribute/Required.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202609\Symfony\Contracts\Service\Attribute; /** * A required dependency. diff --git a/vendor/symfony/service-contracts/Attribute/SubscribedService.php b/vendor/symfony/service-contracts/Attribute/SubscribedService.php index baefbf6a400..522aa61fe87 100644 --- a/vendor/symfony/service-contracts/Attribute/SubscribedService.php +++ b/vendor/symfony/service-contracts/Attribute/SubscribedService.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202609\Symfony\Contracts\Service\Attribute; -use RectorPrefix202608\Symfony\Contracts\Service\ServiceMethodsSubscriberTrait; -use RectorPrefix202608\Symfony\Contracts\Service\ServiceSubscriberInterface; +use RectorPrefix202609\Symfony\Contracts\Service\ServiceMethodsSubscriberTrait; +use RectorPrefix202609\Symfony\Contracts\Service\ServiceSubscriberInterface; /** * For use as the return value for {@see ServiceSubscriberInterface}. * diff --git a/vendor/symfony/service-contracts/ContainerAwareInterface.php b/vendor/symfony/service-contracts/ContainerAwareInterface.php index e5f4e2a92c3..bf8e1d8a9b1 100644 --- a/vendor/symfony/service-contracts/ContainerAwareInterface.php +++ b/vendor/symfony/service-contracts/ContainerAwareInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; /** * @deprecated use ContainerProviderInterface instead diff --git a/vendor/symfony/service-contracts/ContainerProviderInterface.php b/vendor/symfony/service-contracts/ContainerProviderInterface.php index 86299b26fd9..111ea09b95c 100644 --- a/vendor/symfony/service-contracts/ContainerProviderInterface.php +++ b/vendor/symfony/service-contracts/ContainerProviderInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; -use RectorPrefix202608\Psr\Container\ContainerInterface; +use RectorPrefix202609\Psr\Container\ContainerInterface; /** * Implemented by objects that expose a service container. */ diff --git a/vendor/symfony/service-contracts/ResetInterface.php b/vendor/symfony/service-contracts/ResetInterface.php index a9cce1f60ad..10fee542725 100644 --- a/vendor/symfony/service-contracts/ResetInterface.php +++ b/vendor/symfony/service-contracts/ResetInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; /** * Provides a way to reset an object to its initial state. diff --git a/vendor/symfony/service-contracts/ServiceCollectionInterface.php b/vendor/symfony/service-contracts/ServiceCollectionInterface.php index 87ff288ef76..11968291580 100644 --- a/vendor/symfony/service-contracts/ServiceCollectionInterface.php +++ b/vendor/symfony/service-contracts/ServiceCollectionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; /** * A ServiceProviderInterface that is also countable and iterable. diff --git a/vendor/symfony/service-contracts/ServiceLocatorTrait.php b/vendor/symfony/service-contracts/ServiceLocatorTrait.php index cac78b3cb5d..79a216e289f 100644 --- a/vendor/symfony/service-contracts/ServiceLocatorTrait.php +++ b/vendor/symfony/service-contracts/ServiceLocatorTrait.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; -use RectorPrefix202608\Psr\Container\ContainerExceptionInterface; -use RectorPrefix202608\Psr\Container\NotFoundExceptionInterface; +use RectorPrefix202609\Psr\Container\ContainerExceptionInterface; +use RectorPrefix202609\Psr\Container\NotFoundExceptionInterface; // Help opcache.preload discover always-needed symbols class_exists(ContainerExceptionInterface::class); class_exists(NotFoundExceptionInterface::class); diff --git a/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php b/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php index 1b91fcca02c..d59db6f999e 100644 --- a/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php +++ b/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; -use RectorPrefix202608\Psr\Container\ContainerInterface; -use RectorPrefix202608\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202608\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202609\Psr\Container\ContainerInterface; +use RectorPrefix202609\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202609\Symfony\Contracts\Service\Attribute\SubscribedService; /** * Implementation of ServiceSubscriberInterface that determines subscribed services * from methods that have the #[SubscribedService] attribute. diff --git a/vendor/symfony/service-contracts/ServiceProviderInterface.php b/vendor/symfony/service-contracts/ServiceProviderInterface.php index 8773089334b..b7f08e470a0 100644 --- a/vendor/symfony/service-contracts/ServiceProviderInterface.php +++ b/vendor/symfony/service-contracts/ServiceProviderInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; -use RectorPrefix202608\Psr\Container\ContainerInterface; +use RectorPrefix202609\Psr\Container\ContainerInterface; /** * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container. * diff --git a/vendor/symfony/service-contracts/ServiceSubscriberInterface.php b/vendor/symfony/service-contracts/ServiceSubscriberInterface.php index d19b0635824..5a3f17484be 100644 --- a/vendor/symfony/service-contracts/ServiceSubscriberInterface.php +++ b/vendor/symfony/service-contracts/ServiceSubscriberInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; -use RectorPrefix202608\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202609\Symfony\Contracts\Service\Attribute\SubscribedService; /** * A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method. * diff --git a/vendor/symfony/service-contracts/ServiceSubscriberTrait.php b/vendor/symfony/service-contracts/ServiceSubscriberTrait.php index 8ad98871842..4453285a857 100644 --- a/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ b/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Contracts\Service; +namespace RectorPrefix202609\Symfony\Contracts\Service; -use RectorPrefix202608\Psr\Container\ContainerInterface; -use RectorPrefix202608\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202608\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202609\Psr\Container\ContainerInterface; +use RectorPrefix202609\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202609\Symfony\Contracts\Service\Attribute\SubscribedService; trigger_deprecation('symfony/contracts', 'v3.5', '"%s" is deprecated, use "ServiceMethodsSubscriberTrait" instead.', ServiceSubscriberTrait::class); /** * Implementation of ServiceSubscriberInterface that determines subscribed services diff --git a/vendor/symfony/service-contracts/composer.json b/vendor/symfony/service-contracts/composer.json index 408b33545e3..e6f0474167d 100644 --- a/vendor/symfony/service-contracts/composer.json +++ b/vendor/symfony/service-contracts/composer.json @@ -32,7 +32,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202608\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202609\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" diff --git a/vendor/symfony/string/AbstractString.php b/vendor/symfony/string/AbstractString.php index 6d59b47dad1..209d70ecb9e 100644 --- a/vendor/symfony/string/AbstractString.php +++ b/vendor/symfony/string/AbstractString.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String; +namespace RectorPrefix202609\Symfony\Component\String; -use RectorPrefix202608\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202608\Symfony\Component\String\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\String\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\String\Exception\ExceptionInterface; +use RectorPrefix202609\Symfony\Component\String\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\String\Exception\RuntimeException; /** * Represents a string of abstract characters. * @@ -484,7 +484,7 @@ public function toByteString(?string $toEncoding = null): ByteString try { $b->string = mb_convert_encoding($this->string, $toEncoding, 'UTF-8'); } catch (\ValueError $e) { - if (!\function_exists('iconv') && !\function_exists('RectorPrefix202608\iconv')) { + if (!\function_exists('iconv') && !\function_exists('RectorPrefix202609\iconv')) { throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); } $b->string = iconv('UTF-8', $toEncoding, $this->string); diff --git a/vendor/symfony/string/AbstractUnicodeString.php b/vendor/symfony/string/AbstractUnicodeString.php index 0a6eae254ed..8e5dfcef032 100644 --- a/vendor/symfony/string/AbstractUnicodeString.php +++ b/vendor/symfony/string/AbstractUnicodeString.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String; +namespace RectorPrefix202609\Symfony\Component\String; -use RectorPrefix202608\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202608\Symfony\Component\String\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\String\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\String\Exception\ExceptionInterface; +use RectorPrefix202609\Symfony\Component\String\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\String\Exception\RuntimeException; /** * Represents a string of abstract Unicode characters. * diff --git a/vendor/symfony/string/ByteString.php b/vendor/symfony/string/ByteString.php index 043cba0dbca..01f4ba7e09a 100644 --- a/vendor/symfony/string/ByteString.php +++ b/vendor/symfony/string/ByteString.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String; +namespace RectorPrefix202609\Symfony\Component\String; use Random\Randomizer; -use RectorPrefix202608\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202608\Symfony\Component\String\Exception\InvalidArgumentException; -use RectorPrefix202608\Symfony\Component\String\Exception\RuntimeException; +use RectorPrefix202609\Symfony\Component\String\Exception\ExceptionInterface; +use RectorPrefix202609\Symfony\Component\String\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\String\Exception\RuntimeException; /** * Represents a binary-safe string of bytes. * @@ -412,7 +412,7 @@ public function toCodePointString(?string $fromEncoding = null): CodePointString try { $validEncoding = \false !== mb_detect_encoding($this->string, $fromEncoding ?? 'Windows-1252', \true); } catch (InvalidArgumentException $e) { - if (!\function_exists('iconv') && !\function_exists('RectorPrefix202608\iconv')) { + if (!\function_exists('iconv') && !\function_exists('RectorPrefix202609\iconv')) { throw $e; } $u->string = iconv($fromEncoding ?? 'Windows-1252', 'UTF-8', $this->string); diff --git a/vendor/symfony/string/CodePointString.php b/vendor/symfony/string/CodePointString.php index 9970c935100..4afe95da6e7 100644 --- a/vendor/symfony/string/CodePointString.php +++ b/vendor/symfony/string/CodePointString.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String; +namespace RectorPrefix202609\Symfony\Component\String; -use RectorPrefix202608\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202608\Symfony\Component\String\Exception\InvalidArgumentException; +use RectorPrefix202609\Symfony\Component\String\Exception\ExceptionInterface; +use RectorPrefix202609\Symfony\Component\String\Exception\InvalidArgumentException; /** * Represents a string of Unicode code points encoded as UTF-8. * diff --git a/vendor/symfony/string/Exception/ExceptionInterface.php b/vendor/symfony/string/Exception/ExceptionInterface.php index bef49b22b97..095ff8c414c 100644 --- a/vendor/symfony/string/Exception/ExceptionInterface.php +++ b/vendor/symfony/string/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String\Exception; +namespace RectorPrefix202609\Symfony\Component\String\Exception; interface ExceptionInterface extends \Throwable { diff --git a/vendor/symfony/string/Exception/InvalidArgumentException.php b/vendor/symfony/string/Exception/InvalidArgumentException.php index ac0aa6b40c3..90ac0406bf3 100644 --- a/vendor/symfony/string/Exception/InvalidArgumentException.php +++ b/vendor/symfony/string/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String\Exception; +namespace RectorPrefix202609\Symfony\Component\String\Exception; class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface { diff --git a/vendor/symfony/string/Exception/RuntimeException.php b/vendor/symfony/string/Exception/RuntimeException.php index ccbb56d246d..c0fb31ed84f 100644 --- a/vendor/symfony/string/Exception/RuntimeException.php +++ b/vendor/symfony/string/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String\Exception; +namespace RectorPrefix202609\Symfony\Component\String\Exception; class RuntimeException extends \RuntimeException implements ExceptionInterface { diff --git a/vendor/symfony/string/Inflector/EnglishInflector.php b/vendor/symfony/string/Inflector/EnglishInflector.php index 785172a1932..3f6f592ec9d 100644 --- a/vendor/symfony/string/Inflector/EnglishInflector.php +++ b/vendor/symfony/string/Inflector/EnglishInflector.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String\Inflector; +namespace RectorPrefix202609\Symfony\Component\String\Inflector; final class EnglishInflector implements InflectorInterface { diff --git a/vendor/symfony/string/Inflector/FrenchInflector.php b/vendor/symfony/string/Inflector/FrenchInflector.php index 3620effe4fa..2b1aaed57a4 100644 --- a/vendor/symfony/string/Inflector/FrenchInflector.php +++ b/vendor/symfony/string/Inflector/FrenchInflector.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String\Inflector; +namespace RectorPrefix202609\Symfony\Component\String\Inflector; /** * French inflector. @@ -50,8 +50,8 @@ final class FrenchInflector implements InflectorInterface // Invariable words ['/^(cinquante|soixante|mille)$/i', '\1'], // French titles - ['/^(mon|ma)(sieur|dame|demoiselle|seigneur)$/', 'RectorPrefix202608\mes\2s'], - ['/^(Mon|Ma)(sieur|dame|demoiselle|seigneur)$/', 'RectorPrefix202608\Mes\2s'], + ['/^(mon|ma)(sieur|dame|demoiselle|seigneur)$/', 'RectorPrefix202609\mes\2s'], + ['/^(Mon|Ma)(sieur|dame|demoiselle|seigneur)$/', 'RectorPrefix202609\Mes\2s'], ]; /** * A list of all rules for singularize. @@ -77,10 +77,10 @@ final class FrenchInflector implements InflectorInterface // Les mots finissant par "ou" prennent un "s" sauf bijou, caillou, chou, genou, hibou, joujou, pou ['/(bij|caill|ch|gen|hib|jouj|p)oux$/i', '\1ou'], // French titles - ['/^mes(dame|demoiselle)s$/', 'RectorPrefix202608\ma\1'], - ['/^Mes(dame|demoiselle)s$/', 'RectorPrefix202608\Ma\1'], - ['/^mes(sieur|seigneur)s$/', 'RectorPrefix202608\mon\1'], - ['/^Mes(sieur|seigneur)s$/', 'RectorPrefix202608\Mon\1'], + ['/^mes(dame|demoiselle)s$/', 'RectorPrefix202609\ma\1'], + ['/^Mes(dame|demoiselle)s$/', 'RectorPrefix202609\Ma\1'], + ['/^mes(sieur|seigneur)s$/', 'RectorPrefix202609\mon\1'], + ['/^Mes(sieur|seigneur)s$/', 'RectorPrefix202609\Mon\1'], // Default rule ['/s$/i', ''], ]; diff --git a/vendor/symfony/string/Inflector/InflectorInterface.php b/vendor/symfony/string/Inflector/InflectorInterface.php index b1404f6a2d4..f106f8cc283 100644 --- a/vendor/symfony/string/Inflector/InflectorInterface.php +++ b/vendor/symfony/string/Inflector/InflectorInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String\Inflector; +namespace RectorPrefix202609\Symfony\Component\String\Inflector; interface InflectorInterface { diff --git a/vendor/symfony/string/Inflector/SpanishInflector.php b/vendor/symfony/string/Inflector/SpanishInflector.php index 97dae2a4d6a..a14b3cfec2f 100644 --- a/vendor/symfony/string/Inflector/SpanishInflector.php +++ b/vendor/symfony/string/Inflector/SpanishInflector.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String\Inflector; +namespace RectorPrefix202609\Symfony\Component\String\Inflector; final class SpanishInflector implements InflectorInterface { diff --git a/vendor/symfony/string/LazyString.php b/vendor/symfony/string/LazyString.php index 9b8c8d73e5f..b78cd4b79f5 100644 --- a/vendor/symfony/string/LazyString.php +++ b/vendor/symfony/string/LazyString.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202608\Symfony\Component\String; +namespace RectorPrefix202609\Symfony\Component\String; /** * A string whose value is computed lazily by a callback. diff --git a/vendor/symfony/string/Resources/data/wcswidth_table_wide.php b/vendor/symfony/string/Resources/data/wcswidth_table_wide.php index 20d9e1cf500..0479def49da 100644 --- a/vendor/symfony/string/Resources/data/wcswidth_table_wide.php +++ b/vendor/symfony/string/Resources/data/wcswidth_table_wide.php @@ -1,6 +1,6 @@ withPaths([__DIR__ . '/bin', __DIR__ . '/src', __DIR__ . '/tests', __DIR__ . '/packages'])->withSkip([ // invalid syntax test fixture __DIR__ . '/tests/UseImportsResolver/Fixture/ParseError.php', diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php index e4ccd11f443..9e105432601 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/ApiDocStmtAnalyzer.php @@ -1,7 +1,7 @@ isSubclassOf('PHPUnit_Framework_TestCase')) { return \true; } - return $classReflection->implementsInterface('RectorPrefix202608\Behat\Behat\Context\Context'); + return $classReflection->implementsInterface('RectorPrefix202609\Behat\Behat\Context\Context'); } } diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php index 632afe9cdcb..3978f3ad4c2 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/CollectorMapper/MethodCallCollectorMapper.php @@ -1,11 +1,11 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php index c4cbdb9b7f5..a9375a64f88 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/Callable_/CallableTypeCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php index b9607611edf..61745a375e7 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/ClassConstFetchCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php index 09742728271..2e45f35d74e 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/FormTypeClassCollector.php @@ -1,7 +1,7 @@ |null> diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php index e14ab5d67ed..a2737a6c197 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php index a686648063e..32966195b06 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/MethodCall/MethodCallableCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php index d50131a4e66..fb81583aeee 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassLikeConstCollector.php @@ -1,15 +1,15 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php index e67182eab74..80b3f1728a7 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicClassMethodCollector.php @@ -1,23 +1,23 @@ */ @@ -44,7 +44,7 @@ final class PublicClassMethodCollector implements Collector */ private const SKIPPED_TYPES = [ // symfony - 'RectorPrefix202608\Symfony\Component\EventDispatcher\EventSubscriberInterface', + 'RectorPrefix202609\Symfony\Component\EventDispatcher\EventSubscriberInterface', // doctrine EventSubscriber::class, SubscribingHandlerInterface::class, @@ -53,10 +53,10 @@ final class PublicClassMethodCollector implements Collector // laravel Command::class, Component::class, - 'RectorPrefix202608\Illuminate\Http\Request', - 'RectorPrefix202608\Illuminate\Contracts\Mail\Mailable', - 'RectorPrefix202608\Illuminate\Contracts\Queue\ShouldQueue', - 'RectorPrefix202608\Illuminate\Support\ServiceProvider', + 'RectorPrefix202609\Illuminate\Http\Request', + 'RectorPrefix202609\Illuminate\Contracts\Mail\Mailable', + 'RectorPrefix202609\Illuminate\Contracts\Queue\ShouldQueue', + 'RectorPrefix202609\Illuminate\Support\ServiceProvider', ]; public function __construct(ApiDocStmtAnalyzer $apiDocStmtAnalyzer, PublicClassMethodMatcher $publicClassMethodMatcher, MethodTypeDetector $methodTypeDetector, Configuration $configuration) { diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php index afb495a74eb..e786ab41e33 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyCollector.php @@ -1,9 +1,9 @@ > */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php index fb2cae0ca21..0485f666081 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicPropertyFetchCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php index 7d3fec34465..ea5abd4233e 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/PublicStaticPropertyFetchCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php index 8fb5483f915..7cc0d10caf3 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php index 4ee444ab81c..8cd5e768413 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Collectors/StaticCall/StaticMethodCallableCollector.php @@ -1,7 +1,7 @@ |null> */ diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php index ab41077f319..46b09292a89 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Configuration.php @@ -1,9 +1,9 @@ classTypeDetector = $classTypeDetector; diff --git a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php index 59646f59df0..641d4ab14d7 100644 --- a/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php +++ b/vendor/tomasvotruba/class-leak/packages/unused-public/src/Rules/LocalOnlyPublicClassMethodRule.php @@ -1,7 +1,7 @@ filePath); - if (strpos($fileContents, 'RectorPrefix202608\Doctrine\ODM\MongoDB\Mapping\Annotations') !== \false) { + if (strpos($fileContents, 'RectorPrefix202609\Doctrine\ODM\MongoDB\Mapping\Annotations') !== \false) { return \true; } - if (strpos($fileContents, 'RectorPrefix202608\Doctrine\ORM\Annotations') !== \false) { + if (strpos($fileContents, 'RectorPrefix202609\Doctrine\ORM\Annotations') !== \false) { return \true; } if (strpos($fileContents, '@ORM\Entity') !== \false) { diff --git a/vendor/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php b/vendor/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php index 7eb8fcafb8a..32fa637ee0e 100644 --- a/vendor/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php +++ b/vendor/tomasvotruba/class-leak/src/ValueObject/UnusedClassesResult.php @@ -1,7 +1,7 @@ Date: Tue, 1 Sep 2026 16:39:20 +0000 Subject: [PATCH 097/169] Updated Rector to commit 832aaf1bac46b77e271a052c699f3ce3f91b1ec3 https://github.com/rectorphp/rector-src/commit/832aaf1bac46b77e271a052c699f3ce3f91b1ec3 [Php85] Skip nested compound assignment in ArrayFirstLastRector (#8425) --- src/Application/VersionResolver.php | 4 ++-- .../NodeVisitor/AssignedToNodeVisitor.php | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 8d1699bf3ab..21f8cef168b 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 = 'eee8f3572a6b1564303e28c149b8b5f9b26f35b5'; + public const PACKAGE_VERSION = '832aaf1bac46b77e271a052c699f3ce3f91b1ec3'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-08-31 16:24:27'; + public const RELEASE_DATE = '2026-09-01 18:37:33'; /** * @var int */ diff --git a/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php b/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php index ae4ef3599e1..11c1dede74b 100644 --- a/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php +++ b/src/PhpParser/NodeVisitor/AssignedToNodeVisitor.php @@ -5,6 +5,8 @@ use PhpParser\Node; use PhpParser\Node\ArrayItem; +use PhpParser\Node\Expr; +use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\AssignOp; use PhpParser\Node\Expr\AssignRef; @@ -20,7 +22,7 @@ final class AssignedToNodeVisitor extends NodeVisitorAbstract implements Decorat public function enterNode(Node $node): ?Node { if ($node instanceof AssignOp) { - $node->var->setAttribute(AttributeKey::IS_ASSIGN_OP_VAR, \true); + $this->markAssignOpVar($node->var); return null; } if ($node instanceof AssignRef) { @@ -46,4 +48,17 @@ public function enterNode(Node $node): ?Node } return null; } + /** + * Marks the whole dim fetch chain, not just the outermost node: $array[$key][0] += 1 writes + * to $array[$key] as well, so a rule that rewrites the inner fetch would change a write + * into a read of a temporary value. + */ + private function markAssignOpVar(Expr $expr): void + { + $expr->setAttribute(AttributeKey::IS_ASSIGN_OP_VAR, \true); + while ($expr instanceof ArrayDimFetch) { + $expr = $expr->var; + $expr->setAttribute(AttributeKey::IS_ASSIGN_OP_VAR, \true); + } + } } From 7a207676d3085b1d626e0ff75551eba6f1d4f14e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 1 Sep 2026 21:58:44 +0000 Subject: [PATCH 098/169] Updated Rector to commit 0c3d4f4e3c5c3eb7eabc0f7097bd7efaea657439 https://github.com/rectorphp/rector-src/commit/0c3d4f4e3c5c3eb7eabc0f7097bd7efaea657439 [FileSystem] Add --filter option to keep only files matching all given patterns (#8419) --- src/Application/ApplicationFileProcessor.php | 4 +- src/Application/VersionResolver.php | 4 +- src/Caching/Detector/ChangedFilesDetector.php | 9 ++- src/Configuration/ConfigurationFactory.php | 19 ++++- src/Configuration/Option.php | 5 ++ src/Console/ProcessConfigureDecorator.php | 3 +- src/FileSystem/FilePathFilter.php | 79 +++++++++++++++++++ src/FileSystem/FilesFinder.php | 14 +++- src/ValueObject/Configuration.php | 16 +++- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + 11 files changed, 139 insertions(+), 16 deletions(-) create mode 100644 src/FileSystem/FilePathFilter.php diff --git a/src/Application/ApplicationFileProcessor.php b/src/Application/ApplicationFileProcessor.php index 2ec3f338946..c4cfccf4f04 100644 --- a/src/Application/ApplicationFileProcessor.php +++ b/src/Application/ApplicationFileProcessor.php @@ -99,7 +99,7 @@ public function __construct(SymfonyStyle $symfonyStyle, FilesFinder $filesFinder public function run(Configuration $configuration, InputInterface $input): ProcessResult { // scope the cache to this run's --only / --only-suffix selection before any cache read/write - $this->changedFilesDetector->setActiveScope($configuration->getOnlyRule(), $configuration->getOnlySuffix()); + $this->changedFilesDetector->setActiveScope($configuration->getOnlyRule(), $configuration->getOnlySuffix(), $configuration->getFilters()); $filePaths = $this->filesFinder->findFilesInPaths($configuration->getPaths(), $configuration); // no files found if ($filePaths === []) { @@ -150,7 +150,7 @@ public function run(Configuration $configuration, InputInterface $input): Proces public function processFiles(array $filePaths, Configuration $configuration, ?callable $preFileCallback = null, ?callable $postFileCallback = null): ProcessResult { // also set here: parallel workers reach processFiles() via WorkerCommand, bypassing run() - $this->changedFilesDetector->setActiveScope($configuration->getOnlyRule(), $configuration->getOnlySuffix()); + $this->changedFilesDetector->setActiveScope($configuration->getOnlyRule(), $configuration->getOnlySuffix(), $configuration->getFilters()); /** @var SystemError[] $systemErrors */ $systemErrors = []; /** @var FileDiff[] $fileDiffs */ diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 21f8cef168b..af3d8194bcf 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 = '832aaf1bac46b77e271a052c699f3ce3f91b1ec3'; + public const PACKAGE_VERSION = '0c3d4f4e3c5c3eb7eabc0f7097bd7efaea657439'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-01 18:37:33'; + public const RELEASE_DATE = '2026-09-01 23:56:14'; /** * @var int */ diff --git a/src/Caching/Detector/ChangedFilesDetector.php b/src/Caching/Detector/ChangedFilesDetector.php index fe691f34cb4..897e64607b6 100644 --- a/src/Caching/Detector/ChangedFilesDetector.php +++ b/src/Caching/Detector/ChangedFilesDetector.php @@ -31,7 +31,7 @@ final class ChangedFilesDetector * @var array */ private array $cacheableFiles = []; - // scopes the per-file cache key to the active --only / --only-suffix selection (empty = full run) + // scopes the per-file cache key to the active --only / --only-suffix / --filter selection (empty = full run) private string $scopeSuffix = ''; public function __construct(FileHashComputer $fileHashComputer, Cache $cache, FileHasher $fileHasher) { @@ -39,10 +39,13 @@ public function __construct(FileHashComputer $fileHashComputer, Cache $cache, Fi $this->cache = $cache; $this->fileHasher = $fileHasher; } - public function setActiveScope(?string $onlyRule, ?string $onlySuffix): void + /** + * @param string[] $filters + */ + public function setActiveScope(?string $onlyRule, ?string $onlySuffix, array $filters = []): void { // each selection gets its own cache key, so --only and full runs coexist without clearing or poisoning - $this->scopeSuffix = $onlyRule === null && $onlySuffix === null ? '' : '|only:' . ($onlyRule ?? '') . '|suffix:' . ($onlySuffix ?? ''); + $this->scopeSuffix = $onlyRule === null && $onlySuffix === null && $filters === [] ? '' : '|only:' . ($onlyRule ?? '') . '|suffix:' . ($onlySuffix ?? '') . '|filter:' . implode(',', $filters); } public function cacheFile(string $filePath): void { diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index 55e2e6e8284..70aece604b7 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -5,6 +5,7 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Parameter\SimpleParameterProvider; +use Rector\FileSystem\FilePathFilter; use Rector\ValueObject\Configuration; use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; @@ -21,10 +22,15 @@ final class ConfigurationFactory * @readonly */ private \Rector\Configuration\OnlyRuleResolver $onlyRuleResolver; - public function __construct(SymfonyStyle $symfonyStyle, \Rector\Configuration\OnlyRuleResolver $onlyRuleResolver) + /** + * @readonly + */ + private FilePathFilter $filePathFilter; + public function __construct(SymfonyStyle $symfonyStyle, \Rector\Configuration\OnlyRuleResolver $onlyRuleResolver, FilePathFilter $filePathFilter) { $this->symfonyStyle = $symfonyStyle; $this->onlyRuleResolver = $onlyRuleResolver; + $this->filePathFilter = $filePathFilter; } /** * @api used in tests @@ -53,9 +59,14 @@ public function createFromInput(InputInterface $input): Configuration $onlyRule = $this->onlyRuleResolver->resolve($onlyRule); } $onlySuffix = $input->getOption(\Rector\Configuration\Option::ONLY_SUFFIX); - // "--only"/"--only-suffix" narrow the run, so skips outside the scope look falsely unused; + if ($onlySuffix !== null) { + $this->symfonyStyle->warning('The "--only-suffix" option is deprecated and will be removed. Use "--filter" instead, e.g. --filter="*Controller.php"'); + } + $rawFilter = $input->getOption(\Rector\Configuration\Option::FILTER); + $filters = $rawFilter !== null ? $this->filePathFilter->parsePatterns((string) $rawFilter) : []; + // "--only"/"--only-suffix"/"--filter" narrow the run, so skips outside the scope look falsely unused; // mark the run as narrowed to disable unused skip reporting and avoid false positives - if ($onlyRule !== null || $onlySuffix !== null) { + if ($onlyRule !== null || $onlySuffix !== null || $filters !== []) { SimpleParameterProvider::setParameter(\Rector\Configuration\Option::IS_RUN_NARROWED, \true); } $isParallel = SimpleParameterProvider::provideBoolParameter(\Rector\Configuration\Option::PARALLEL); @@ -80,7 +91,7 @@ public function createFromInput(InputInterface $input): Configuration if ($isPhpOnly) { SimpleParameterProvider::setParameter(\Rector\Configuration\Option::IS_RUN_NARROWED, \true); } - return new Configuration($isDryRun, $showProgressBar, $shouldClearCache, $outputFormat, $fileExtensions, $paths, $showDiffs, $parallelPort, $parallelIdentifier, $isParallel, $memoryLimit, $isDebug, $isReportingWithRealPath, $onlyRule, $onlySuffix, $levelOverflows, $showRulesSummary, $isComposerBased, $isPhpOnly); + return new Configuration($isDryRun, $showProgressBar, $shouldClearCache, $outputFormat, $fileExtensions, $paths, $showDiffs, $parallelPort, $parallelIdentifier, $isParallel, $memoryLimit, $isDebug, $isReportingWithRealPath, $onlyRule, $onlySuffix, $levelOverflows, $showRulesSummary, $isComposerBased, $isPhpOnly, $filters); } private function shouldShowProgressBar(InputInterface $input, string $outputFormat): bool { diff --git a/src/Configuration/Option.php b/src/Configuration/Option.php index 23203742b2c..852fe0c6c4e 100644 --- a/src/Configuration/Option.php +++ b/src/Configuration/Option.php @@ -335,6 +335,11 @@ final class Option * @var string */ public const ONLY_SUFFIX = 'only-suffix'; + /** + * @internal To keep only files matching all given patterns + * @var string + */ + public const FILTER = 'filter'; /** * @internal To report overflow levels in ->with*Level() methods * @var string diff --git a/src/Console/ProcessConfigureDecorator.php b/src/Console/ProcessConfigureDecorator.php index 29980c1b77d..a90b41e8058 100644 --- a/src/Console/ProcessConfigureDecorator.php +++ b/src/Console/ProcessConfigureDecorator.php @@ -22,7 +22,8 @@ public static function decorate(Command $command): void $command->addOption(Option::ONLY, null, InputOption::VALUE_REQUIRED, 'Fully qualified rule class name'); $command->addOption(Option::COMPOSER_BASED, null, InputOption::VALUE_NONE, 'Run only rules bound to an installed composer package version'); $command->addOption(Option::PHP, null, InputOption::VALUE_NONE, 'Run only PHP rules, e.g. rules bound to a minimal PHP version'); - $command->addOption(Option::ONLY_SUFFIX, null, InputOption::VALUE_REQUIRED, 'Filter only files with specific suffix in name, e.g. "Controller"'); + $command->addOption(Option::ONLY_SUFFIX, null, InputOption::VALUE_REQUIRED, 'Deprecated, use "--filter" instead. Filter only files with specific suffix in name, e.g. "Controller"'); + $command->addOption(Option::FILTER, null, InputOption::VALUE_REQUIRED, 'Keep only files matching all comma-separated patterns: "/Controller/" (path substring), "*Repository.php" (basename glob), "tests" (Test.php and TestCase.php files)'); $command->addOption(Option::DEBUG, null, InputOption::VALUE_NONE, 'Display debug output.'); $command->addOption(Option::MEMORY_LIMIT, null, InputOption::VALUE_REQUIRED, 'Memory limit for process'); $command->addOption(Option::CLEAR_CACHE, null, InputOption::VALUE_NONE, 'Clear unchanged files cache'); diff --git a/src/FileSystem/FilePathFilter.php b/src/FileSystem/FilePathFilter.php new file mode 100644 index 00000000000..8e49232bef1 --- /dev/null +++ b/src/FileSystem/FilePathFilter.php @@ -0,0 +1,79 @@ + $this->matchesAllPatterns($filePath, $patterns))); + } + /** + * @param string[] $patterns + */ + private function matchesAllPatterns(string $filePath, array $patterns): bool + { + $found = \true; + foreach ($patterns as $pattern) { + if (!$this->matchesPattern($filePath, $pattern)) { + $found = \false; + break; + } + } + return $found; + } + /** + * Three kinds of pattern are recognised: + * - "tests" the basename ends in Test.php or TestCase.php + * - contains "*" glob matched against the full path when it has a "/", else against the basename + * - anything else substring matched anywhere in the full path, e.g. /Controller/ + */ + private function matchesPattern(string $filePath, string $pattern): bool + { + if ($pattern === self::TESTS_KEYWORD) { + $basename = basename($filePath); + return substr_compare($basename, 'Test.php', -strlen('Test.php')) === 0 || substr_compare($basename, 'TestCase.php', -strlen('TestCase.php')) === 0; + } + if (strpos($pattern, '*') !== \false) { + $subject = strpos($pattern, '/') !== \false ? $filePath : basename($filePath); + return fnmatch($pattern, $subject); + } + return strpos($filePath, $pattern) !== \false; + } +} diff --git a/src/FileSystem/FilesFinder.php b/src/FileSystem/FilesFinder.php index d1de4d2fe18..ca71bbdd19e 100644 --- a/src/FileSystem/FilesFinder.php +++ b/src/FileSystem/FilesFinder.php @@ -40,7 +40,11 @@ final class FilesFinder * @readonly */ private ChangedFilesDetector $changedFilesDetector; - public function __construct(\Rector\FileSystem\FilesystemTweaker $filesystemTweaker, UnchangedFilesFilter $unchangedFilesFilter, \Rector\FileSystem\FileAndDirectoryFilter $fileAndDirectoryFilter, PathSkipper $pathSkipper, \Rector\FileSystem\FilePathHelper $filePathHelper, ChangedFilesDetector $changedFilesDetector) + /** + * @readonly + */ + private \Rector\FileSystem\FilePathFilter $filePathFilter; + public function __construct(\Rector\FileSystem\FilesystemTweaker $filesystemTweaker, UnchangedFilesFilter $unchangedFilesFilter, \Rector\FileSystem\FileAndDirectoryFilter $fileAndDirectoryFilter, PathSkipper $pathSkipper, \Rector\FileSystem\FilePathHelper $filePathHelper, ChangedFilesDetector $changedFilesDetector, \Rector\FileSystem\FilePathFilter $filePathFilter) { $this->filesystemTweaker = $filesystemTweaker; $this->unchangedFilesFilter = $unchangedFilesFilter; @@ -48,13 +52,15 @@ public function __construct(\Rector\FileSystem\FilesystemTweaker $filesystemTwea $this->pathSkipper = $pathSkipper; $this->filePathHelper = $filePathHelper; $this->changedFilesDetector = $changedFilesDetector; + $this->filePathFilter = $filePathFilter; } /** * @param string[] $source * @param string[] $suffixes + * @param string[] $filters * @return string[] */ - public function findInDirectoriesAndFiles(array $source, array $suffixes = [], bool $sortByName = \true, ?string $onlySuffix = null): array + public function findInDirectoriesAndFiles(array $source, array $suffixes = [], bool $sortByName = \true, ?string $onlySuffix = null, array $filters = []): array { $filesAndDirectories = $this->filesystemTweaker->resolveWithFnmatch($source); // filtering files in files collection @@ -91,6 +97,8 @@ public function findInDirectoriesAndFiles(array $source, array $suffixes = [], b $directories = $this->fileAndDirectoryFilter->filterDirectories($filesAndDirectories); $filteredFilePathsInDirectories = $this->findInDirectories($directories, $suffixes, $hasOnlySuffix, $onlySuffix, $sortByName); $filePaths = array_merge($filteredFilePaths, $filteredFilePathsInDirectories); + // keep only files matching all --filter patterns + $filePaths = $this->filePathFilter->filter($filePaths, $filters); return $this->unchangedFilesFilter->filterFilePaths($filePaths); } /** @@ -102,7 +110,7 @@ public function findFilesInPaths(array $paths, Configuration $configuration): ar if ($configuration->shouldClearCache()) { $this->changedFilesDetector->clear(); } - return $this->findInDirectoriesAndFiles($paths, $configuration->getFileExtensions(), \true, $configuration->getOnlySuffix()); + return $this->findInDirectoriesAndFiles($paths, $configuration->getFileExtensions(), \true, $configuration->getOnlySuffix(), $configuration->getFilters()); } /** * Exclude short "isDryRun = $isDryRun; $this->showProgressBar = $showProgressBar; @@ -118,6 +124,7 @@ public function __construct(bool $isDryRun = \false, bool $showProgressBar = \tr $this->showRulesSummary = $showRulesSummary; $this->isComposerBased = $isComposerBased; $this->isPhpOnly = $isPhpOnly; + $this->filters = $filters; } public function isComposerBased(): bool { @@ -194,6 +201,13 @@ public function getOnlySuffix(): ?string { return $this->onlySuffix; } + /** + * @return string[] + */ + public function getFilters(): array + { + return $this->filters; + } /** * @return LevelOverflow[] */ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 3cd91d75a51..fd1a03a71b3 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1598,6 +1598,7 @@ 'Rector\\FamilyTree\\NodeAnalyzer\\ClassChildAnalyzer' => $baseDir . '/src/FamilyTree/NodeAnalyzer/ClassChildAnalyzer.php', 'Rector\\FamilyTree\\Reflection\\FamilyRelationsAnalyzer' => $baseDir . '/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php', 'Rector\\FileSystem\\FileAndDirectoryFilter' => $baseDir . '/src/FileSystem/FileAndDirectoryFilter.php', + 'Rector\\FileSystem\\FilePathFilter' => $baseDir . '/src/FileSystem/FilePathFilter.php', 'Rector\\FileSystem\\FilePathHelper' => $baseDir . '/src/FileSystem/FilePathHelper.php', 'Rector\\FileSystem\\FilesFinder' => $baseDir . '/src/FileSystem/FilesFinder.php', 'Rector\\FileSystem\\FilesystemTweaker' => $baseDir . '/src/FileSystem/FilesystemTweaker.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 13242b4dfdc..e8947dfe4eb 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1818,6 +1818,7 @@ class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 'Rector\\FamilyTree\\NodeAnalyzer\\ClassChildAnalyzer' => __DIR__ . '/../..' . '/src/FamilyTree/NodeAnalyzer/ClassChildAnalyzer.php', 'Rector\\FamilyTree\\Reflection\\FamilyRelationsAnalyzer' => __DIR__ . '/../..' . '/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php', 'Rector\\FileSystem\\FileAndDirectoryFilter' => __DIR__ . '/../..' . '/src/FileSystem/FileAndDirectoryFilter.php', + 'Rector\\FileSystem\\FilePathFilter' => __DIR__ . '/../..' . '/src/FileSystem/FilePathFilter.php', 'Rector\\FileSystem\\FilePathHelper' => __DIR__ . '/../..' . '/src/FileSystem/FilePathHelper.php', 'Rector\\FileSystem\\FilesFinder' => __DIR__ . '/../..' . '/src/FileSystem/FilesFinder.php', 'Rector\\FileSystem\\FilesystemTweaker' => __DIR__ . '/../..' . '/src/FileSystem/FilesystemTweaker.php', From 78802dabb43748b0bcd9c6d3d53878d77eddaa5b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 08:25:48 +0000 Subject: [PATCH 099/169] Updated Rector to commit 28a4645c168c2567f79108c1c4463cda1afb4aff https://github.com/rectorphp/rector-src/commit/28a4645c168c2567f79108c1c4463cda1afb4aff Add `mspirkov/yii2-rector` link to README (#8427) --- README.md | 1 + src/Application/VersionResolver.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29553810219..69ce4695327 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,7 @@ Among there projects belong: * [ibexa/rector](https://github.com/ibexa/rector) * [guanguans/rector-rules](https://github.com/guanguans/rector-rules) * [wernerkrauss/silverstripe-rector](https://github.com/wernerkrauss/silverstripe-rector) +* [mspirkov/yii2-rector](https://github.com/mspirkov/yii2-rector)
diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index af3d8194bcf..1c62a85a308 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 = '0c3d4f4e3c5c3eb7eabc0f7097bd7efaea657439'; + public const PACKAGE_VERSION = '28a4645c168c2567f79108c1c4463cda1afb4aff'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-01 23:56:14'; + public const RELEASE_DATE = '2026-09-02 10:23:15'; /** * @var int */ From 646f9f7f6eed25898bd6924ebe0ca70cb3408ee5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 08:48:33 +0000 Subject: [PATCH 100/169] Updated Rector to commit 28a4645c168c2567f79108c1c4463cda1afb4aff --- src/Console/Command/ComposerBasedCommand.php | 3 + vendor/composer/installed.json | 8 +-- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- ...eSetAccessibleReflectionPropertyRector.php | 64 +++++++++++++++++++ .../ServiceSubscriberTrait.php | 3 + 6 files changed, 76 insertions(+), 6 deletions(-) diff --git a/src/Console/Command/ComposerBasedCommand.php b/src/Console/Command/ComposerBasedCommand.php index d5622745fd5..9809065fb7a 100644 --- a/src/Console/Command/ComposerBasedCommand.php +++ b/src/Console/Command/ComposerBasedCommand.php @@ -161,6 +161,9 @@ private function printConfigurationValue($value): string $printedPropertyValues = []; $reflectionObject = new ReflectionObject($value); foreach ($reflectionObject->getProperties() as $reflectionProperty) { + if (\PHP_VERSION_ID < 80100) { + $reflectionProperty->setAccessible(\true); + } // lazy-initialized property, e.g. PHPStan UnionType::$normalized if (!$reflectionProperty->isInitialized($value)) { continue; diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 3e92286481e..0b912bc00a4 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "70b30bb29994d5851905cc642b19ea68f96834ef" + "reference": "1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/70b30bb29994d5851905cc642b19ea68f96834ef", - "reference": "70b30bb29994d5851905cc642b19ea68f96834ef", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8", + "reference": "1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-30T22:31:10+00:00", + "time": "2026-09-02T08:46:17+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 951e2b6246d..3f25dca19be 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '70b30bb29994d5851905cc642b19ea68f96834ef', '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' => 'a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 c129dff3636..2b87c6fa745 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 70b30bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main a2ec380'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 1beef93'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main a2ec380'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php b/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php index 3efaeb03aa5..57dd535f419 100644 --- a/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php +++ b/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php @@ -15,8 +15,10 @@ use PhpParser\Node\Scalar\Int_; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; +use PhpParser\Node\Stmt\Foreach_; use PhpParser\Node\Stmt\If_; use PhpParser\Node\Stmt\Return_; +use PHPStan\Type\ObjectType; use Rector\Naming\Naming\VariableNaming; use Rector\PhpParser\Enum\NodeGroup; use Rector\PHPStan\ScopeFetcher; @@ -65,6 +67,33 @@ public function run($object) } } CODE_SAMPLE +), new CodeSample(<<<'CODE_SAMPLE' +class SomeClass +{ + public function run($object) + { + $reflectionObject = new ReflectionObject($object); + foreach ($reflectionObject->getProperties() as $reflectionProperty) { + echo $reflectionProperty->getValue($object); + } + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + public function run($object) + { + $reflectionObject = new ReflectionObject($object); + foreach ($reflectionObject->getProperties() as $reflectionProperty) { + if (PHP_VERSION_ID < 80100) { + $reflectionProperty->setAccessible(true); + } + echo $reflectionProperty->getValue($object); + } + } +} +CODE_SAMPLE )]); } /** @@ -84,6 +113,12 @@ public function refactor(Node $node): ?Node } $hasChanged = \false; foreach ($node->stmts as $key => $stmt) { + if ($stmt instanceof Foreach_) { + if ($this->refactorForeach($stmt)) { + $hasChanged = \true; + } + continue; + } if (!$stmt instanceof Expression && !$stmt instanceof Return_) { continue; } @@ -130,6 +165,35 @@ public function refactor(Node $node): ?Node } return null; } + private function refactorForeach(Foreach_ $foreach): bool + { + if (!$foreach->valueVar instanceof Variable) { + return \false; + } + if (!$this->isReflectionMembersCall($foreach->expr)) { + return \false; + } + $firstStmt = $foreach->stmts[0] ?? null; + if ($this->isSetAccessibleMethodCall($firstStmt) || $this->isSetAccessibleIfMethodCall($firstStmt)) { + return \false; + } + array_unshift($foreach->stmts, $this->createSetAccessibleExpression($foreach->valueVar)); + return \true; + } + private function isReflectionMembersCall(Expr $expr): bool + { + if (!$expr instanceof MethodCall) { + return \false; + } + if (!$this->isNames($expr->name, ['getProperties', 'getMethods'])) { + return \false; + } + $callerType = $this->nodeTypeResolver->getType($expr->var); + if (!$callerType instanceof ObjectType) { + return \false; + } + return $callerType->isInstanceOf('ReflectionClass')->yes(); + } private function createSetAccessibleExpression(Expr $expr): If_ { $args = [$this->nodeFactory->createArg($this->nodeFactory->createTrue())]; diff --git a/vendor/symfony/service-contracts/ServiceSubscriberTrait.php b/vendor/symfony/service-contracts/ServiceSubscriberTrait.php index 4453285a857..20bb8aa1255 100644 --- a/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ b/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -33,6 +33,9 @@ public static function getSubscribedServices(): array { $services = method_exists(get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : []; foreach ((new \ReflectionClass(self::class))->getMethods() as $method) { + if (\PHP_VERSION_ID < 80100) { + $method->setAccessible(\true); + } if (self::class !== $method->class) { continue; } From 0a5abf504ca233450eca89ec557a9d31a4e431c8 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 08:52:43 +0000 Subject: [PATCH 101/169] Updated Rector to commit 28a4645c168c2567f79108c1c4463cda1afb4aff --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- .../AssertEmptyNullableObjectToAssertInstanceofRector.php | 5 ++--- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 0b912bc00a4..10544f4a003 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805" + "reference": "126d4a636125492af7904bbaf035b7699ade4535" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805", - "reference": "a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/126d4a636125492af7904bbaf035b7699ade4535", + "reference": "126d4a636125492af7904bbaf035b7699ade4535", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-09-01T10:55:25+00:00", + "time": "2026-09-02T08:50:04+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 3f25dca19be..9a6e34a2602 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'a2ec3800800f25b0501bcfb7a23fa8a1ecd2e805', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => '126d4a636125492af7904bbaf035b7699ade4535', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 2b87c6fa745..bcd41560025 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 1beef93'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main a2ec380'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 1beef93'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 126d4a6'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php index c59089b525d..570788883d5 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php @@ -74,7 +74,7 @@ public function refactor(Node $node): ?Node if (!$this->testsNodeAnalyzer->isInTestClass($node)) { return null; } - if (!$this->isNames($node->name, ['assertNotEmpty', 'assertEmpty', 'assertNull', 'assertNotNull'])) { + if (!$this->isNames($node->name, ['assertNotEmpty', 'assertNotNull'])) { return null; } if ($node->isFirstClassCallable()) { @@ -92,8 +92,7 @@ public function refactor(Node $node): ?Node if (!$pureType instanceof ObjectType) { return null; } - $methodName = $this->isNames($node->name, ['assertEmpty', 'assertNull']) ? 'assertNotInstanceOf' : 'assertInstanceOf'; - $node->name = new Identifier($methodName); + $node->name = new Identifier('assertInstanceOf'); $fullyQualified = new FullyQualified($pureType->getClassName()); $customMessageArg = $node->getArgs()[1] ?? null; $node->args[0] = new Arg(new ClassConstFetch($fullyQualified, 'class')); From 33b2be9ce9f9686cc41ec3c3907280572ae18ed1 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 09:02:26 +0000 Subject: [PATCH 102/169] Updated Rector to commit ee2e8d0dd1afbdc754e5c9f6db7835e5136055f8 https://github.com/rectorphp/rector-src/commit/ee2e8d0dd1afbdc754e5c9f6db7835e5136055f8 [Naming] Fix partial rename in RenameVariableToMatchMethodCallReturnTypeRector with same-named nested arrow param (#8428) --- rules/Naming/VariableRenamer.php | 5 +++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rules/Naming/VariableRenamer.php b/rules/Naming/VariableRenamer.php index ac2ce75fd1a..609aaeafcff 100644 --- a/rules/Naming/VariableRenamer.php +++ b/rules/Naming/VariableRenamer.php @@ -98,6 +98,11 @@ private function isParamInParentFunction(Variable $variable, ?FunctionLike $func if ($variableName === null) { return \false; } + // the tracked function-like is only reset on enter, so it can linger past its own body; + // a variable located after it is no longer inside it and its params must be ignored + if ($variable->getStartTokenPos() > $functionLike->getEndTokenPos()) { + return \false; + } $scope = $variable->getAttribute(AttributeKey::SCOPE); $functionLikeScope = $functionLike->getAttribute(AttributeKey::SCOPE); if ($scope instanceof MutatingScope && $functionLikeScope instanceof MutatingScope && $scope->equals($functionLikeScope)) { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 1c62a85a308..d45393c6bda 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 = '28a4645c168c2567f79108c1c4463cda1afb4aff'; + public const PACKAGE_VERSION = 'ee2e8d0dd1afbdc754e5c9f6db7835e5136055f8'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 10:23:15'; + public const RELEASE_DATE = '2026-09-02 11:00:08'; /** * @var int */ From 1e88d3d9e4a822c477a6f6ef5fa9e3bfff912ef6 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 09:07:26 +0000 Subject: [PATCH 103/169] Updated Rector to commit ee2e8d0dd1afbdc754e5c9f6db7835e5136055f8 --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- .../CodeQuality/NodeAnalyser/MockObjectExprDetector.php | 4 ++++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 10544f4a003..703a0108dfc 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "126d4a636125492af7904bbaf035b7699ade4535" + "reference": "d1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/126d4a636125492af7904bbaf035b7699ade4535", - "reference": "126d4a636125492af7904bbaf035b7699ade4535", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/d1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84", + "reference": "d1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-09-02T08:50:04+00:00", + "time": "2026-09-02T09:04:39+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 9a6e34a2602..5f39a65d1f5 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => '126d4a636125492af7904bbaf035b7699ade4535', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 bcd41560025..75064522941 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 1beef93'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 126d4a6'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 1beef93'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/rules/CodeQuality/NodeAnalyser/MockObjectExprDetector.php b/vendor/rector/rector-phpunit/rules/CodeQuality/NodeAnalyser/MockObjectExprDetector.php index bc022c70961..9b187350340 100644 --- a/vendor/rector/rector-phpunit/rules/CodeQuality/NodeAnalyser/MockObjectExprDetector.php +++ b/vendor/rector/rector-phpunit/rules/CodeQuality/NodeAnalyser/MockObjectExprDetector.php @@ -48,6 +48,10 @@ public function hasMethodCallWithoutExpects(ClassMethod $classMethod): bool /** @var array $methodCalls */ $methodCalls = $this->betterNodeFinder->findInstancesOfScoped((array) $classMethod->stmts, [MethodCall::class]); foreach ($methodCalls as $methodCall) { + // dynamic method call, e.g. $sut->$method(), is not a literal ->method() call + if (!$methodCall->name instanceof Identifier) { + continue; + } if (!$this->nodeNameResolver->isName($methodCall->name, 'method')) { continue; } From 27296aad016ef8d16aa6ecb8c8af2768f0896b71 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 09:07:42 +0000 Subject: [PATCH 104/169] Updated Rector to commit 96fd595f95029db66bd5205e6c5aa60eb4745353 https://github.com/rectorphp/rector-src/commit/96fd595f95029db66bd5205e6c5aa60eb4745353 [BetterPhpDocParser] Keep import used only in an annotation array key (#8429) --- src/Application/VersionResolver.php | 4 +-- .../ArrayItemClassNameDecorator.php | 28 ++++++++++++++----- .../PhpDocInfo/PhpDocInfo.php | 9 ++++-- .../ValueObject/PhpDocAttributeKey.php | 5 ++++ 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index d45393c6bda..218563cd6cd 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 = 'ee2e8d0dd1afbdc754e5c9f6db7835e5136055f8'; + public const PACKAGE_VERSION = '96fd595f95029db66bd5205e6c5aa60eb4745353'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 11:00:08'; + public const RELEASE_DATE = '2026-09-02 11:05:18'; /** * @var int */ diff --git a/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php b/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php index a630b5e74a7..df5479504f7 100644 --- a/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php +++ b/src/BetterPhpDocParser/NodeDecorator/ArrayItemClassNameDecorator.php @@ -40,18 +40,32 @@ public function decorate(PhpDocNode $phpDocNode, PhpNode $phpNode): void if (!$node instanceof ArrayItemNode) { return null; } - if (!is_string($node->value)) { - return null; + $valueClassName = $this->resolveClassFromScopeResolution($node->value, $phpNode); + if ($valueClassName !== null) { + $node->setAttribute(PhpDocAttributeKey::RESOLVED_CLASS, $valueClassName); } - $splitScopeResolution = explode('::', $node->value); - if (count($splitScopeResolution) !== 2) { - return null; + // e.g. @ORM\DiscriminatorMap({ SomeEnum::TOTP = "..." }), the class is in the key + $keyClassName = $this->resolveClassFromScopeResolution($node->key, $phpNode); + if ($keyClassName !== null) { + $node->setAttribute(PhpDocAttributeKey::RESOLVED_KEY_CLASS, $keyClassName); } - $className = $this->resolveFullyQualifiedClass($splitScopeResolution[0], $phpNode); - $node->setAttribute(PhpDocAttributeKey::RESOLVED_CLASS, $className); return $node; }); } + /** + * @param mixed $value + */ + private function resolveClassFromScopeResolution($value, PhpNode $phpNode): ?string + { + if (!is_string($value)) { + return null; + } + $splitScopeResolution = explode('::', $value); + if (count($splitScopeResolution) !== 2) { + return null; + } + return $this->resolveFullyQualifiedClass($splitScopeResolution[0], $phpNode); + } private function resolveFullyQualifiedClass(string $className, PhpNode $phpNode): string { $nameScope = $this->nameScopeFactory->createNameScopeFromNodeWithoutTemplateTypes($phpNode); diff --git a/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php b/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php index 744b8e3ffee..cefa568551b 100644 --- a/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php +++ b/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php @@ -475,10 +475,13 @@ public function getArrayItemNodeClassNames(): array return null; } $resolvedClass = $node->getAttribute(PhpDocAttributeKey::RESOLVED_CLASS); - if ($resolvedClass === null) { - return null; + if ($resolvedClass !== null) { + $classNames[] = $resolvedClass; + } + $resolvedKeyClass = $node->getAttribute(PhpDocAttributeKey::RESOLVED_KEY_CLASS); + if ($resolvedKeyClass !== null) { + $classNames[] = $resolvedKeyClass; } - $classNames[] = $resolvedClass; return $node; }); return $classNames; diff --git a/src/BetterPhpDocParser/ValueObject/PhpDocAttributeKey.php b/src/BetterPhpDocParser/ValueObject/PhpDocAttributeKey.php index 85a046fbbdf..427843d8119 100644 --- a/src/BetterPhpDocParser/ValueObject/PhpDocAttributeKey.php +++ b/src/BetterPhpDocParser/ValueObject/PhpDocAttributeKey.php @@ -15,6 +15,11 @@ final class PhpDocAttributeKey * @var string */ public const RESOLVED_CLASS = 'resolved_class'; + /** + * Fully qualified name of class referenced in an array item key, e.g. SomeEnum::TOTP + * @var string + */ + public const RESOLVED_KEY_CLASS = 'resolved_key_class'; /** * @var string */ From c6ecc8d105c5dbc49ab9b2c255958fd60b17ab6f Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 09:20:24 +0000 Subject: [PATCH 105/169] Updated Rector to commit 0919678db52fe2ede06192b3b19834401da4a472 https://github.com/rectorphp/rector-src/commit/0919678db52fe2ede06192b3b19834401da4a472 [TypeDeclarationDocblocks] Fix invalid array-in-key docblock when narrowing long array unions (#8430) --- rules/Privatization/TypeManipulator/TypeNormalizer.php | 7 +++++-- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rules/Privatization/TypeManipulator/TypeNormalizer.php b/rules/Privatization/TypeManipulator/TypeNormalizer.php index 734da111ad0..5fed7107e6a 100644 --- a/rules/Privatization/TypeManipulator/TypeNormalizer.php +++ b/rules/Privatization/TypeManipulator/TypeNormalizer.php @@ -165,8 +165,11 @@ private function narrowToAlwaysKnownArrayType(UnionType $unionType): ?ArrayType if (count($unionType->getArrays()) !== count($unionType->getTypes())) { return null; } - $arrayUniqueKeyType = $this->arrayTypeLeastCommonDenominatorResolver->sharedArrayStructure(...$unionType->getTypes()); - return new ArrayType($arrayUniqueKeyType, new MixedType()); + $sharedArrayStructure = $this->arrayTypeLeastCommonDenominatorResolver->sharedArrayStructure(...$unionType->getTypes()); + if (!$sharedArrayStructure instanceof ArrayType) { + return null; + } + return $sharedArrayStructure; } /** * Is object only? avoid trimming, as auto import handles it better diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 218563cd6cd..f15d4d4ab1d 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 = '96fd595f95029db66bd5205e6c5aa60eb4745353'; + public const PACKAGE_VERSION = '0919678db52fe2ede06192b3b19834401da4a472'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 11:05:18'; + public const RELEASE_DATE = '2026-09-02 11:18:40'; /** * @var int */ From dd1dbd8a271d8cd0f92758090b5464c57114ac5a Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 09:33:57 +0000 Subject: [PATCH 106/169] Updated Rector to commit c8f5daeffd982de54092ead1bc0d278a60aa3747 https://github.com/rectorphp/rector-src/commit/c8f5daeffd982de54092ead1bc0d278a60aa3747 Add back RectorConfig::tag() as a no-op BC layer (#8431) --- src/Application/VersionResolver.php | 4 ++-- src/Config/RectorConfig.php | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f15d4d4ab1d..f3b8e0c6c70 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 = '0919678db52fe2ede06192b3b19834401da4a472'; + public const PACKAGE_VERSION = 'c8f5daeffd982de54092ead1bc0d278a60aa3747'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 11:18:40'; + public const RELEASE_DATE = '2026-09-02 11:31:25'; /** * @var int */ diff --git a/src/Config/RectorConfig.php b/src/Config/RectorConfig.php index 9ceb7845e72..c456d598d8c 100644 --- a/src/Config/RectorConfig.php +++ b/src/Config/RectorConfig.php @@ -477,6 +477,17 @@ public function editorUrl(string $editorUrl): void { SimpleParameterProvider::setParameter(Option::EDITOR_URL, $editorUrl); } + /** + * Backward-compatibility no-op. The former illuminate/container exposed tag()/tagged(); + * the entropy container discovers services by contract, so tagging is not needed. + * + * @deprecated Tagging is no longer used, services are discovered by contract. The call is ignored. + * @param string|string[] $abstracts + * @param string|string[] $tags + */ + public function tag($abstracts, $tags): void + { + } /** * @internal Used only for bridge * @return array, mixed> From ca069d6c79feaa6651b423c15d101a27a436093e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 09:38:46 +0000 Subject: [PATCH 107/169] Rector 2.6.6 --- src/Application/VersionResolver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f3b8e0c6c70..ad54e54b4e5 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,7 +19,7 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = 'c8f5daeffd982de54092ead1bc0d278a60aa3747'; + public const PACKAGE_VERSION = '2.6.6'; /** * @api * @var string From ab86a57f59007c6e78e12f0c8fc26fb34bbdaf03 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 12:57:16 +0000 Subject: [PATCH 108/169] Updated Rector to commit 8bbbf1ba4fa05199f91372f51ca1ef2ac77147b0 https://github.com/rectorphp/rector-src/commit/8bbbf1ba4fa05199f91372f51ca1ef2ac77147b0 [TypeDeclarationDocblocks] Return empty "[]" as "mixed[]" instead of "array{}" on bare "@return array" (#8432) --- ...ckReturnArrayFromDirectArrayInstanceRector.php | 15 +++++++++++++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php index f977f0e8284..effd049319e 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php @@ -10,10 +10,12 @@ use PhpParser\Node\Stmt\Return_; use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode; use PHPStan\PhpDocParser\Ast\Type\ArrayTypeNode; +use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use PHPStan\Type\Constant\ConstantArrayType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; +use Rector\BetterPhpDocParser\ValueObject\Type\SpacingAwareArrayTypeNode; use Rector\Rector\AbstractRector; use Rector\TypeDeclarationDocblocks\NodeFinder\ReturnNodeFinder; use Rector\TypeDeclarationDocblocks\TagNodeAnalyzer\UsefulArrayTagNodeAnalyzer; @@ -118,6 +120,11 @@ public function refactor(Node $node): ?Node if ($this->shouldSkipReturnMixedAndEmptyArray($phpDocInfo, $soleReturn->expr)) { return null; } + // bare "@return array" with "return []" -> "mixed[]", better than "array{}" + if ($soleReturn->expr->items === [] && $this->hasBareArrayReturnTag($phpDocInfo)) { + $this->phpDocTypeChanger->changeReturnTypeNode($node, $phpDocInfo, new SpacingAwareArrayTypeNode(new IdentifierTypeNode('mixed'))); + return $node; + } // resolve simple type $returnedType = $this->getType($soleReturn->expr); if (!$returnedType instanceof ConstantArrayType) { @@ -143,4 +150,12 @@ private function shouldSkipReturnMixedAndEmptyArray(PhpDocInfo $phpDocInfo, Arra // better than array{} return $returnTagValueNode->type instanceof ArrayTypeNode; } + private function hasBareArrayReturnTag(PhpDocInfo $phpDocInfo): bool + { + $returnTagValueNode = $phpDocInfo->getReturnTagValue(); + if (!$returnTagValueNode instanceof ReturnTagValueNode) { + return \false; + } + return $returnTagValueNode->type instanceof IdentifierTypeNode && $returnTagValueNode->type->name === 'array'; + } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index ad54e54b4e5..92d6d95f0a6 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 = '2.6.6'; + public const PACKAGE_VERSION = '8bbbf1ba4fa05199f91372f51ca1ef2ac77147b0'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 11:31:25'; + public const RELEASE_DATE = '2026-09-02 14:55:14'; /** * @var int */ From 5d99851c6e6af6675d265b9eb1c2f1d656dd0a05 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 19:44:16 +0000 Subject: [PATCH 109/169] Updated Rector to commit d66b7be066b80473edc178c58e611830e576e31a https://github.com/rectorphp/rector-src/commit/d66b7be066b80473edc178c58e611830e576e31a [TypeDeclarationDocblocks] Widen "never[]" to "mixed[]" in generated @var array docblock (#8439) --- .../NodeDocblockTypeDecorator.php | 8 ++++++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php b/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php index 163ce7a055f..ba6b47219c5 100644 --- a/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php +++ b/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php @@ -15,6 +15,7 @@ use PHPStan\Type\MixedType; use PHPStan\Type\NeverType; use PHPStan\Type\Type; +use PHPStan\Type\TypeTraverser; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\Privatization\TypeManipulator\TypeNormalizer; @@ -100,6 +101,13 @@ public function decorateGenericIterableVarType(Type $type, PhpDocInfo $phpDocInf private function createTypeNode(Type $type): TypeNode { $generalizedType = $this->typeNormalizer->generalizeConstantTypes($type); + // empty array default "[]" resolves to "never[]"; widen to "mixed[]" to keep the docblock useful + $generalizedType = TypeTraverser::map($generalizedType, static function (Type $type, callable $traverse): Type { + if ($type instanceof NeverType) { + return new MixedType(); + } + return $traverse($type); + }); // turn into rather generic short return typeOrTypeNode, to keep it open to extension later and readable to human $typeNode = $this->staticTypeMapper->mapPHPStanTypeToPHPStanPhpDocTypeNode($generalizedType); if ($typeNode instanceof IdentifierTypeNode && $typeNode->name === 'mixed') { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 92d6d95f0a6..6b88fef8ed2 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 = '8bbbf1ba4fa05199f91372f51ca1ef2ac77147b0'; + public const PACKAGE_VERSION = 'd66b7be066b80473edc178c58e611830e576e31a'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 14:55:14'; + public const RELEASE_DATE = '2026-09-02 21:42:14'; /** * @var int */ From e3edd2f9803a0852c56f8371f4b31e016bf5451c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 20:30:30 +0000 Subject: [PATCH 110/169] Updated Rector to commit b1aa7ce2134d9a06494b68f45b394ed69b130cfb https://github.com/rectorphp/rector-src/commit/b1aa7ce2134d9a06494b68f45b394ed69b130cfb [CodeQuality] Skip CompleteDynamicPropertiesRector when a not autoloaded ancestor may declare the property (#8441) --- .../CompleteDynamicPropertiesRector.php | 24 ++++++++++++++++--- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php b/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php index 350c68cd650..7efbd484f33 100644 --- a/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php +++ b/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php @@ -4,7 +4,6 @@ namespace Rector\CodeQuality\Rector\Class_; use PhpParser\Node; -use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Stmt\Class_; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\ReflectionProvider; @@ -14,6 +13,7 @@ use Rector\NodeAnalyzer\ClassAnalyzer; use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; use Rector\Rector\AbstractRector; +use Rector\Reflection\ClassReflectionAnalyzer; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -45,7 +45,11 @@ final class CompleteDynamicPropertiesRector extends AbstractRector * @readonly */ private MissingPropertiesResolver $missingPropertiesResolver; - public function __construct(MissingPropertiesFactory $missingPropertiesFactory, LocalPropertyAnalyzer $localPropertyAnalyzer, ReflectionProvider $reflectionProvider, ClassAnalyzer $classAnalyzer, PhpAttributeAnalyzer $phpAttributeAnalyzer, MissingPropertiesResolver $missingPropertiesResolver) + /** + * @readonly + */ + private ClassReflectionAnalyzer $classReflectionAnalyzer; + public function __construct(MissingPropertiesFactory $missingPropertiesFactory, LocalPropertyAnalyzer $localPropertyAnalyzer, ReflectionProvider $reflectionProvider, ClassAnalyzer $classAnalyzer, PhpAttributeAnalyzer $phpAttributeAnalyzer, MissingPropertiesResolver $missingPropertiesResolver, ClassReflectionAnalyzer $classReflectionAnalyzer) { $this->missingPropertiesFactory = $missingPropertiesFactory; $this->localPropertyAnalyzer = $localPropertyAnalyzer; @@ -53,6 +57,7 @@ public function __construct(MissingPropertiesFactory $missingPropertiesFactory, $this->classAnalyzer = $classAnalyzer; $this->phpAttributeAnalyzer = $phpAttributeAnalyzer; $this->missingPropertiesResolver = $missingPropertiesResolver; + $this->classReflectionAnalyzer = $classReflectionAnalyzer; } public function getRuleDefinition(): RuleDefinition { @@ -135,7 +140,20 @@ private function shouldSkipClass(Class_ $class): bool if ($classReflection->hasMethod('__get')) { return \true; } - return $class->extends instanceof FullyQualified && !$this->reflectionProvider->hasClass($class->extends->toString()); + // any not autoloaded ancestor may already declare the property, so we cannot safely add it + return $this->hasNotAutoloadedAncestor($classReflection); + } + private function hasNotAutoloadedAncestor(ClassReflection $classReflection): bool + { + $currentClassReflection = $classReflection; + while ($currentClassReflection instanceof ClassReflection) { + $parentClassName = $this->classReflectionAnalyzer->resolveParentClassName($currentClassReflection); + if ($parentClassName !== null && !$this->reflectionProvider->hasClass($parentClassName)) { + return \true; + } + $currentClassReflection = $currentClassReflection->getParentClass(); + } + return \false; } private function matchClassReflection(Class_ $class): ?ClassReflection { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 6b88fef8ed2..322abf56d05 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 = 'd66b7be066b80473edc178c58e611830e576e31a'; + public const PACKAGE_VERSION = 'b1aa7ce2134d9a06494b68f45b394ed69b130cfb'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 21:42:14'; + public const RELEASE_DATE = '2026-09-02 22:28:02'; /** * @var int */ From d9cd34752c5736cbc1fdee480dd4bfbf9fc27a19 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 2 Sep 2026 22:36:13 +0000 Subject: [PATCH 111/169] Updated Rector to commit 9d5556c3bde8215a0c6aea1d7fb6a8c093c664c3 https://github.com/rectorphp/rector-src/commit/9d5556c3bde8215a0c6aea1d7fb6a8c093c664c3 [TypeDeclarationDocblocks] Limit ClassMethodArrayDocblockParamFromLocalCallsRector to private methods (#8442) --- ...odArrayDocblockParamFromLocalCallsRector.php | 17 +++-------------- .../UsefulArrayTagNodeAnalyzer.php | 2 +- src/Application/VersionResolver.php | 4 ++-- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php index b640f37864c..63778e5784b 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php @@ -7,11 +7,9 @@ use PhpParser\Node\Expr; use PhpParser\Node\Param; use PhpParser\Node\Stmt\Class_; -use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\NodeManipulator\ClassMethodManipulator; use Rector\PhpParser\NodeFinder\LocalMethodCallFinder; use Rector\Rector\AbstractRector; use Rector\TypeDeclaration\NodeAnalyzer\CallTypesResolver; @@ -44,18 +42,13 @@ final class ClassMethodArrayDocblockParamFromLocalCallsRector extends AbstractRe * @readonly */ private NodeDocblockTypeDecorator $nodeDocblockTypeDecorator; - /** - * @readonly - */ - private ClassMethodManipulator $classMethodManipulator; - public function __construct(PhpDocInfoFactory $phpDocInfoFactory, CallTypesResolver $callTypesResolver, LocalMethodCallFinder $localMethodCallFinder, UsefulArrayTagNodeAnalyzer $usefulArrayTagNodeAnalyzer, NodeDocblockTypeDecorator $nodeDocblockTypeDecorator, ClassMethodManipulator $classMethodManipulator) + public function __construct(PhpDocInfoFactory $phpDocInfoFactory, CallTypesResolver $callTypesResolver, LocalMethodCallFinder $localMethodCallFinder, UsefulArrayTagNodeAnalyzer $usefulArrayTagNodeAnalyzer, NodeDocblockTypeDecorator $nodeDocblockTypeDecorator) { $this->phpDocInfoFactory = $phpDocInfoFactory; $this->callTypesResolver = $callTypesResolver; $this->localMethodCallFinder = $localMethodCallFinder; $this->usefulArrayTagNodeAnalyzer = $usefulArrayTagNodeAnalyzer; $this->nodeDocblockTypeDecorator = $nodeDocblockTypeDecorator; - $this->classMethodManipulator = $classMethodManipulator; } public function getNodeTypes(): array { @@ -104,8 +97,8 @@ public function refactor(Node $node): ?Node if ($classMethod->getParams() === []) { continue; } - // parent/interface method may declare a wider @param contract; local calls are narrower, so skip to keep LSP - if ($this->classMethodManipulator->hasParentMethodOrInterfaceMethod($node, $this->getName($classMethod))) { + // only private methods have a closed set of local callers; public/protected can be called from outside + if (!$classMethod->isPrivate()) { continue; } $classMethodPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod); @@ -121,10 +114,6 @@ public function refactor(Node $node): ?Node if ($this->usefulArrayTagNodeAnalyzer->isUsefulArrayTag($parameterTagValueNode)) { continue; } - if ($parameterTagValueNode instanceof ParamTagValueNode && $classMethod->isPublic() && $this->usefulArrayTagNodeAnalyzer->isMixedArray($parameterTagValueNode->type)) { - // on public method, skip if there is mixed[], as caller can be anything - continue; - } $resolvedParameterType = $classMethodParameterTypes[$parameterPosition] ?? $classMethodParameterTypes[$parameterName] ?? null; if (!$resolvedParameterType instanceof Type) { continue; diff --git a/rules/TypeDeclarationDocblocks/TagNodeAnalyzer/UsefulArrayTagNodeAnalyzer.php b/rules/TypeDeclarationDocblocks/TagNodeAnalyzer/UsefulArrayTagNodeAnalyzer.php index 92b7281723b..a49279fa423 100644 --- a/rules/TypeDeclarationDocblocks/TagNodeAnalyzer/UsefulArrayTagNodeAnalyzer.php +++ b/rules/TypeDeclarationDocblocks/TagNodeAnalyzer/UsefulArrayTagNodeAnalyzer.php @@ -25,7 +25,7 @@ public function isUsefulArrayTag($tagValueNode): bool } return !in_array($type->name, ['array', 'mixed', 'iterable'], \true); } - public function isMixedArray(TypeNode $typeNode): bool + private function isMixedArray(TypeNode $typeNode): bool { return $typeNode instanceof SpacingAwareArrayTypeNode && $typeNode->type instanceof IdentifierTypeNode && $typeNode->type->name === 'mixed'; } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 322abf56d05..d22133bb97d 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 = 'b1aa7ce2134d9a06494b68f45b394ed69b130cfb'; + public const PACKAGE_VERSION = '9d5556c3bde8215a0c6aea1d7fb6a8c093c664c3'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-02 22:28:02'; + public const RELEASE_DATE = '2026-09-03 00:33:43'; /** * @var int */ From 1f2c5a58887f0ca0876ff6a4488ef6085147e03e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 11:38:24 +0000 Subject: [PATCH 112/169] Updated Rector to commit 9c946acb7c2844015bb3f7dc6e1647c49e2a5e96 https://github.com/rectorphp/rector-src/commit/9c946acb7c2844015bb3f7dc6e1647c49e2a5e96 [Php74] Keep comment inside If_ on IfToNullCoalescingAssignRector (#8443) --- .../If_/IfToNullCoalescingAssignRector.php | 11 ++- src/Application/VersionResolver.php | 4 +- vendor/composer/autoload_classmap.php | 2 + vendor/composer/autoload_static.php | 2 + vendor/composer/installed.json | 14 ++-- vendor/composer/installed.php | 2 +- vendor/scoper-autoload.php | 2 +- .../class-leak/src/ClassNameResolver.php | 2 +- .../class-leak/src/Commands/CheckCommand.php | 24 +++++- .../src/ConstructorParamTypeResolver.php | 46 +++++++++++ .../Filtering/PossiblyUnusedClassesFilter.php | 34 +++++++- .../src/Finder/ClassNamesFinder.php | 2 +- .../src/NodeVisitor/ClassNameNodeVisitor.php | 15 ++++ .../ConstructorParamTypeNodeVisitor.php | 80 +++++++++++++++++++ .../class-leak/src/ValueObject/ClassNames.php | 16 +++- .../src/ValueObject/FileWithClass.php | 16 +++- 16 files changed, 252 insertions(+), 20 deletions(-) create mode 100644 vendor/tomasvotruba/class-leak/src/ConstructorParamTypeResolver.php create mode 100644 vendor/tomasvotruba/class-leak/src/NodeVisitor/ConstructorParamTypeNodeVisitor.php diff --git a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php index e13b44f491a..d4a06695c18 100644 --- a/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php +++ b/rules/Php74/Rector/If_/IfToNullCoalescingAssignRector.php @@ -19,6 +19,7 @@ use PHPStan\Reflection\Php\PhpPropertyReflection; use PHPStan\Type\MixedType; use PHPStan\Type\TypeCombinator; +use Rector\BetterPhpDocParser\Comment\CommentsMerger; use Rector\PhpParser\Node\BetterNodeFinder; use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; @@ -44,11 +45,16 @@ final class IfToNullCoalescingAssignRector extends AbstractRector implements Min * @readonly */ private ReflectionResolver $reflectionResolver; - public function __construct(BetterNodeFinder $betterNodeFinder, ValueResolver $valueResolver, ReflectionResolver $reflectionResolver) + /** + * @readonly + */ + private CommentsMerger $commentsMerger; + public function __construct(BetterNodeFinder $betterNodeFinder, ValueResolver $valueResolver, ReflectionResolver $reflectionResolver, CommentsMerger $commentsMerger) { $this->betterNodeFinder = $betterNodeFinder; $this->valueResolver = $valueResolver; $this->reflectionResolver = $reflectionResolver; + $this->commentsMerger = $commentsMerger; } public function getRuleDefinition(): RuleDefinition { @@ -108,7 +114,8 @@ public function refactor(Node $node): ?Expression return null; } $expression = new Expression(new AssignCoalesce($assign->var, $assign->expr)); - $this->mirrorComments($expression, $node); + // keep comments from both the if and the single assign inside it + $this->commentsMerger->keepComments($expression, [$node, $onlyStmt]); return $expression; } public function provideMinPhpVersion(): int diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index d22133bb97d..5c20370b4cb 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 = '9d5556c3bde8215a0c6aea1d7fb6a8c093c664c3'; + public const PACKAGE_VERSION = '9c946acb7c2844015bb3f7dc6e1647c49e2a5e96'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 00:33:43'; + public const RELEASE_DATE = '2026-09-03 13:36:28'; /** * @var int */ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index fd1a03a71b3..752da31fad5 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -873,6 +873,7 @@ 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ClassNameResolver' => $vendorDir . '/tomasvotruba/class-leak/src/ClassNameResolver.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => $vendorDir . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ConstructorParamTypeResolver' => $vendorDir . '/tomasvotruba/class-leak/src/ConstructorParamTypeResolver.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => $vendorDir . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\FileSystem\\StaticRelativeFilePathHelper' => $vendorDir . '/tomasvotruba/class-leak/src/FileSystem/StaticRelativeFilePathHelper.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Filtering\\PossiblyUnusedClassesFilter' => $vendorDir . '/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php', @@ -880,6 +881,7 @@ 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Finder\\PhpFilesFinder' => $vendorDir . '/tomasvotruba/class-leak/src/Finder/PhpFilesFinder.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeDecorator\\FullyQualifiedNameNodeDecorator' => $vendorDir . '/tomasvotruba/class-leak/src/NodeDecorator/FullyQualifiedNameNodeDecorator.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\ClassNameNodeVisitor' => $vendorDir . '/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\ConstructorParamTypeNodeVisitor' => $vendorDir . '/tomasvotruba/class-leak/src/NodeVisitor/ConstructorParamTypeNodeVisitor.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\UsedClassNodeVisitor' => $vendorDir . '/tomasvotruba/class-leak/src/NodeVisitor/UsedClassNodeVisitor.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassReporter' => $vendorDir . '/tomasvotruba/class-leak/src/Reporting/UnusedClassReporter.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassesResultFactory' => $vendorDir . '/tomasvotruba/class-leak/src/Reporting/UnusedClassesResultFactory.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index e8947dfe4eb..bf0f6e469c3 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1093,6 +1093,7 @@ class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 'RectorPrefix202609\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ClassNameResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ClassNameResolver.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Commands\\CheckCommand' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Commands/CheckCommand.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\ConstructorParamTypeResolver' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/ConstructorParamTypeResolver.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\DependencyInjection\\ContainerFactory' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/DependencyInjection/ContainerFactory.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\FileSystem\\StaticRelativeFilePathHelper' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/FileSystem/StaticRelativeFilePathHelper.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Filtering\\PossiblyUnusedClassesFilter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php', @@ -1100,6 +1101,7 @@ class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Finder\\PhpFilesFinder' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Finder/PhpFilesFinder.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeDecorator\\FullyQualifiedNameNodeDecorator' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeDecorator/FullyQualifiedNameNodeDecorator.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\ClassNameNodeVisitor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php', + 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\ConstructorParamTypeNodeVisitor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeVisitor/ConstructorParamTypeNodeVisitor.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\NodeVisitor\\UsedClassNodeVisitor' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/NodeVisitor/UsedClassNodeVisitor.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassReporter' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Reporting/UnusedClassReporter.php', 'RectorPrefix202609\\TomasVotruba\\ClassLeak\\Reporting\\UnusedClassesResultFactory' => __DIR__ . '/..' . '/tomasvotruba/class-leak/src/Reporting/UnusedClassesResultFactory.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 703a0108dfc..85587906ee9 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -2525,17 +2525,17 @@ }, { "name": "tomasvotruba\/class-leak", - "version": "2.2.0", - "version_normalized": "2.2.0.0", + "version": "2.2.4", + "version_normalized": "2.2.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/TomasVotruba\/class-leak.git", - "reference": "cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87" + "reference": "bc56eb6d4940e250f959a5a5ee7dcb2f064c2725" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/class-leak\/zipball\/cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87", - "reference": "cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87", + "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/class-leak\/zipball\/bc56eb6d4940e250f959a5a5ee7dcb2f064c2725", + "reference": "bc56eb6d4940e250f959a5a5ee7dcb2f064c2725", "shasum": "" }, "require": { @@ -2561,7 +2561,7 @@ "symplify\/phpstan-extensions": "^12", "tracy\/tracy": "^2.12" }, - "time": "2026-08-29T20:55:33+00:00", + "time": "2026-09-03T08:44:47+00:00", "bin": [ "bin\/class-leak", "bin\/class-leak.php" @@ -2581,7 +2581,7 @@ "description": "Detect leaking classes", "support": { "issues": "https:\/\/github.com\/TomasVotruba\/class-leak\/issues", - "source": "https:\/\/github.com\/TomasVotruba\/class-leak\/tree\/2.2.0" + "source": "https:\/\/github.com\/TomasVotruba\/class-leak\/tree\/2.2.4" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 5f39a65d1f5..2d015fbe23f 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => 'cdc1c116f3deaa68ebd338fa2f791a0b4a52ad87', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 5b98d571208..b2e059bc283 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) + \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) ); return $loader; diff --git a/vendor/tomasvotruba/class-leak/src/ClassNameResolver.php b/vendor/tomasvotruba/class-leak/src/ClassNameResolver.php index 1c2254ccbae..b27bee39f21 100644 --- a/vendor/tomasvotruba/class-leak/src/ClassNameResolver.php +++ b/vendor/tomasvotruba/class-leak/src/ClassNameResolver.php @@ -43,6 +43,6 @@ public function resolveFromFilePath(string $filePath): ?ClassNames if (!is_string($className)) { return null; } - return new ClassNames($className, $classNameNodeVisitor->hasParentClassOrInterface(), $classNameNodeVisitor->getAttributes()); + return new ClassNames($className, $classNameNodeVisitor->hasParentClassOrInterface(), $classNameNodeVisitor->getAttributes(), $classNameNodeVisitor->getInterfaceNames()); } } diff --git a/vendor/tomasvotruba/class-leak/src/Commands/CheckCommand.php b/vendor/tomasvotruba/class-leak/src/Commands/CheckCommand.php index 162f29a927f..c2985ab58c7 100644 --- a/vendor/tomasvotruba/class-leak/src/Commands/CheckCommand.php +++ b/vendor/tomasvotruba/class-leak/src/Commands/CheckCommand.php @@ -7,6 +7,7 @@ use RectorPrefix202609\Entropy\Console\Contract\CommandInterface; use RectorPrefix202609\Entropy\Console\Output\OutputPrinter; use RectorPrefix202609\Entropy\Console\Output\ProgressBar; +use RectorPrefix202609\TomasVotruba\ClassLeak\ConstructorParamTypeResolver; use RectorPrefix202609\TomasVotruba\ClassLeak\Filtering\PossiblyUnusedClassesFilter; use RectorPrefix202609\TomasVotruba\ClassLeak\Finder\ClassNamesFinder; use RectorPrefix202609\TomasVotruba\ClassLeak\Finder\PhpFilesFinder; @@ -23,6 +24,10 @@ final class CheckCommand implements CommandInterface * @readonly */ private UseImportsResolver $useImportsResolver; + /** + * @readonly + */ + private ConstructorParamTypeResolver $constructorParamTypeResolver; /** * @readonly */ @@ -47,10 +52,11 @@ final class CheckCommand implements CommandInterface * @readonly */ private ProgressBar $progressBar; - public function __construct(ClassNamesFinder $classNamesFinder, UseImportsResolver $useImportsResolver, PossiblyUnusedClassesFilter $possiblyUnusedClassesFilter, UnusedClassReporter $unusedClassReporter, OutputPrinter $outputPrinter, PhpFilesFinder $phpFilesFinder, UnusedClassesResultFactory $unusedClassesResultFactory, ProgressBar $progressBar) + public function __construct(ClassNamesFinder $classNamesFinder, UseImportsResolver $useImportsResolver, ConstructorParamTypeResolver $constructorParamTypeResolver, PossiblyUnusedClassesFilter $possiblyUnusedClassesFilter, UnusedClassReporter $unusedClassReporter, OutputPrinter $outputPrinter, PhpFilesFinder $phpFilesFinder, UnusedClassesResultFactory $unusedClassesResultFactory, ProgressBar $progressBar) { $this->classNamesFinder = $classNamesFinder; $this->useImportsResolver = $useImportsResolver; + $this->constructorParamTypeResolver = $constructorParamTypeResolver; $this->possiblyUnusedClassesFilter = $possiblyUnusedClassesFilter; $this->unusedClassReporter = $unusedClassReporter; $this->outputPrinter = $outputPrinter; @@ -97,6 +103,7 @@ public function run(array $paths, array $skipType = [], array $skipSuffix = [], $progressCallback = $this->createProgressCallback(count($allFilePaths)); } $usedNames = $this->resolveUsedClassNames($allFilePaths, $progressCallback); + $constructorInjectedNames = $this->resolveConstructorInjectedNames($allFilePaths); if (!$json) { $this->progressBar->finish(); } @@ -111,7 +118,7 @@ public function run(array $paths, array $skipType = [], array $skipSuffix = [], $this->progressBar->finish(); } $this->outputPrinter->newline(); - $possiblyUnusedFilesWithClasses = $this->possiblyUnusedClassesFilter->filter($existingFilesWithClasses, $usedNames, $skipType, $skipSuffix, $skipAttribute, $includeEntities); + $possiblyUnusedFilesWithClasses = $this->possiblyUnusedClassesFilter->filter($existingFilesWithClasses, $usedNames, $skipType, $skipSuffix, $skipAttribute, $includeEntities, $constructorInjectedNames); $unusedClassesResult = $this->unusedClassesResultFactory->create($possiblyUnusedFilesWithClasses); $this->outputPrinter->newline(); return $this->unusedClassReporter->reportResult($unusedClassesResult, $json); @@ -132,6 +139,19 @@ private function resolveUsedClassNames(array $phpFilePaths, ?Closure $progressCa sort($usedNames); return $usedNames; } + /** + * @param string[] $phpFilePaths + * @return string[] types injected as constructor parameters, used to keep classes wired by their interface + */ + private function resolveConstructorInjectedNames(array $phpFilePaths): array + { + $constructorInjectedNames = []; + foreach ($phpFilePaths as $phpFilePath) { + $currentNames = $this->constructorParamTypeResolver->resolve($phpFilePath); + $constructorInjectedNames = array_merge($constructorInjectedNames, $currentNames); + } + return array_unique($constructorInjectedNames); + } private function createProgressCallback(int $max): Closure { $this->progressBar->start($max); diff --git a/vendor/tomasvotruba/class-leak/src/ConstructorParamTypeResolver.php b/vendor/tomasvotruba/class-leak/src/ConstructorParamTypeResolver.php new file mode 100644 index 00000000000..5aad586db8d --- /dev/null +++ b/vendor/tomasvotruba/class-leak/src/ConstructorParamTypeResolver.php @@ -0,0 +1,46 @@ +parser = $parser; + $this->fullyQualifiedNameNodeDecorator = $fullyQualifiedNameNodeDecorator; + } + /** + * @return string[] + */ + public function resolve(string $filePath): array + { + /** @var string $fileContents */ + $fileContents = file_get_contents($filePath); + $stmts = $this->parser->parse($fileContents); + if ($stmts === null) { + return []; + } + $this->fullyQualifiedNameNodeDecorator->decorate($stmts); + $constructorParamTypeNodeVisitor = new ConstructorParamTypeNodeVisitor(); + $nodeTraverser = new NodeTraverser(); + $nodeTraverser->addVisitor($constructorParamTypeNodeVisitor); + $nodeTraverser->traverse($stmts); + return $constructorParamTypeNodeVisitor->getParamTypeNames(); + } +} diff --git a/vendor/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php b/vendor/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php index 083c370d44d..1077c3acbd0 100644 --- a/vendor/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php +++ b/vendor/tomasvotruba/class-leak/src/Filtering/PossiblyUnusedClassesFilter.php @@ -17,6 +17,7 @@ final class PossiblyUnusedClassesFilter // http-kernel 'RectorPrefix202609\Symfony\Component\Console\Application', 'RectorPrefix202609\Symfony\Component\HttpKernel\DependencyInjection\Extension', + 'RectorPrefix202609\Symfony\Component\DependencyInjection\Extension\Extension', 'RectorPrefix202609\Symfony\Bundle\FrameworkBundle\Controller\Controller', 'RectorPrefix202609\Symfony\Bundle\FrameworkBundle\Controller\AbstractController', 'RectorPrefix202609\Livewire\Component', @@ -47,6 +48,7 @@ final class PossiblyUnusedClassesFilter // kernel 'RectorPrefix202609\Symfony\Component\HttpKernel\Bundle\BundleInterface', 'RectorPrefix202609\Symfony\Component\HttpKernel\KernelInterface', + 'RectorPrefix202609\Symfony\Component\HttpKernel\HttpKernelInterface', 'RectorPrefix202609\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator', // console 'RectorPrefix202609\Symfony\Component\Console\Command\Command', @@ -60,6 +62,7 @@ final class PossiblyUnusedClassesFilter 'RectorPrefix202609\Behat\Behat\Context\Context', // jms 'RectorPrefix202609\JMS\Serializer\Handler\SubscribingHandlerInterface', + 'RectorPrefix202609\JMS\Serializer\EventDispatcher\EventSubscriberInterface', // laravel 'RectorPrefix202609\Illuminate\Support\ServiceProvider', 'RectorPrefix202609\Illuminate\Foundation\Http\Kernel', @@ -75,7 +78,15 @@ final class PossiblyUnusedClassesFilter // Symfony 'RectorPrefix202609\Symfony\Component\Console\Attribute\AsCommand', 'RectorPrefix202609\Symfony\Component\HttpKernel\Attribute\AsController', + 'RectorPrefix202609\Symfony\Component\Routing\Attribute\Route', 'RectorPrefix202609\Symfony\Component\EventDispatcher\Attribute\AsEventListener', + 'RectorPrefix202609\Symfony\Component\Messenger\Attribute\AsMessageHandler', + // Doctrine + 'RectorPrefix202609\Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener', + // Twig + 'RectorPrefix202609\Twig\Attribute\AsTwigFunction', + 'RectorPrefix202609\Twig\Attribute\AsTwigFilter', + 'RectorPrefix202609\Twig\Attribute\AsTwigTest', ]; /** * @param FileWithClass[] $filesWithClasses @@ -83,10 +94,11 @@ final class PossiblyUnusedClassesFilter * @param string[] $typesToSkip * @param string[] $suffixesToSkip * @param string[] $attributesToSkip + * @param string[] $constructorInjectedNames types injected as constructor parameters somewhere * * @return FileWithClass[] */ - public function filter(array $filesWithClasses, array $usedClassNames, array $typesToSkip, array $suffixesToSkip, array $attributesToSkip, bool $shouldIncludeEntities): array + public function filter(array $filesWithClasses, array $usedClassNames, array $typesToSkip, array $suffixesToSkip, array $attributesToSkip, bool $shouldIncludeEntities, array $constructorInjectedNames = []): array { Assert::allString($usedClassNames); Assert::allString($typesToSkip); @@ -108,6 +120,10 @@ public function filter(array $filesWithClasses, array $usedClassNames, array $ty if ($fileWithClass->isSerialized()) { continue; } + // implemented interface is injected via constructor, class is resolved through it + if ($this->isImplementedInterfaceConstructorInjected($fileWithClass, $constructorInjectedNames)) { + continue; + } // is excluded suffix? foreach ($suffixesToSkip as $suffixToSkip) { if (substr_compare($fileWithClass->getClassName(), $suffixToSkip, -strlen($suffixToSkip)) === 0) { @@ -124,6 +140,22 @@ public function filter(array $filesWithClasses, array $usedClassNames, array $ty } return $possiblyUnusedFilesWithClasses; } + /** + * A class whose interface is type-hinted in some constructor is wired by the container through it. + * + * @param string[] $constructorInjectedNames + */ + private function isImplementedInterfaceConstructorInjected(FileWithClass $fileWithClass, array $constructorInjectedNames): bool + { + $found = \false; + foreach ($fileWithClass->getInterfaceNames() as $interfaceName) { + if (in_array($interfaceName, $constructorInjectedNames, \true)) { + $found = \true; + break; + } + } + return $found; + } /** * @param string[] $skips */ diff --git a/vendor/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php b/vendor/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php index c091955775e..34ea83bfeee 100644 --- a/vendor/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php +++ b/vendor/tomasvotruba/class-leak/src/Finder/ClassNamesFinder.php @@ -30,7 +30,7 @@ public function resolveClassNamesToCheck(array $filePaths, ?Closure $progressCal if (!$classNames instanceof ClassNames) { continue; } - $filesWithClasses[] = new FileWithClass($filePath, $classNames->getClassName(), $classNames->hasParentClassOrInterface(), $classNames->getAttributes()); + $filesWithClasses[] = new FileWithClass($filePath, $classNames->getClassName(), $classNames->hasParentClassOrInterface(), $classNames->getAttributes(), $classNames->getInterfaceNames()); } return $filesWithClasses; } diff --git a/vendor/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php b/vendor/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php index 0f57d5f19cd..81834a0e059 100644 --- a/vendor/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php +++ b/vendor/tomasvotruba/class-leak/src/NodeVisitor/ClassNameNodeVisitor.php @@ -28,6 +28,10 @@ final class ClassNameNodeVisitor extends NodeVisitorAbstract * @var string[] */ private array $attributes = []; + /** + * @var string[] + */ + private array $interfaceNames = []; /** * @param Node\Stmt[] $nodes * @return Node\Stmt[] @@ -37,6 +41,7 @@ public function beforeTraverse(array $nodes): array $this->className = null; $this->hasParentClassOrInterface = \false; $this->attributes = []; + $this->interfaceNames = []; return $nodes; } public function enterNode(Node $node): ?int @@ -60,6 +65,9 @@ public function enterNode(Node $node): ?int } if ($node->implements !== []) { $this->hasParentClassOrInterface = \true; + foreach ($node->implements as $implement) { + $this->interfaceNames[] = $implement->toString(); + } } } if ($node instanceof Interface_ && $node->extends !== []) { @@ -94,6 +102,13 @@ public function getAttributes(): array { return array_unique($this->attributes); } + /** + * @return string[] + */ + public function getInterfaceNames(): array + { + return $this->interfaceNames; + } private function hasApiTag(ClassLike $classLike): bool { $doc = $classLike->getDocComment(); diff --git a/vendor/tomasvotruba/class-leak/src/NodeVisitor/ConstructorParamTypeNodeVisitor.php b/vendor/tomasvotruba/class-leak/src/NodeVisitor/ConstructorParamTypeNodeVisitor.php new file mode 100644 index 00000000000..5d1bbc957c2 --- /dev/null +++ b/vendor/tomasvotruba/class-leak/src/NodeVisitor/ConstructorParamTypeNodeVisitor.php @@ -0,0 +1,80 @@ +paramTypeNames = []; + return $nodes; + } + /** + * @return null + */ + public function enterNode(Node $node) + { + if (!$node instanceof ClassMethod) { + return null; + } + if ($node->name->toLowerString() !== '__construct') { + return null; + } + foreach ($node->params as $param) { + if ($param->type === null) { + continue; + } + foreach ($this->resolveTypeNames($param->type) as $typeName) { + $this->paramTypeNames[] = $typeName; + } + } + return null; + } + /** + * @return string[] + */ + public function getParamTypeNames(): array + { + return array_unique($this->paramTypeNames); + } + /** + * @param Node\Identifier|Name|ComplexType $type + * @return string[] + */ + private function resolveTypeNames(Node $type): array + { + if ($type instanceof Name) { + return [$type->toString()]; + } + if ($type instanceof NullableType) { + return $this->resolveTypeNames($type->type); + } + if ($type instanceof UnionType || $type instanceof IntersectionType) { + $typeNames = []; + foreach ($type->types as $innerType) { + $typeNames = array_merge($typeNames, $this->resolveTypeNames($innerType)); + } + return $typeNames; + } + // builtin Identifier type, e.g. string, int + return []; + } +} diff --git a/vendor/tomasvotruba/class-leak/src/ValueObject/ClassNames.php b/vendor/tomasvotruba/class-leak/src/ValueObject/ClassNames.php index 0be422792ff..116c667b14f 100644 --- a/vendor/tomasvotruba/class-leak/src/ValueObject/ClassNames.php +++ b/vendor/tomasvotruba/class-leak/src/ValueObject/ClassNames.php @@ -18,14 +18,21 @@ final class ClassNames * @readonly */ private array $attributes; + /** + * @var string[] + * @readonly + */ + private array $interfaceNames = []; /** * @param string[] $attributes + * @param string[] $interfaceNames */ - public function __construct(string $className, bool $hasParentClassOrInterface, array $attributes) + public function __construct(string $className, bool $hasParentClassOrInterface, array $attributes, array $interfaceNames = []) { $this->className = $className; $this->hasParentClassOrInterface = $hasParentClassOrInterface; $this->attributes = $attributes; + $this->interfaceNames = $interfaceNames; } public function getClassName(): string { @@ -42,4 +49,11 @@ public function getAttributes(): array { return $this->attributes; } + /** + * @return string[] + */ + public function getInterfaceNames(): array + { + return $this->interfaceNames; + } } diff --git a/vendor/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php b/vendor/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php index 9616368ce4c..5d232df925f 100644 --- a/vendor/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php +++ b/vendor/tomasvotruba/class-leak/src/ValueObject/FileWithClass.php @@ -25,15 +25,22 @@ final class FileWithClass implements JsonSerializable * @readonly */ private array $attributes; + /** + * @var string[] + * @readonly + */ + private array $interfaceNames = []; /** * @param string[] $attributes + * @param string[] $interfaceNames */ - public function __construct(string $filePath, string $className, bool $hasParentClassOrInterface, array $attributes) + public function __construct(string $filePath, string $className, bool $hasParentClassOrInterface, array $attributes, array $interfaceNames = []) { $this->filePath = $filePath; $this->className = $className; $this->hasParentClassOrInterface = $hasParentClassOrInterface; $this->attributes = $attributes; + $this->interfaceNames = $interfaceNames; } public function getClassName(): string { @@ -54,6 +61,13 @@ public function getAttributes(): array { return $this->attributes; } + /** + * @return string[] + */ + public function getInterfaceNames(): array + { + return $this->interfaceNames; + } /** * @return array{file_path: string, class: string, attributes: string[]} */ From 85d3d56902eee51086577292cbca040fc8863421 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 19:47:43 +0000 Subject: [PATCH 113/169] Updated Rector to commit 6f0bf46d2bbad9902d1d8ccdaf6f7f320e939ec2 https://github.com/rectorphp/rector-src/commit/6f0bf46d2bbad9902d1d8ccdaf6f7f320e939ec2 [Console] Disable progress bar when output is not a TTY (#8444) --- src/Application/VersionResolver.php | 4 ++-- src/Configuration/ConfigurationFactory.php | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 5c20370b4cb..c4a76ff7fbd 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 = '9c946acb7c2844015bb3f7dc6e1647c49e2a5e96'; + public const PACKAGE_VERSION = '6f0bf46d2bbad9902d1d8ccdaf6f7f320e939ec2'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 13:36:28'; + public const RELEASE_DATE = '2026-09-03 21:45:06'; /** * @var int */ diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index 70aece604b7..b2cfee11a41 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -99,11 +99,19 @@ private function shouldShowProgressBar(InputInterface $input, string $outputForm if ($noProgressBar) { return \false; } + // no interactive terminal, e.g. piped output, CI or an agent - the redraws are just noise + if (!$this->isTtyOutput()) { + return \false; + } if ($this->symfonyStyle->isVerbose()) { return \false; } return $outputFormat === ConsoleOutputFormatter::NAME; } + private function isTtyOutput(): bool + { + return defined('STDOUT') && stream_isatty(\STDOUT); + } private function shouldShowDiffs(InputInterface $input): bool { $noDiffs = (bool) $input->getOption(\Rector\Configuration\Option::NO_DIFFS); From f4a3910e5ce3a221796cec341cbcdcfc3b546058 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 19:48:18 +0000 Subject: [PATCH 114/169] Updated Rector to commit 3bdc4c62834fd329331acf3d9008c0df2de64ca1 https://github.com/rectorphp/rector-src/commit/3bdc4c62834fd329331acf3d9008c0df2de64ca1 [CI] Run Drupal dev-main check on main only, not on every PR (#8445) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index c4a76ff7fbd..0eb68a2f65a 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 = '6f0bf46d2bbad9902d1d8ccdaf6f7f320e939ec2'; + public const PACKAGE_VERSION = '3bdc4c62834fd329331acf3d9008c0df2de64ca1'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 21:45:06'; + public const RELEASE_DATE = '2026-09-03 21:45:31'; /** * @var int */ From 8f02d623aa70016c8a65be147d654caf53fae04f Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 19:52:10 +0000 Subject: [PATCH 115/169] Updated Rector to commit dc1d9e77b330a2d893e2d7018a7e6e30338a3395 https://github.com/rectorphp/rector-src/commit/dc1d9e77b330a2d893e2d7018a7e6e30338a3395 [DeadCode] Skip RemoveDeadIfBlockRector on empty if with elseif and trailing else (#8446) --- rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php | 5 +++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php b/rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php index c5a106db3dc..f02f4cf0a77 100644 --- a/rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php +++ b/rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php @@ -117,6 +117,11 @@ public function refactor(Node $node) // When the if body is blank but it has an elseif, // merge the negated if condition with the elseif condition if ($node->elseifs !== []) { + // A trailing else would run when the negated if condition is true, + // which the original empty if body never did, so keep the code as is. + if ($node->else instanceof Else_) { + return null; + } $firstElseIf = $node->elseifs[0]; $cond = new BooleanAnd($this->conditionInverter->createInvertedCondition($node->cond), $firstElseIf->cond); $if = new If_($cond, ['stmts' => $firstElseIf->stmts]); diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 0eb68a2f65a..cf03d727746 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 = '3bdc4c62834fd329331acf3d9008c0df2de64ca1'; + public const PACKAGE_VERSION = 'dc1d9e77b330a2d893e2d7018a7e6e30338a3395'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 21:45:31'; + public const RELEASE_DATE = '2026-09-03 21:49:55'; /** * @var int */ From fb180e21979cc336ea092ff478622c91bb80ccec Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 20:25:05 +0000 Subject: [PATCH 116/169] Updated Rector to commit 1b5127a1e4a7999118daaae775a1efdb2c6d802c https://github.com/rectorphp/rector-src/commit/1b5127a1e4a7999118daaae775a1efdb2c6d802c Bump phpstan/phpstan to ^2.2.12 (#8447) --- composer.json | 2 +- src/Application/VersionResolver.php | 4 ++-- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 10 +++++----- vendor/composer/autoload_static.php | 8 ++++---- vendor/composer/installed.json | 14 +++++++------- vendor/composer/installed.php | 2 +- .../entropy/src/Console/Output/OutputPrinter.php | 2 +- .../src/Reflection/ParameterTypesResolver.php | 2 +- vendor/scoper-autoload.php | 4 ++-- 10 files changed, 25 insertions(+), 25 deletions(-) diff --git a/composer.json b/composer.json index 65314d3d6ee..8fd229e9bac 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ ], "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.2.10" + "phpstan/phpstan": "^2.2.12" }, "autoload": { "files": [ diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index cf03d727746..305556b6747 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 = 'dc1d9e77b330a2d893e2d7018a7e6e30338a3395'; + public const PACKAGE_VERSION = '1b5127a1e4a7999118daaae775a1efdb2c6d802c'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 21:49:55'; + public const RELEASE_DATE = '2026-09-03 22:20:32'; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 00710f3819b..1e686120cd1 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91::getLoader(); +return ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 7aa03bc02f5..765dc86e756 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91 +class ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$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 bf0f6e469c3..8b9c970fa83 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 +class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -3076,9 +3076,9 @@ class ComposerStaticInitd4ba754b7676472e6838a1b07b862c91 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitd4ba754b7676472e6838a1b07b862c91::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 85587906ee9..40bb67f28f3 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -390,17 +390,17 @@ }, { "name": "entropy\/entropy", - "version": "0.4.12", - "version_normalized": "0.4.12.0", + "version": "0.4.13", + "version_normalized": "0.4.13.0", "source": { "type": "git", "url": "https:\/\/github.com\/TomasVotruba\/entropy.git", - "reference": "fa763e4fc4271658e9a7e1f41279ed2a4911765c" + "reference": "b2c703a93350f49ce67d150bb8560e886be01027" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/fa763e4fc4271658e9a7e1f41279ed2a4911765c", - "reference": "fa763e4fc4271658e9a7e1f41279ed2a4911765c", + "url": "https:\/\/api.github.com\/repos\/TomasVotruba\/entropy\/zipball\/b2c703a93350f49ce67d150bb8560e886be01027", + "reference": "b2c703a93350f49ce67d150bb8560e886be01027", "shasum": "" }, "require": { @@ -422,7 +422,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-08-25T15:38:26+00:00", + "time": "2026-09-03T19:53:04+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -437,7 +437,7 @@ "description": "Entropy framework", "support": { "issues": "https:\/\/github.com\/TomasVotruba\/entropy\/issues", - "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.12" + "source": "https:\/\/github.com\/TomasVotruba\/entropy\/tree\/0.4.13" }, "install-path": "..\/entropy\/entropy" }, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 2d015fbe23f..a5e91ed3e41 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.12', 'version' => '0.4.12.0', 'reference' => 'fa763e4fc4271658e9a7e1f41279ed2a4911765c', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/entropy/entropy/src/Console/Output/OutputPrinter.php b/vendor/entropy/entropy/src/Console/Output/OutputPrinter.php index 3c22aeda45f..99bb3c6a402 100644 --- a/vendor/entropy/entropy/src/Console/Output/OutputPrinter.php +++ b/vendor/entropy/entropy/src/Console/Output/OutputPrinter.php @@ -130,7 +130,7 @@ public function ask(string $question, ?string $default = null): ?string private function block(string $text, string $color): void { // reserve 2 chars for the single space padding the background() adds on each side - $contentWidth = Terminal::getWidth() - 2; + $contentWidth = max(0, Terminal::getWidth() - 2); $emptyLine = str_repeat(' ', $contentWidth); $paddedText = Terminal::padVisibleRight($text, $contentWidth); $this->newline(); diff --git a/vendor/entropy/entropy/src/Reflection/ParameterTypesResolver.php b/vendor/entropy/entropy/src/Reflection/ParameterTypesResolver.php index 934c6ea272c..ebacd48bf6b 100644 --- a/vendor/entropy/entropy/src/Reflection/ParameterTypesResolver.php +++ b/vendor/entropy/entropy/src/Reflection/ParameterTypesResolver.php @@ -31,7 +31,7 @@ public static function resolve(ReflectionMethod $reflectionMethod, array $reflec continue; } else { // try resolving array of class types via docblock - if ($parameterType instanceof ReflectionNamedType && (string) $reflectionParameter->getType() === 'array') { + if ($parameterType instanceof ReflectionNamedType && $parameterType->getName() === 'array') { $docComment = $reflectionMethod->getDocComment(); if ($docComment !== \false) { $pattern = sprintf('/@param\s+%s\[\]\s+\$%s/', '([\\\\\\w]+)', $reflectionParameter->getName()); diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index b2e059bc283..49a6cccef97 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) + \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) ); return $loader; @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202609\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202609\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91', 'RectorPrefix202609\ComposerAutoloaderInitd4ba754b7676472e6838a1b07b862c91'); +humbug_phpscoper_expose_class('ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277', 'RectorPrefix202609\ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202609\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202609\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202609\ValueError'); From 07c2214f0d1f1a978a5b956499be27f80ac959bf Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 21:16:26 +0000 Subject: [PATCH 117/169] Updated Rector to commit 6d22545bc6c21f85845cc6acccf197ece427bd37 https://github.com/rectorphp/rector-src/commit/6d22545bc6c21f85845cc6acccf197ece427bd37 [ChangesReporting] Add per-line rule attribution to JSON output (#8448) --- src/Application/VersionResolver.php | 4 ++-- src/ChangesReporting/Output/Factory/JsonOutputFactory.php | 6 +++++- src/ChangesReporting/ValueObject/RectorWithLineChange.php | 4 ++++ vendor/composer/installed.php | 2 +- vendor/scoper-autoload.php | 2 +- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 305556b6747..4b9b69c717a 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 = '1b5127a1e4a7999118daaae775a1efdb2c6d802c'; + public const PACKAGE_VERSION = '6d22545bc6c21f85845cc6acccf197ece427bd37'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 22:20:32'; + public const RELEASE_DATE = '2026-09-03 23:14:05'; /** * @var int */ diff --git a/src/ChangesReporting/Output/Factory/JsonOutputFactory.php b/src/ChangesReporting/Output/Factory/JsonOutputFactory.php index 1ad6d67536f..37daa234b95 100644 --- a/src/ChangesReporting/Output/Factory/JsonOutputFactory.php +++ b/src/ChangesReporting/Output/Factory/JsonOutputFactory.php @@ -25,7 +25,11 @@ public static function create(ProcessResult $processResult, Configuration $confi foreach ($fileDiffs as $fileDiff) { $filePath = $configuration->isReportingWithRealPath() ? $fileDiff->getAbsoluteFilePath() ?? '' : $fileDiff->getRelativeFilePath(); if ($configuration->shouldShowDiffs() && $fileDiff->getDiff() !== '') { - $errorsJson[Bridge::FILE_DIFFS][] = ['file' => $filePath, 'diff' => $fileDiff->getDiff(), 'applied_rectors' => $fileDiff->getRectorClasses()]; + $changes = []; + foreach ($fileDiff->getRectorChanges() as $rectorWithLineChange) { + $changes[] = ['rector' => $rectorWithLineChange->getRectorClass(), 'line' => $rectorWithLineChange->getLine()]; + } + $errorsJson[Bridge::FILE_DIFFS][] = ['file' => $filePath, 'diff' => $fileDiff->getDiff(), 'applied_rectors' => $fileDiff->getRectorClasses(), 'changes' => $changes]; } // for Rector CI $errorsJson['changed_files'][] = $filePath; diff --git a/src/ChangesReporting/ValueObject/RectorWithLineChange.php b/src/ChangesReporting/ValueObject/RectorWithLineChange.php index a2ffe0e47eb..0f6ccaac448 100644 --- a/src/ChangesReporting/ValueObject/RectorWithLineChange.php +++ b/src/ChangesReporting/ValueObject/RectorWithLineChange.php @@ -41,6 +41,10 @@ public function getRectorClass(): string { return $this->rectorClass; } + public function getLine(): int + { + return $this->line; + } /** * @param array $json */ diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index a5e91ed3e41..3f6975658ad 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.12.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 49a6cccef97..d3aeb82871e 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) + \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) ); return $loader; From c7eef3b7ff0eeb2e4d4ce4be8fba6f93aea83286 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 21:54:32 +0000 Subject: [PATCH 118/169] Updated Rector to commit 0ee1347fda56433334b34f2298c14ae493cee30a https://github.com/rectorphp/rector-src/commit/0ee1347fda56433334b34f2298c14ae493cee30a [ax] Add --max-changes option to stop after N changes (#8449) --- src/Application/ApplicationFileProcessor.php | 7 +++++++ src/Application/VersionResolver.php | 4 ++-- src/Configuration/ConfigurationFactory.php | 18 +++++++++++++++++- src/Configuration/Option.php | 4 ++++ src/Console/ProcessConfigureDecorator.php | 1 + src/ValueObject/Configuration.php | 11 ++++++++++- vendor/scoper-autoload.php | 2 +- 7 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/Application/ApplicationFileProcessor.php b/src/Application/ApplicationFileProcessor.php index c4cfccf4f04..88845c8daaa 100644 --- a/src/Application/ApplicationFileProcessor.php +++ b/src/Application/ApplicationFileProcessor.php @@ -156,6 +156,7 @@ public function processFiles(array $filePaths, Configuration $configuration, ?ca /** @var FileDiff[] $fileDiffs */ $fileDiffs = []; $totalChanged = 0; + $totalChangeCount = 0; foreach ($filePaths as $filePath) { if ($preFileCallback !== null) { $preFileCallback($filePath); @@ -167,6 +168,7 @@ public function processFiles(array $filePaths, Configuration $configuration, ?ca $currentFileDiff = $fileProcessResult->getFileDiff(); if ($currentFileDiff instanceof FileDiff) { $fileDiffs[] = $currentFileDiff; + $totalChangeCount += count($currentFileDiff->getRectorChanges()); } // progress bar on parallel handled on runParallel() if (is_callable($postFileCallback)) { @@ -175,6 +177,11 @@ public function processFiles(array $filePaths, Configuration $configuration, ?ca if ($fileProcessResult->hasChanged()) { ++$totalChanged; } + // stop once the requested number of changes is reached, leaving the rest untouched + $maxChanges = $configuration->getMaxChanges(); + if ($maxChanges !== null && $totalChangeCount >= $maxChanges) { + break; + } } catch (Throwable $throwable) { $this->changedFilesDetector->invalidateFile($filePath); if (StaticPHPUnitEnvironment::isPHPUnitRun()) { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 4b9b69c717a..51440f4d004 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 = '6d22545bc6c21f85845cc6acccf197ece427bd37'; + public const PACKAGE_VERSION = '0ee1347fda56433334b34f2298c14ae493cee30a'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 23:14:05'; + public const RELEASE_DATE = '2026-09-03 23:51:46'; /** * @var int */ diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index b2cfee11a41..febd94b36cf 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -9,6 +9,7 @@ use Rector\ValueObject\Configuration; use RectorPrefix202609\Symfony\Component\Console\Input\InputInterface; use RectorPrefix202609\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202609\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Configuration\ConfigurationFactoryTest */ @@ -77,6 +78,11 @@ public function createFromInput(InputInterface $input): Configuration if ($isDebug) { $isParallel = \false; } + $maxChanges = $this->resolveMaxChanges($input); + // a global change counter cannot be shared across parallel workers, so enforce the limit in a single process + if ($maxChanges !== null) { + $isParallel = \false; + } $memoryLimit = $this->resolveMemoryLimit($input); $isReportingWithRealPath = SimpleParameterProvider::provideBoolParameter(\Rector\Configuration\Option::ABSOLUTE_FILE_PATH); $levelOverflows = SimpleParameterProvider::provideArrayParameter(\Rector\Configuration\Option::LEVEL_OVERFLOWS); @@ -91,7 +97,17 @@ public function createFromInput(InputInterface $input): Configuration if ($isPhpOnly) { SimpleParameterProvider::setParameter(\Rector\Configuration\Option::IS_RUN_NARROWED, \true); } - return new Configuration($isDryRun, $showProgressBar, $shouldClearCache, $outputFormat, $fileExtensions, $paths, $showDiffs, $parallelPort, $parallelIdentifier, $isParallel, $memoryLimit, $isDebug, $isReportingWithRealPath, $onlyRule, $onlySuffix, $levelOverflows, $showRulesSummary, $isComposerBased, $isPhpOnly, $filters); + return new Configuration($isDryRun, $showProgressBar, $shouldClearCache, $outputFormat, $fileExtensions, $paths, $showDiffs, $parallelPort, $parallelIdentifier, $isParallel, $memoryLimit, $isDebug, $isReportingWithRealPath, $onlyRule, $onlySuffix, $levelOverflows, $showRulesSummary, $isComposerBased, $isPhpOnly, $filters, $maxChanges); + } + private function resolveMaxChanges(InputInterface $input): ?int + { + $maxChanges = $input->getOption(\Rector\Configuration\Option::MAX_CHANGES); + if ($maxChanges === null) { + return null; + } + $maxChanges = (int) $maxChanges; + Assert::positiveInteger($maxChanges); + return $maxChanges; } private function shouldShowProgressBar(InputInterface $input, string $outputFormat): bool { diff --git a/src/Configuration/Option.php b/src/Configuration/Option.php index 852fe0c6c4e..76f03e2e818 100644 --- a/src/Configuration/Option.php +++ b/src/Configuration/Option.php @@ -169,6 +169,10 @@ final class Option * @var string */ public const RULES_SUMMARY = 'rules-summary'; + /** + * @var string + */ + public const MAX_CHANGES = 'max-changes'; /** * @var string */ diff --git a/src/Console/ProcessConfigureDecorator.php b/src/Console/ProcessConfigureDecorator.php index a90b41e8058..e2b2f65f8b6 100644 --- a/src/Console/ProcessConfigureDecorator.php +++ b/src/Console/ProcessConfigureDecorator.php @@ -31,5 +31,6 @@ public static function decorate(Command $command): void $command->addOption(Option::PARALLEL_IDENTIFIER, null, InputOption::VALUE_REQUIRED); $command->addOption(Option::XDEBUG, null, InputOption::VALUE_NONE, 'Display xdebug output.'); $command->addOption(Option::RULES_SUMMARY, null, InputOption::VALUE_NONE, 'Show summary of rules applied during the run.'); + $command->addOption(Option::MAX_CHANGES, null, InputOption::VALUE_REQUIRED, 'Stop after this many changes are made, leaving the rest untouched. Forces non-parallel run.'); } } diff --git a/src/ValueObject/Configuration.php b/src/ValueObject/Configuration.php index 1e3bfb57587..e414ec66c05 100644 --- a/src/ValueObject/Configuration.php +++ b/src/ValueObject/Configuration.php @@ -97,13 +97,17 @@ final class Configuration * @readonly */ private array $filters = []; + /** + * @readonly + */ + private ?int $maxChanges = null; /** * @param string[] $fileExtensions * @param string[] $paths * @param LevelOverflow[] $levelOverflows * @param string[] $filters */ - public function __construct(bool $isDryRun = \false, bool $showProgressBar = \true, bool $shouldClearCache = \false, string $outputFormat = ConsoleOutputFormatter::NAME, array $fileExtensions = ['php'], array $paths = [], bool $showDiffs = \true, ?string $parallelPort = null, ?string $parallelIdentifier = null, bool $isParallel = \false, ?string $memoryLimit = null, bool $isDebug = \false, bool $reportingWithRealPath = \false, ?string $onlyRule = null, ?string $onlySuffix = null, array $levelOverflows = [], bool $showRulesSummary = \false, bool $isComposerBased = \false, bool $isPhpOnly = \false, array $filters = []) + public function __construct(bool $isDryRun = \false, bool $showProgressBar = \true, bool $shouldClearCache = \false, string $outputFormat = ConsoleOutputFormatter::NAME, array $fileExtensions = ['php'], array $paths = [], bool $showDiffs = \true, ?string $parallelPort = null, ?string $parallelIdentifier = null, bool $isParallel = \false, ?string $memoryLimit = null, bool $isDebug = \false, bool $reportingWithRealPath = \false, ?string $onlyRule = null, ?string $onlySuffix = null, array $levelOverflows = [], bool $showRulesSummary = \false, bool $isComposerBased = \false, bool $isPhpOnly = \false, array $filters = [], ?int $maxChanges = null) { $this->isDryRun = $isDryRun; $this->showProgressBar = $showProgressBar; @@ -125,6 +129,11 @@ public function __construct(bool $isDryRun = \false, bool $showProgressBar = \tr $this->isComposerBased = $isComposerBased; $this->isPhpOnly = $isPhpOnly; $this->filters = $filters; + $this->maxChanges = $maxChanges; + } + public function getMaxChanges(): ?int + { + return $this->maxChanges; } public function isComposerBased(): bool { diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index d3aeb82871e..49a6cccef97 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) + \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) ); return $loader; From 1547cf11969bb677677007e1dcd04e1205ec60c5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 22:59:24 +0000 Subject: [PATCH 119/169] Updated Rector to commit 27c5f897750ebb175a96e894d13041c31a2c054d https://github.com/rectorphp/rector-src/commit/27c5f897750ebb175a96e894d13041c31a2c054d [Console] Allow --only to run several rules at once (#8451) --- src/Application/ApplicationFileProcessor.php | 4 ++-- src/Application/VersionResolver.php | 4 ++-- src/Caching/Detector/ChangedFilesDetector.php | 5 +++-- src/Configuration/ConfigurationFactory.php | 11 +++++------ src/Configuration/ConfigurationRuleFilter.php | 16 ++++++++++------ src/Console/ProcessConfigureDecorator.php | 2 +- .../Command/WorkerCommandLineFactory.php | 14 +++++++++----- src/ValueObject/Configuration.php | 15 ++++++++++----- 8 files changed, 42 insertions(+), 29 deletions(-) diff --git a/src/Application/ApplicationFileProcessor.php b/src/Application/ApplicationFileProcessor.php index 88845c8daaa..c9e41d708b6 100644 --- a/src/Application/ApplicationFileProcessor.php +++ b/src/Application/ApplicationFileProcessor.php @@ -99,7 +99,7 @@ public function __construct(SymfonyStyle $symfonyStyle, FilesFinder $filesFinder public function run(Configuration $configuration, InputInterface $input): ProcessResult { // scope the cache to this run's --only / --only-suffix selection before any cache read/write - $this->changedFilesDetector->setActiveScope($configuration->getOnlyRule(), $configuration->getOnlySuffix(), $configuration->getFilters()); + $this->changedFilesDetector->setActiveScope($configuration->getOnlyRules(), $configuration->getOnlySuffix(), $configuration->getFilters()); $filePaths = $this->filesFinder->findFilesInPaths($configuration->getPaths(), $configuration); // no files found if ($filePaths === []) { @@ -150,7 +150,7 @@ public function run(Configuration $configuration, InputInterface $input): Proces public function processFiles(array $filePaths, Configuration $configuration, ?callable $preFileCallback = null, ?callable $postFileCallback = null): ProcessResult { // also set here: parallel workers reach processFiles() via WorkerCommand, bypassing run() - $this->changedFilesDetector->setActiveScope($configuration->getOnlyRule(), $configuration->getOnlySuffix(), $configuration->getFilters()); + $this->changedFilesDetector->setActiveScope($configuration->getOnlyRules(), $configuration->getOnlySuffix(), $configuration->getFilters()); /** @var SystemError[] $systemErrors */ $systemErrors = []; /** @var FileDiff[] $fileDiffs */ diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 51440f4d004..e318561d8b0 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 = '0ee1347fda56433334b34f2298c14ae493cee30a'; + public const PACKAGE_VERSION = '27c5f897750ebb175a96e894d13041c31a2c054d'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 23:51:46'; + public const RELEASE_DATE = '2026-09-04 00:56:54'; /** * @var int */ diff --git a/src/Caching/Detector/ChangedFilesDetector.php b/src/Caching/Detector/ChangedFilesDetector.php index 897e64607b6..3359387e008 100644 --- a/src/Caching/Detector/ChangedFilesDetector.php +++ b/src/Caching/Detector/ChangedFilesDetector.php @@ -40,12 +40,13 @@ public function __construct(FileHashComputer $fileHashComputer, Cache $cache, Fi $this->fileHasher = $fileHasher; } /** + * @param string[] $onlyRules * @param string[] $filters */ - public function setActiveScope(?string $onlyRule, ?string $onlySuffix, array $filters = []): void + public function setActiveScope(array $onlyRules, ?string $onlySuffix, array $filters = []): void { // each selection gets its own cache key, so --only and full runs coexist without clearing or poisoning - $this->scopeSuffix = $onlyRule === null && $onlySuffix === null && $filters === [] ? '' : '|only:' . ($onlyRule ?? '') . '|suffix:' . ($onlySuffix ?? '') . '|filter:' . implode(',', $filters); + $this->scopeSuffix = $onlyRules === [] && $onlySuffix === null && $filters === [] ? '' : '|only:' . implode(',', $onlyRules) . '|suffix:' . ($onlySuffix ?? '') . '|filter:' . implode(',', $filters); } public function cacheFile(string $filePath): void { diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index febd94b36cf..53ff0a434d5 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -55,10 +55,9 @@ public function createFromInput(InputInterface $input): Configuration $paths = $this->resolvePaths($input); $fileExtensions = SimpleParameterProvider::provideArrayParameter(\Rector\Configuration\Option::FILE_EXTENSIONS); // filter rule and path - $onlyRule = $input->getOption(\Rector\Configuration\Option::ONLY); - if ($onlyRule !== null) { - $onlyRule = $this->onlyRuleResolver->resolve($onlyRule); - } + /** @var string[] $onlyRuleInputs */ + $onlyRuleInputs = (array) $input->getOption(\Rector\Configuration\Option::ONLY); + $onlyRules = array_map(\Closure::fromCallable([$this->onlyRuleResolver, 'resolve']), $onlyRuleInputs); $onlySuffix = $input->getOption(\Rector\Configuration\Option::ONLY_SUFFIX); if ($onlySuffix !== null) { $this->symfonyStyle->warning('The "--only-suffix" option is deprecated and will be removed. Use "--filter" instead, e.g. --filter="*Controller.php"'); @@ -67,7 +66,7 @@ public function createFromInput(InputInterface $input): Configuration $filters = $rawFilter !== null ? $this->filePathFilter->parsePatterns((string) $rawFilter) : []; // "--only"/"--only-suffix"/"--filter" narrow the run, so skips outside the scope look falsely unused; // mark the run as narrowed to disable unused skip reporting and avoid false positives - if ($onlyRule !== null || $onlySuffix !== null || $filters !== []) { + if ($onlyRules !== [] || $onlySuffix !== null || $filters !== []) { SimpleParameterProvider::setParameter(\Rector\Configuration\Option::IS_RUN_NARROWED, \true); } $isParallel = SimpleParameterProvider::provideBoolParameter(\Rector\Configuration\Option::PARALLEL); @@ -97,7 +96,7 @@ public function createFromInput(InputInterface $input): Configuration if ($isPhpOnly) { SimpleParameterProvider::setParameter(\Rector\Configuration\Option::IS_RUN_NARROWED, \true); } - return new Configuration($isDryRun, $showProgressBar, $shouldClearCache, $outputFormat, $fileExtensions, $paths, $showDiffs, $parallelPort, $parallelIdentifier, $isParallel, $memoryLimit, $isDebug, $isReportingWithRealPath, $onlyRule, $onlySuffix, $levelOverflows, $showRulesSummary, $isComposerBased, $isPhpOnly, $filters, $maxChanges); + return new Configuration($isDryRun, $showProgressBar, $shouldClearCache, $outputFormat, $fileExtensions, $paths, $showDiffs, $parallelPort, $parallelIdentifier, $isParallel, $memoryLimit, $isDebug, $isReportingWithRealPath, $onlyRules, $onlySuffix, $levelOverflows, $showRulesSummary, $isComposerBased, $isPhpOnly, $filters, $maxChanges); } private function resolveMaxChanges(InputInterface $input): ?int { diff --git a/src/Configuration/ConfigurationRuleFilter.php b/src/Configuration/ConfigurationRuleFilter.php index 8d471a4039a..193eefb69ba 100644 --- a/src/Configuration/ConfigurationRuleFilter.php +++ b/src/Configuration/ConfigurationRuleFilter.php @@ -33,9 +33,9 @@ public function filter(array $rectors): array if (!$this->configuration instanceof Configuration) { return $rectors; } - $onlyRule = $this->configuration->getOnlyRule(); - if ($onlyRule !== null) { - return $this->filterOnlyRule($rectors, $onlyRule); + $onlyRules = $this->configuration->getOnlyRules(); + if ($onlyRules !== []) { + return $this->filterOnlyRules($rectors, $onlyRules); } if ($this->configuration->isComposerBased()) { return $this->filterComposerBased($rectors); @@ -47,14 +47,18 @@ public function filter(array $rectors): array } /** * @param list $rectors + * @param string[] $onlyRules * @return list */ - public function filterOnlyRule(array $rectors, string $onlyRule): array + public function filterOnlyRules(array $rectors, array $onlyRules): array { $activeRectors = []; foreach ($rectors as $rector) { - if ($rector instanceof $onlyRule) { - $activeRectors[] = $rector; + foreach ($onlyRules as $onlyRule) { + if ($rector instanceof $onlyRule) { + $activeRectors[] = $rector; + break; + } } } return $activeRectors; diff --git a/src/Console/ProcessConfigureDecorator.php b/src/Console/ProcessConfigureDecorator.php index e2b2f65f8b6..f831de018a2 100644 --- a/src/Console/ProcessConfigureDecorator.php +++ b/src/Console/ProcessConfigureDecorator.php @@ -19,7 +19,7 @@ public static function decorate(Command $command): void $command->addOption(Option::NO_DIFFS, null, InputOption::VALUE_NONE, 'Hide diffs of changed files. Useful e.g. for nicer CI output.'); $command->addOption(Option::OUTPUT_FORMAT, null, InputOption::VALUE_REQUIRED, 'Select output format', ConsoleOutputFormatter::NAME); // filter by rule and path - $command->addOption(Option::ONLY, null, InputOption::VALUE_REQUIRED, 'Fully qualified rule class name'); + $command->addOption(Option::ONLY, null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Fully qualified rule class name; repeat to run several rules, e.g. --only=A --only=B'); $command->addOption(Option::COMPOSER_BASED, null, InputOption::VALUE_NONE, 'Run only rules bound to an installed composer package version'); $command->addOption(Option::PHP, null, InputOption::VALUE_NONE, 'Run only PHP rules, e.g. rules bound to a minimal PHP version'); $command->addOption(Option::ONLY_SUFFIX, null, InputOption::VALUE_REQUIRED, 'Deprecated, use "--filter" instead. Filter only files with specific suffix in name, e.g. "Controller"'); diff --git a/src/Parallel/Command/WorkerCommandLineFactory.php b/src/Parallel/Command/WorkerCommandLineFactory.php index 397f0a2e7a2..74b52ff5782 100644 --- a/src/Parallel/Command/WorkerCommandLineFactory.php +++ b/src/Parallel/Command/WorkerCommandLineFactory.php @@ -109,10 +109,6 @@ public function create(string $mainScript, string $mainCommandClass, string $wor if ((bool) $input->getOption(Option::COMPOSER_BASED)) { $workerCommandArray[] = self::OPTION_DASHES . Option::COMPOSER_BASED; } - if ($input->getOption(Option::ONLY) !== null) { - $workerCommandArray[] = self::OPTION_DASHES . Option::ONLY; - $workerCommandArray[] = escapeshellarg((string) $input->getOption(Option::ONLY)); - } return implode(' ', $workerCommandArray); } private function shouldSkipOption(InputInterface $input, string $optionName): bool @@ -148,7 +144,7 @@ private function mirrorCommandOptions(InputInterface $input, array $mainCommandO if ($this->shouldSkipOption($input, $mainCommandOptionName)) { continue; } - /** @var bool|string|null $optionValue */ + /** @var bool|string|string[]|null $optionValue */ $optionValue = $input->getOption($mainCommandOptionName); // skip clutter if ($optionValue === null) { @@ -160,6 +156,14 @@ private function mirrorCommandOptions(InputInterface $input, array $mainCommandO } continue; } + // array options (e.g. repeated --only) are mirrored one flag per value + if (is_array($optionValue)) { + foreach ($optionValue as $singleOptionValue) { + $workerCommandOptions[] = self::OPTION_DASHES . $mainCommandOptionName; + $workerCommandOptions[] = \escapeshellarg($singleOptionValue); + } + continue; + } if ($mainCommandOptionName === 'memory-limit') { // symfony/console does not accept -1 as value without assign $workerCommandOptions[] = self::OPTION_DASHES . $mainCommandOptionName . '=' . \escapeshellarg($optionValue); diff --git a/src/ValueObject/Configuration.php b/src/ValueObject/Configuration.php index e414ec66c05..b424ab8585b 100644 --- a/src/ValueObject/Configuration.php +++ b/src/ValueObject/Configuration.php @@ -68,9 +68,10 @@ final class Configuration */ private bool $reportingWithRealPath = \false; /** + * @var string[] * @readonly */ - private ?string $onlyRule = null; + private array $onlyRules = []; /** * @readonly */ @@ -104,10 +105,11 @@ final class Configuration /** * @param string[] $fileExtensions * @param string[] $paths + * @param string[] $onlyRules * @param LevelOverflow[] $levelOverflows * @param string[] $filters */ - public function __construct(bool $isDryRun = \false, bool $showProgressBar = \true, bool $shouldClearCache = \false, string $outputFormat = ConsoleOutputFormatter::NAME, array $fileExtensions = ['php'], array $paths = [], bool $showDiffs = \true, ?string $parallelPort = null, ?string $parallelIdentifier = null, bool $isParallel = \false, ?string $memoryLimit = null, bool $isDebug = \false, bool $reportingWithRealPath = \false, ?string $onlyRule = null, ?string $onlySuffix = null, array $levelOverflows = [], bool $showRulesSummary = \false, bool $isComposerBased = \false, bool $isPhpOnly = \false, array $filters = [], ?int $maxChanges = null) + public function __construct(bool $isDryRun = \false, bool $showProgressBar = \true, bool $shouldClearCache = \false, string $outputFormat = ConsoleOutputFormatter::NAME, array $fileExtensions = ['php'], array $paths = [], bool $showDiffs = \true, ?string $parallelPort = null, ?string $parallelIdentifier = null, bool $isParallel = \false, ?string $memoryLimit = null, bool $isDebug = \false, bool $reportingWithRealPath = \false, array $onlyRules = [], ?string $onlySuffix = null, array $levelOverflows = [], bool $showRulesSummary = \false, bool $isComposerBased = \false, bool $isPhpOnly = \false, array $filters = [], ?int $maxChanges = null) { $this->isDryRun = $isDryRun; $this->showProgressBar = $showProgressBar; @@ -122,7 +124,7 @@ public function __construct(bool $isDryRun = \false, bool $showProgressBar = \tr $this->memoryLimit = $memoryLimit; $this->isDebug = $isDebug; $this->reportingWithRealPath = $reportingWithRealPath; - $this->onlyRule = $onlyRule; + $this->onlyRules = $onlyRules; $this->onlySuffix = $onlySuffix; $this->levelOverflows = $levelOverflows; $this->showRulesSummary = $showRulesSummary; @@ -163,9 +165,12 @@ public function getFileExtensions(): array Assert::notEmpty($this->fileExtensions); return $this->fileExtensions; } - public function getOnlyRule(): ?string + /** + * @return string[] + */ + public function getOnlyRules(): array { - return $this->onlyRule; + return $this->onlyRules; } /** * @return string[] From 4156728b82cdc0e7cdef7b7155ac5cb23a3a5ff7 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Sep 2026 23:00:09 +0000 Subject: [PATCH 120/169] Updated Rector to commit 136b25b1c968b03ce7fa673618e67d8f686581a5 https://github.com/rectorphp/rector-src/commit/136b25b1c968b03ce7fa673618e67d8f686581a5 [ax] Add validate-config command for config hygiene checks (#8450) --- src/Application/VersionResolver.php | 4 +- src/Console/Command/ValidateConfigCommand.php | 103 ++++++++++++++++++ .../LazyContainerFactory.php | 2 + src/Reporting/DeprecatedRulesReporter.php | 37 +++++-- src/Reporting/MissConfigurationReporter.php | 10 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/scoper-autoload.php | 2 +- 8 files changed, 145 insertions(+), 15 deletions(-) create mode 100644 src/Console/Command/ValidateConfigCommand.php diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index e318561d8b0..35bf1709b7a 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 = '27c5f897750ebb175a96e894d13041c31a2c054d'; + public const PACKAGE_VERSION = '136b25b1c968b03ce7fa673618e67d8f686581a5'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 00:56:54'; + public const RELEASE_DATE = '2026-09-03 22:57:40'; /** * @var int */ diff --git a/src/Console/Command/ValidateConfigCommand.php b/src/Console/Command/ValidateConfigCommand.php new file mode 100644 index 00000000000..7b148d98a71 --- /dev/null +++ b/src/Console/Command/ValidateConfigCommand.php @@ -0,0 +1,103 @@ +symfonyStyle = $symfonyStyle; + $this->deprecatedRulesReporter = $deprecatedRulesReporter; + $this->missConfigurationReporter = $missConfigurationReporter; + $this->skippedClassResolver = $skippedClassResolver; + parent::__construct(); + } + protected function configure(): void + { + $this->setName('validate-config'); + $this->setDescription('Report config hygiene issues without processing any files'); + $this->addOption(Option::OUTPUT_FORMAT, null, InputOption::VALUE_REQUIRED, sprintf('Output format: "%s" or "%s"', ConsoleOutputFormatter::NAME, JsonOutputFormatter::NAME), ConsoleOutputFormatter::NAME); + } + protected function execute(InputInterface $input, OutputInterface $output): int + { + $isJsonOutput = $input->getOption(Option::OUTPUT_FORMAT) === JsonOutputFormatter::NAME; + // silence the human-readable warnings, so only the JSON payload lands on stdout + if ($isJsonOutput) { + $this->symfonyStyle->setVerbosity(OutputInterface::VERBOSITY_QUIET); + } + $issueCount = 0; + $issueCount += $this->deprecatedRulesReporter->reportDeprecatedRules(); + $issueCount += $this->deprecatedRulesReporter->reportDeprecatedSkippedRules(); + $issueCount += $this->deprecatedRulesReporter->reportDeprecatedCacheMetaExtensions(); + $issueCount += $this->deprecatedRulesReporter->reportDeprecatedPhpSetsMethods(); + $issueCount += $this->deprecatedRulesReporter->reportDeprecatedAttributesSetsArgs(); + $issueCount += $this->deprecatedRulesReporter->reportDeprecatedComposerBasedArgs(); + $issueCount += $this->deprecatedRulesReporter->reportDeprecatedRectorUnsupportedMethods(); + $issueCount += $this->missConfigurationReporter->reportSkippedNeverRegisteredRules(); + $issueCount += $this->missConfigurationReporter->reportSkippedNonRectorClasses(); + $issueCount += $this->reportDeprecatedSkippedClasses(); + $issueCount += $this->reportSetAndRulesDuplicatedRegistrations(); + if ($isJsonOutput) { + echo Json::encode(['valid' => $issueCount === 0, 'issue_count' => $issueCount], \true) . \PHP_EOL; + return $issueCount === 0 ? ExitCode::SUCCESS : ExitCode::FAILURE; + } + if ($issueCount === 0) { + $this->symfonyStyle->success('Config is valid, no issues found'); + return ExitCode::SUCCESS; + } + $this->symfonyStyle->error(sprintf('%d config %s found, see the warnings above', $issueCount, $issueCount === 1 ? 'issue' : 'issues')); + return ExitCode::FAILURE; + } + private function reportDeprecatedSkippedClasses(): int + { + $deprecatedSkippedClasses = $this->skippedClassResolver->resolveDeprecatedSkippedClasses(); + if ($deprecatedSkippedClasses === []) { + return 0; + } + $this->symfonyStyle->warning(sprintf('These rules are skipped, but are deprecated. Most likely you do not need to skip them anymore, remove them: %s%s', "\n\n", '* ' . implode("\n* ", $deprecatedSkippedClasses) . "\n")); + return count($deprecatedSkippedClasses); + } + private function reportSetAndRulesDuplicatedRegistrations(): int + { + $setAndRulesDuplicatedRegistrations = (new Configuration())->getBothSetAndRulesDuplicatedRegistrations(); + if ($setAndRulesDuplicatedRegistrations === []) { + return 0; + } + $this->symfonyStyle->warning(sprintf('These rules are registered in both sets and "withRules()". Remove them from "withRules()" to avoid duplications: %s* %s', "\n\n", implode(' * ', $setAndRulesDuplicatedRegistrations) . "\n")); + return count($setAndRulesDuplicatedRegistrations); + } +} diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 2342e5b497c..54a4bed2536 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -36,6 +36,7 @@ use Rector\Console\Command\ListRulesCommand; use Rector\Console\Command\ProcessCommand; use Rector\Console\Command\SetupCICommand; +use Rector\Console\Command\ValidateConfigCommand; use Rector\Console\Command\WorkerCommand; use Rector\Console\ConsoleApplication; use Rector\Console\Style\SymfonyStyleFactory; @@ -123,6 +124,7 @@ private function registerConsole(RectorConfig $rectorConfig): void $rectorConfig->singleton(ConfigurationRuleFilter::class); $rectorConfig->singleton(ProcessCommand::class); $rectorConfig->singleton(WorkerCommand::class); + $rectorConfig->singleton(ValidateConfigCommand::class); $rectorConfig->singleton(SetupCICommand::class); $rectorConfig->singleton(ListRulesCommand::class); $rectorConfig->singleton(CustomRuleCommand::class); diff --git a/src/Reporting/DeprecatedRulesReporter.php b/src/Reporting/DeprecatedRulesReporter.php index da4b2a317dd..c10aaa84609 100644 --- a/src/Reporting/DeprecatedRulesReporter.php +++ b/src/Reporting/DeprecatedRulesReporter.php @@ -29,66 +29,85 @@ public function __construct(SymfonyStyle $symfonyStyle, array $rectors) $this->symfonyStyle = $symfonyStyle; $this->rectors = $rectors; } - public function reportDeprecatedRules(): void + public function reportDeprecatedRules(): int { /** @var string[] $registeredRectorRules */ $registeredRectorRules = SimpleParameterProvider::provideArrayParameter(Option::REGISTERED_RECTOR_RULES); + $reportedCount = 0; foreach ($registeredRectorRules as $registeredRectorRule) { if (!is_a($registeredRectorRule, DeprecatedInterface::class, \true)) { continue; } $this->symfonyStyle->warning(sprintf('Registered rule "%s" is deprecated and will be removed. Upgrade your config to use another rule or remove it', $registeredRectorRule)); + ++$reportedCount; } + return $reportedCount; } - public function reportDeprecatedSkippedRules(): void + public function reportDeprecatedSkippedRules(): int { /** @var string[] $skippedRectorRules */ $skippedRectorRules = SimpleParameterProvider::provideArrayParameter(Option::SKIPPED_RECTOR_RULES); + $reportedCount = 0; foreach ($skippedRectorRules as $skippedRectorRule) { if (!is_a($skippedRectorRule, DeprecatedInterface::class, \true)) { continue; } $this->symfonyStyle->warning(sprintf('Skipped rule "%s" is deprecated', $skippedRectorRule)); + ++$reportedCount; } + return $reportedCount; } - public function reportDeprecatedCacheMetaExtensions(): void + public function reportDeprecatedCacheMetaExtensions(): int { /** @var string[] $cacheMetaExtensions */ $cacheMetaExtensions = SimpleParameterProvider::provideArrayParameter(Option::CACHE_META_EXTENSIONS); + $reportedCount = 0; foreach ($cacheMetaExtensions as $cacheMetumExtension) { $this->symfonyStyle->warning(sprintf('Cache meta extension "%s" is deprecated and no longer applied. It is a niche mechanism, let Rector handle cache on its own. If custom invalidation is needed, handle it in CI in a more generic way, e.g. by clearing the cache directory.', $cacheMetumExtension)); + ++$reportedCount; } + return $reportedCount; } - public function reportDeprecatedPhpSetsMethods(): void + public function reportDeprecatedPhpSetsMethods(): int { /** @var string[] $deprecatedPhpSetsMethods */ $deprecatedPhpSetsMethods = SimpleParameterProvider::provideArrayParameter(Option::DEPRECATED_PHP_SETS_METHODS); + $reportedCount = 0; foreach (array_unique($deprecatedPhpSetsMethods) as $deprecatedPhpSetsMethod) { $this->symfonyStyle->warning(sprintf('The "->%s()" method is deprecated and no longer applied. Use "->withPhpLevel()" instead, to raise PHP level one rule at a time.', $deprecatedPhpSetsMethod)); + ++$reportedCount; } + return $reportedCount; } - public function reportDeprecatedAttributesSetsArgs(): void + public function reportDeprecatedAttributesSetsArgs(): int { /** @var string[] $deprecatedAttributesSetsArgs */ $deprecatedAttributesSetsArgs = SimpleParameterProvider::provideArrayParameter(Option::DEPRECATED_ATTRIBUTES_SETS_ARGS); + $reportedCount = 0; foreach (array_unique($deprecatedAttributesSetsArgs) as $deprecatedAttributesSetsArg) { $this->symfonyStyle->warning(sprintf('The "->withAttributesSets(%s: true)" argument is deprecated and no longer applied. It is already included in the "symfony: true" argument, use it instead.', $deprecatedAttributesSetsArg)); + ++$reportedCount; } + return $reportedCount; } - public function reportDeprecatedComposerBasedArgs(): void + public function reportDeprecatedComposerBasedArgs(): int { /** @var string[] $deprecatedComposerBasedArgs */ $deprecatedComposerBasedArgs = SimpleParameterProvider::provideArrayParameter(Option::DEPRECATED_COMPOSER_BASED_ARGS); + $reportedCount = 0; foreach (array_unique($deprecatedComposerBasedArgs) as $deprecatedComposerBasedArg) { $this->symfonyStyle->warning(sprintf('The "->withComposerBased(%s: true)" argument is deprecated and no longer applied. It only added named args to 2 methods of a single package, register the rule directly if needed.', $deprecatedComposerBasedArg)); + ++$reportedCount; } + return $reportedCount; } - public function reportDeprecatedRectorUnsupportedMethods(): void + public function reportDeprecatedRectorUnsupportedMethods(): int { // to be added in related PR if (!class_exists(FileNode::class)) { - return; + return 0; } + $reportedCount = 0; foreach ($this->rectors as $rector) { $beforeTraverseMethodReflection = new ReflectionMethod($rector, 'beforeTraverse'); if (\PHP_VERSION_ID < 80100) { @@ -96,7 +115,9 @@ public function reportDeprecatedRectorUnsupportedMethods(): void } if ($beforeTraverseMethodReflection->getDeclaringClass()->getName() === get_class($rector)) { $this->symfonyStyle->warning(sprintf('Rector rule "%s" uses deprecated "beforeTraverse" method. It should not be used, as will be marked as final. Not part of RectorInterface contract. Use "%s" to hook into file-level changes instead.', get_class($rector), FileNode::class)); + ++$reportedCount; } } + return $reportedCount; } } diff --git a/src/Reporting/MissConfigurationReporter.php b/src/Reporting/MissConfigurationReporter.php index 4d04153bcb6..2d410f21566 100644 --- a/src/Reporting/MissConfigurationReporter.php +++ b/src/Reporting/MissConfigurationReporter.php @@ -48,7 +48,7 @@ public function reportUnusedSkips(ProcessResult $processResult): void $spacedUnusedSkips = array_map(static fn(string $unusedSkip): string => $unusedSkip . "\n", $unusedSkips); $this->symfonyStyle->listing($spacedUnusedSkips); } - public function reportSkippedNeverRegisteredRules(): void + public function reportSkippedNeverRegisteredRules(): int { $registeredRules = SimpleParameterProvider::provideArrayParameter(Option::REGISTERED_RECTOR_RULES); $skippedRules = SimpleParameterProvider::provideArrayParameter(Option::SKIPPED_RECTOR_RULES); @@ -56,18 +56,20 @@ public function reportSkippedNeverRegisteredRules(): void // remove special PostRectorInterface rules, they are registered in a different way $neverRegisteredSkippedRules = array_filter($neverRegisteredSkippedRules, fn($skippedRule): bool => !is_a($skippedRule, PostRectorInterface::class, \true)); if ($neverRegisteredSkippedRules === []) { - return; + return 0; } $this->symfonyStyle->warning(sprintf('%s never registered. You can remove %s from "->withSkip()"', count($neverRegisteredSkippedRules) > 1 ? 'These skipped rules are' : 'This skipped rule is', count($neverRegisteredSkippedRules) > 1 ? 'them' : 'it')); $this->symfonyStyle->listing($neverRegisteredSkippedRules); + return count($neverRegisteredSkippedRules); } - public function reportSkippedNonRectorClasses(): void + public function reportSkippedNonRectorClasses(): int { $skippedNonRectorClasses = SimpleParameterProvider::provideArrayParameter(Option::SKIPPED_NON_RECTOR_CLASSES); if ($skippedNonRectorClasses === []) { - return; + return 0; } $this->symfonyStyle->warning(sprintf('%s "%s" %s not a Rector rule, so %s never be skipped. Only classes that implement "%s" can be used in "->withSkip()"', count($skippedNonRectorClasses) > 1 ? 'These skipped classes' : 'This skipped class', implode('", "', $skippedNonRectorClasses), count($skippedNonRectorClasses) > 1 ? 'are' : 'is', count($skippedNonRectorClasses) > 1 ? 'they can' : 'it can', RectorInterface::class)); + return count($skippedNonRectorClasses); } /** * @param string[] $filePaths diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 752da31fad5..6285040063a 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1236,6 +1236,7 @@ 'Rector\\Console\\Command\\ListRulesCommand' => $baseDir . '/src/Console/Command/ListRulesCommand.php', 'Rector\\Console\\Command\\ProcessCommand' => $baseDir . '/src/Console/Command/ProcessCommand.php', 'Rector\\Console\\Command\\SetupCICommand' => $baseDir . '/src/Console/Command/SetupCICommand.php', + 'Rector\\Console\\Command\\ValidateConfigCommand' => $baseDir . '/src/Console/Command/ValidateConfigCommand.php', 'Rector\\Console\\Command\\WorkerCommand' => $baseDir . '/src/Console/Command/WorkerCommand.php', 'Rector\\Console\\ConsoleApplication' => $baseDir . '/src/Console/ConsoleApplication.php', 'Rector\\Console\\ExitCode' => $baseDir . '/src/Console/ExitCode.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 8b9c970fa83..3d4da68dd73 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1456,6 +1456,7 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\Console\\Command\\ListRulesCommand' => __DIR__ . '/../..' . '/src/Console/Command/ListRulesCommand.php', 'Rector\\Console\\Command\\ProcessCommand' => __DIR__ . '/../..' . '/src/Console/Command/ProcessCommand.php', 'Rector\\Console\\Command\\SetupCICommand' => __DIR__ . '/../..' . '/src/Console/Command/SetupCICommand.php', + 'Rector\\Console\\Command\\ValidateConfigCommand' => __DIR__ . '/../..' . '/src/Console/Command/ValidateConfigCommand.php', 'Rector\\Console\\Command\\WorkerCommand' => __DIR__ . '/../..' . '/src/Console/Command/WorkerCommand.php', 'Rector\\Console\\ConsoleApplication' => __DIR__ . '/../..' . '/src/Console/ConsoleApplication.php', 'Rector\\Console\\ExitCode' => __DIR__ . '/../..' . '/src/Console/ExitCode.php', diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 49a6cccef97..d3aeb82871e 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) + \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) ); return $loader; From 5e7009e8c5d89ad75a5d5fb273f22fcd199c2d0b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 07:56:21 +0000 Subject: [PATCH 121/169] Updated Rector to commit 377b2e64907d25d7433ef196044d26fd86ba52bc https://github.com/rectorphp/rector-src/commit/377b2e64907d25d7433ef196044d26fd86ba52bc [ax] Never emit ANSI when output is not a TTY, even with --ansi (#8453) --- src/Application/VersionResolver.php | 4 ++-- src/Console/Style/SymfonyStyleFactory.php | 4 ++++ vendor/scoper-autoload.php | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 35bf1709b7a..1432ca33a4c 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 = '136b25b1c968b03ce7fa673618e67d8f686581a5'; + public const PACKAGE_VERSION = '377b2e64907d25d7433ef196044d26fd86ba52bc'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-03 22:57:40'; + public const RELEASE_DATE = '2026-09-04 09:53:45'; /** * @var int */ diff --git a/src/Console/Style/SymfonyStyleFactory.php b/src/Console/Style/SymfonyStyleFactory.php index d3c36f4b1f8..91463d2ef06 100644 --- a/src/Console/Style/SymfonyStyleFactory.php +++ b/src/Console/Style/SymfonyStyleFactory.php @@ -36,6 +36,10 @@ public function create(): \Rector\Console\Style\RectorStyle if ($this->isPHPUnitRun()) { $consoleOutput->setVerbosity(OutputInterface::VERBOSITY_QUIET); } + // no interactive terminal, e.g. piped output, CI or an agent - never emit ANSI, even if forced via --ansi + if (!defined('STDOUT') || !stream_isatty(\STDOUT)) { + $consoleOutput->setDecorated(\false); + } return new \Rector\Console\Style\RectorStyle($argvInput, $consoleOutput); } /** diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index d3aeb82871e..49a6cccef97 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) + \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) ); return $loader; From f87cfea0ddbef2002d350ab5a8c2c2903e4c5699 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 08:20:02 +0000 Subject: [PATCH 122/169] Updated Rector to commit 29758d274390f52e286db3dde957e6a90ff7c15c https://github.com/rectorphp/rector-src/commit/29758d274390f52e286db3dde957e6a90ff7c15c [ax] Do not prompt or auto-create config on non-TTY (#8454) --- src/Application/VersionResolver.php | 4 ++-- src/Configuration/ConfigInitializer.php | 6 ++++++ vendor/scoper-autoload.php | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 1432ca33a4c..03b4b793ee9 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 = '377b2e64907d25d7433ef196044d26fd86ba52bc'; + public const PACKAGE_VERSION = '29758d274390f52e286db3dde957e6a90ff7c15c'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 09:53:45'; + public const RELEASE_DATE = '2026-09-04 10:17:32'; /** * @var int */ diff --git a/src/Configuration/ConfigInitializer.php b/src/Configuration/ConfigInitializer.php index 0098a18b44f..07044b58ede 100644 --- a/src/Configuration/ConfigInitializer.php +++ b/src/Configuration/ConfigInitializer.php @@ -55,6 +55,12 @@ public function createConfig(string $projectDirectory): void $this->symfonyStyle->warning('Register rules or sets in your "' . basename($mainConfigFile) . '" config'); return; } + // non-interactive terminal, e.g. piped output, CI or an agent: never prompt or silently write a + // config, just say what to do - Symfony still treats a closed STDIN as interactive here + if (!defined('STDIN') || !stream_isatty(\STDIN)) { + $this->symfonyStyle->warning(sprintf('No "%s" config found. Create one, or pass "--config ".', RectorConfigsResolver::DEFAULT_CONFIG_FILE)); + return; + } $response = $this->symfonyStyle->ask('No "' . RectorConfigsResolver::DEFAULT_CONFIG_FILE . '" config found. Should we generate it for you?', 'yes'); // be tolerant about input if (!in_array($response, ['yes', 'YES', 'y', 'Y'], \true)) { diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 49a6cccef97..d3aeb82871e 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) + \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) ); return $loader; From f2dea9c822dd215f759f0f31ba8e19501b088593 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 08:28:03 +0000 Subject: [PATCH 123/169] Updated Rector to commit 59c8f12ee9071fd046f4b3880ea21d0e2020b498 https://github.com/rectorphp/rector-src/commit/59c8f12ee9071fd046f4b3880ea21d0e2020b498 [ax] Fix missing space after negation in non-TTY guards (#8455) --- src/Application/VersionResolver.php | 4 ++-- vendor/scoper-autoload.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 03b4b793ee9..3809bff25e8 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 = '29758d274390f52e286db3dde957e6a90ff7c15c'; + public const PACKAGE_VERSION = '59c8f12ee9071fd046f4b3880ea21d0e2020b498'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 10:17:32'; + public const RELEASE_DATE = '2026-09-04 10:25:06'; /** * @var int */ diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index d3aeb82871e..49a6cccef97 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) + \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) ); return $loader; From 1b0bfe24617383f9a413da48b8536cead64dcc48 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 08:34:58 +0000 Subject: [PATCH 124/169] Updated Rector to commit ba2a4ef99f04f7b8baaf2217dd66221975e3cadf https://github.com/rectorphp/rector-src/commit/ba2a4ef99f04f7b8baaf2217dd66221975e3cadf [fix] Skip keyed and direct property assigns in AddVarArrayDocblockFromDimFetchAssignRector (#8437) --- .../NodeFinder/ArrayDimFetchFinder.php | 31 +++++++++++++++++++ ...rArrayDocblockFromDimFetchAssignRector.php | 4 +++ src/Application/VersionResolver.php | 4 +-- vendor/scoper-autoload.php | 2 +- 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/NodeFinder/ArrayDimFetchFinder.php b/rules/TypeDeclarationDocblocks/NodeFinder/ArrayDimFetchFinder.php index 0006d2e8696..1bfcef12e61 100644 --- a/rules/TypeDeclarationDocblocks/NodeFinder/ArrayDimFetchFinder.php +++ b/rules/TypeDeclarationDocblocks/NodeFinder/ArrayDimFetchFinder.php @@ -80,6 +80,30 @@ public function findDimFetchAssignToPropertyName(Class_ $class, string $variable } return $exprs; } + /** + * Any write to the property other than a bare append $this->someProperty[] = ..., + * i.e. a keyed dim assign $this->someProperty['key'] = ... or a direct $this->someProperty = ... + */ + public function hasNonAppendAssignToPropertyName(Class_ $class, string $variableName): bool + { + $assigns = $this->betterNodeFinder->findInstancesOfScoped($class->getMethods(), Assign::class); + foreach ($assigns as $assign) { + if ($assign->var instanceof PropertyFetch && $this->isThisPropertyNamed($assign->var, $variableName)) { + return \true; + } + if (!$assign->var instanceof ArrayDimFetch) { + continue; + } + // bare append, already covered by findDimFetchAssignToPropertyName() + if (!$assign->var->dim instanceof Expr) { + continue; + } + if ($assign->var->var instanceof PropertyFetch && $this->isThisPropertyNamed($assign->var->var, $variableName)) { + return \true; + } + } + return \false; + } /** * @return ArrayDimFetch[] */ @@ -93,6 +117,13 @@ public function findByVariableName(Node $node, string $variableName): array return $this->nodeNameResolver->isName($arrayDimFetch->var, $variableName); }); } + private function isThisPropertyNamed(PropertyFetch $propertyFetch, string $propertyName): bool + { + if (!$this->nodeNameResolver->isName($propertyFetch->var, 'this')) { + return \false; + } + return $this->nodeNameResolver->isName($propertyFetch->name, $propertyName); + } /** * @return ArrayDimFetch[] */ diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/AddVarArrayDocblockFromDimFetchAssignRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/AddVarArrayDocblockFromDimFetchAssignRector.php index a01936f8fd8..0141a3ccfbf 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/AddVarArrayDocblockFromDimFetchAssignRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/AddVarArrayDocblockFromDimFetchAssignRector.php @@ -106,6 +106,10 @@ public function refactor(Node $node): ?Node continue; } $propertyName = $this->getName($property); + // a keyed dim assign ($this->prop['x'] = ...) or a direct assign carries a value type this rule does not read from bare appends; skip to avoid a too-narrow @var + if ($this->arrayDimFetchFinder->hasNonAppendAssignToPropertyName($node, $propertyName)) { + continue; + } $assignedExprs = $this->arrayDimFetchFinder->findDimFetchAssignToPropertyName($node, $propertyName); $assignedExprTypes = []; foreach ($assignedExprs as $assignedExpr) { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 3809bff25e8..b60f7f57e63 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 = '59c8f12ee9071fd046f4b3880ea21d0e2020b498'; + public const PACKAGE_VERSION = 'ba2a4ef99f04f7b8baaf2217dd66221975e3cadf'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 10:25:06'; + public const RELEASE_DATE = '2026-09-04 10:33:22'; /** * @var int */ diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 49a6cccef97..d3aeb82871e 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) + \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) ); return $loader; From 164152e084b0a256e37120ddbe89f975c41363a0 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 08:36:01 +0000 Subject: [PATCH 125/169] Updated Rector to commit 8262457397a658a760f3732ffb9209330553b21d https://github.com/rectorphp/rector-src/commit/8262457397a658a760f3732ffb9209330553b21d [fix] Only touch private methods in AddParamArrayDocblockFromAssignsParamToParamReferenceRector (#8436) --- ...rrayDocblockFromAssignsParamToParamReferenceRector.php | 8 ++++++-- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddParamArrayDocblockFromAssignsParamToParamReferenceRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddParamArrayDocblockFromAssignsParamToParamReferenceRector.php index 8252d53c42d..6f84adfe486 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddParamArrayDocblockFromAssignsParamToParamReferenceRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddParamArrayDocblockFromAssignsParamToParamReferenceRector.php @@ -48,7 +48,7 @@ public function getRuleDefinition(): RuleDefinition return new RuleDefinition('Add @param docblock array type, based on type to assigned parameter reference', [new CodeSample(<<<'CODE_SAMPLE' final class SomeClass { - public function run(array &$names): void + private function run(array &$names): void { $names[] = 'John'; } @@ -60,7 +60,7 @@ final class SomeClass /** * @param string[] $names */ - public function run(array &$names): void + private function run(array &$names): void { $names[] = 'John'; } @@ -84,6 +84,10 @@ public function refactor(Node $node): ?Node if ($node->getParams() === []) { return null; } + // a by-ref param type is invariant in PHPStan; narrowing it below array breaks callers passing a plain array, which are invisible for a non-private method + if (!$node->isPrivate()) { + return null; + } $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); foreach ($node->getParams() as $param) { if (!$param->byRef) { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index b60f7f57e63..04d0ee7aa51 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 = 'ba2a4ef99f04f7b8baaf2217dd66221975e3cadf'; + public const PACKAGE_VERSION = '8262457397a658a760f3732ffb9209330553b21d'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 10:33:22'; + public const RELEASE_DATE = '2026-09-04 10:34:06'; /** * @var int */ From 8d4845e370e7ce6015d3016073fe66c20906f57e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 08:41:38 +0000 Subject: [PATCH 126/169] Updated Rector to commit ff9a328879419a212750802524126d51c6da2756 https://github.com/rectorphp/rector-src/commit/ff9a328879419a212750802524126d51c6da2756 [fix] Restrict ClassMethodArrayDocblockParamFromLocalCallsRector to safe cases (#8438) --- ...ArrayDocblockParamFromLocalCallsRector.php | 36 +++++++++++++++++++ src/Application/VersionResolver.php | 4 +-- vendor/scoper-autoload.php | 2 +- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php index 63778e5784b..fc82d9d2fd6 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php @@ -7,8 +7,10 @@ use PhpParser\Node\Expr; use PhpParser\Node\Param; use PhpParser\Node\Stmt\Class_; +use PHPStan\Type\ArrayType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; +use PHPStan\Type\UnionType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\PhpParser\NodeFinder\LocalMethodCallFinder; use Rector\Rector\AbstractRector; @@ -98,6 +100,7 @@ public function refactor(Node $node): ?Node continue; } // only private methods have a closed set of local callers; public/protected can be called from outside + // with a wider type we cannot see here if (!$classMethod->isPrivate()) { continue; } @@ -120,6 +123,11 @@ public function refactor(Node $node): ?Node } // in case of array type declaration, null cannot be passed or is already casted $resolvedParameterType = TypeCombinator::removeNull($resolvedParameterType); + // the generalization of a nested array (an array of arrays) is imprecise and can diverge from the type + // PHPStan itself infers at the call site, producing a @param that rejects the very call it was built from + if ($this->hasNestedArray($resolvedParameterType)) { + continue; + } // the param default value must always be accepted; a locally inferred, flow-narrowed type such as // "non-empty-array" would otherwise contradict an "= []" default - unite with the default type so // the resulting @param never conflicts with the method signature @@ -138,6 +146,34 @@ public function refactor(Node $node): ?Node } return $node; } + private function hasNestedArray(Type $type): bool + { + if ($type instanceof UnionType) { + $found = \false; + foreach ($type->getTypes() as $unionedType) { + if ($this->hasNestedArray($unionedType)) { + $found = \true; + break; + } + } + return $found; + } + if (!$type instanceof ArrayType) { + return \false; + } + $itemType = $type->getItemType(); + if ($itemType instanceof UnionType) { + $found = \false; + foreach ($itemType->getTypes() as $unionedItemType) { + if ($unionedItemType instanceof ArrayType) { + $found = \true; + break; + } + } + return $found; + } + return $itemType instanceof ArrayType; + } private function hasParamArrayType(Param $param): bool { if (!$param->type instanceof Node) { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 04d0ee7aa51..a14358fbed6 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 = '8262457397a658a760f3732ffb9209330553b21d'; + public const PACKAGE_VERSION = 'ff9a328879419a212750802524126d51c6da2756'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 10:34:06'; + public const RELEASE_DATE = '2026-09-04 10:39:04'; /** * @var int */ diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index d3aeb82871e..49a6cccef97 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) + \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) ); return $loader; From 1e3dcb7623cfb78719088a7290df69df03d0322b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 08:42:32 +0000 Subject: [PATCH 127/169] Updated Rector to commit d3d1774402350baafec1fad2b4d0ab5b1c254956 https://github.com/rectorphp/rector-src/commit/d3d1774402350baafec1fad2b4d0ab5b1c254956 Include the exit code and stderr when a bin/rector output assertion fails (#8440) --- src/Application/VersionResolver.php | 4 ++-- vendor/scoper-autoload.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index a14358fbed6..b2f57119e64 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 = 'ff9a328879419a212750802524126d51c6da2756'; + public const PACKAGE_VERSION = 'd3d1774402350baafec1fad2b4d0ab5b1c254956'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 10:39:04'; + public const RELEASE_DATE = '2026-09-04 10:40:12'; /** * @var int */ diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index 49a6cccef97..d3aeb82871e 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['acbe0d033c55cd0a032b415e08d14f4c', '8825ede83f2f289127722d4e842cf7e8', '80dfc307f8b4b13bcd033cef5c977d19'], true) + \array_fill_keys(['80dfc307f8b4b13bcd033cef5c977d19', '8825ede83f2f289127722d4e842cf7e8', 'acbe0d033c55cd0a032b415e08d14f4c'], true) ); return $loader; From 81703a71a37dfd3230981c06c6badf96d4308918 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 08:47:34 +0000 Subject: [PATCH 128/169] Updated Rector to commit ba5c25c9178d2f5197152072fb74bb09538559c5 https://github.com/rectorphp/rector-src/commit/ba5c25c9178d2f5197152072fb74bb09538559c5 [ax] Extract TerminalDetector helper for TTY detection (#8458) --- src/Agentic/TerminalDetector.php | 20 ++++++++++++++++++++ src/Application/VersionResolver.php | 4 ++-- src/Configuration/ConfigInitializer.php | 3 ++- src/Configuration/ConfigurationFactory.php | 7 ++----- src/Console/Style/SymfonyStyleFactory.php | 3 ++- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + 7 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 src/Agentic/TerminalDetector.php diff --git a/src/Agentic/TerminalDetector.php b/src/Agentic/TerminalDetector.php new file mode 100644 index 00000000000..4bcf28ee624 --- /dev/null +++ b/src/Agentic/TerminalDetector.php @@ -0,0 +1,20 @@ +symfonyStyle->warning(sprintf('No "%s" config found. Create one, or pass "--config ".', RectorConfigsResolver::DEFAULT_CONFIG_FILE)); return; } diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index 53ff0a434d5..125934ba98f 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Configuration; +use Rector\Agentic\TerminalDetector; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\FileSystem\FilePathFilter; @@ -115,7 +116,7 @@ private function shouldShowProgressBar(InputInterface $input, string $outputForm return \false; } // no interactive terminal, e.g. piped output, CI or an agent - the redraws are just noise - if (!$this->isTtyOutput()) { + if (!TerminalDetector::isOutputTty()) { return \false; } if ($this->symfonyStyle->isVerbose()) { @@ -123,10 +124,6 @@ private function shouldShowProgressBar(InputInterface $input, string $outputForm } return $outputFormat === ConsoleOutputFormatter::NAME; } - private function isTtyOutput(): bool - { - return defined('STDOUT') && stream_isatty(\STDOUT); - } private function shouldShowDiffs(InputInterface $input): bool { $noDiffs = (bool) $input->getOption(\Rector\Configuration\Option::NO_DIFFS); diff --git a/src/Console/Style/SymfonyStyleFactory.php b/src/Console/Style/SymfonyStyleFactory.php index 91463d2ef06..7249b74d7ad 100644 --- a/src/Console/Style/SymfonyStyleFactory.php +++ b/src/Console/Style/SymfonyStyleFactory.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Console\Style; +use Rector\Agentic\TerminalDetector; use Rector\Util\Reflection\PrivatesAccessor; use RectorPrefix202609\Symfony\Component\Console\Application; use RectorPrefix202609\Symfony\Component\Console\Input\ArgvInput; @@ -37,7 +38,7 @@ public function create(): \Rector\Console\Style\RectorStyle $consoleOutput->setVerbosity(OutputInterface::VERBOSITY_QUIET); } // no interactive terminal, e.g. piped output, CI or an agent - never emit ANSI, even if forced via --ansi - if (!defined('STDOUT') || !stream_isatty(\STDOUT)) { + if (!TerminalDetector::isOutputTty()) { $consoleOutput->setDecorated(\false); } return new \Rector\Console\Style\RectorStyle($argvInput, $consoleOutput); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 6285040063a..2202e7e9b14 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -936,6 +936,7 @@ 'RectorPrefix202609\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', 'RectorPrefix202609\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', 'RectorPrefix202609\\Webmozart\\Assert\\PsalmPlugin' => $vendorDir . '/webmozart/assert/src/PsalmPlugin.php', + 'Rector\\Agentic\\TerminalDetector' => $baseDir . '/src/Agentic/TerminalDetector.php', 'Rector\\Application\\ApplicationFileProcessor' => $baseDir . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Application\\ChangedNodeScopeRefresher' => $baseDir . '/src/Application/ChangedNodeScopeRefresher.php', 'Rector\\Application\\FileProcessor' => $baseDir . '/src/Application/FileProcessor.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 3d4da68dd73..4dd1d869542 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1156,6 +1156,7 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'RectorPrefix202609\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', 'RectorPrefix202609\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', 'RectorPrefix202609\\Webmozart\\Assert\\PsalmPlugin' => __DIR__ . '/..' . '/webmozart/assert/src/PsalmPlugin.php', + 'Rector\\Agentic\\TerminalDetector' => __DIR__ . '/../..' . '/src/Agentic/TerminalDetector.php', 'Rector\\Application\\ApplicationFileProcessor' => __DIR__ . '/../..' . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Application\\ChangedNodeScopeRefresher' => __DIR__ . '/../..' . '/src/Application/ChangedNodeScopeRefresher.php', 'Rector\\Application\\FileProcessor' => __DIR__ . '/../..' . '/src/Application/FileProcessor.php', From 252774fc62659925e691b0adee46f4c158f1ff50 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 16:32:57 +0000 Subject: [PATCH 129/169] Updated Rector to commit 3e10647450ee6e0dde910ee3b8fe15b630aab303 https://github.com/rectorphp/rector-src/commit/3e10647450ee6e0dde910ee3b8fe15b630aab303 [DeadCode] Skip annotation docblocks in RemoveParentDelegatingClassMethodRector (#8459) --- .../RemoveParentDelegatingClassMethodRector.php | 11 ++++++++++- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php b/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php index 8104a1fe254..ee379be30ba 100644 --- a/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php +++ b/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\DeadCode\Rector\ClassMethod; +use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; use PhpParser\Node; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\Variable; @@ -11,6 +12,7 @@ use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; use PhpParser\NodeVisitor; +use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\ExtendedMethodReflection; use PHPStan\Reflection\ExtendedParameterReflection; @@ -102,7 +104,14 @@ public function refactor(Node $node): ?int private function hasRefiningDocblock(ClassMethod $classMethod): bool { $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod); - return $phpDocInfo->hasByNames(['@param', '@phpstan-param', '@psalm-param', '@return', '@phpstan-return', '@psalm-return', '@deprecated']); + $found = \false; + foreach ($phpDocInfo->getPhpDocNode()->children as $phpDocChildNode) { + if ($phpDocChildNode instanceof PhpDocTagNode) { + $found = \true; + break; + } + } + return $found; } private function matchParentMethodReflection(ClassMethod $classMethod): ?ExtendedMethodReflection { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 01b638db2f0..6644a1b2290 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 = 'ba5c25c9178d2f5197152072fb74bb09538559c5'; + public const PACKAGE_VERSION = '3e10647450ee6e0dde910ee3b8fe15b630aab303'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 10:45:03'; + public const RELEASE_DATE = '2026-09-04 18:30:22'; /** * @var int */ From ee72889e02d41203594c03c5b1c1bcbfc6feac52 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 16:34:32 +0000 Subject: [PATCH 130/169] Updated Rector to commit b9d85b9f74f18156ac8629bfa45f122a5c4e8f89 https://github.com/rectorphp/rector-src/commit/b9d85b9f74f18156ac8629bfa45f122a5c4e8f89 [Php80] Skip empty string needle in StrContainsRector (#8460) --- .../Php80/Rector/NotIdentical/StrContainsRector.php | 12 ++++++++++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/rules/Php80/Rector/NotIdentical/StrContainsRector.php b/rules/Php80/Rector/NotIdentical/StrContainsRector.php index adafe783c08..d1b81ac8a32 100644 --- a/rules/Php80/Rector/NotIdentical/StrContainsRector.php +++ b/rules/Php80/Rector/NotIdentical/StrContainsRector.php @@ -14,6 +14,7 @@ use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Name; use PhpParser\Node\Scalar\Int_; +use PhpParser\Node\Scalar\String_; use Rector\Php80\NodeResolver\StrFalseComparisonResolver; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; @@ -84,6 +85,10 @@ public function refactor(Node $node): ?Node if ($funcCall->isFirstClassCallable()) { return null; } + $args = $funcCall->getArgs(); + if (isset($args[1]) && $this->isEmptyStringNeedle($args[1]->value)) { + return null; + } if (isset($funcCall->getArgs()[2])) { $secondArg = $funcCall->getArgs()[2]; if ($this->isName($funcCall->name, 'strpos') && !$this->isIntegerZero($secondArg->value)) { @@ -108,4 +113,11 @@ private function isIntegerZero(Expr $expr): bool } return $expr->value === 0; } + private function isEmptyStringNeedle(Expr $expr): bool + { + if (!$expr instanceof String_) { + return \false; + } + return $expr->value === ''; + } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 6644a1b2290..4cc377869e9 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 = '3e10647450ee6e0dde910ee3b8fe15b630aab303'; + public const PACKAGE_VERSION = 'b9d85b9f74f18156ac8629bfa45f122a5c4e8f89'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 18:30:22'; + public const RELEASE_DATE = '2026-09-04 18:32:31'; /** * @var int */ From 65e5b6f5d00b86d756f8ac5bb33ee5b9dcb8c35f Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 4 Sep 2026 20:13:51 +0000 Subject: [PATCH 131/169] Updated Rector to commit bf6552ae0d0279cf415063844b38be5cc298e718 https://github.com/rectorphp/rector-src/commit/bf6552ae0d0279cf415063844b38be5cc298e718 [DeadCode] Skip dead catch before catch-all Throwable/Exception in RemoveDeadCatchRector (#8462) --- .../Rector/TryCatch/RemoveDeadCatchRector.php | 26 ++++++++++++++++++- src/Application/VersionResolver.php | 4 +-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/rules/DeadCode/Rector/TryCatch/RemoveDeadCatchRector.php b/rules/DeadCode/Rector/TryCatch/RemoveDeadCatchRector.php index bda0e821763..b0242e1fa27 100644 --- a/rules/DeadCode/Rector/TryCatch/RemoveDeadCatchRector.php +++ b/rules/DeadCode/Rector/TryCatch/RemoveDeadCatchRector.php @@ -11,6 +11,7 @@ use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Nop; use PhpParser\Node\Stmt\TryCatch; +use PHPStan\Reflection\ReflectionProvider; use PHPStan\Type\ObjectType; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -20,6 +21,14 @@ */ final class RemoveDeadCatchRector extends AbstractRector { + /** + * @readonly + */ + private ReflectionProvider $reflectionProvider; + public function __construct(ReflectionProvider $reflectionProvider) + { + $this->reflectionProvider = $reflectionProvider; + } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Remove dead catches', [new CodeSample(<<<'CODE_SAMPLE' @@ -126,7 +135,12 @@ private function shouldSkipNextCatchClassParentWithSpecialTreatment(array $catch if (!$nextCatchType instanceof FullyQualified) { return \true; } - if (!$this->isObjectType($fullyQualified, new ObjectType($nextCatchType->toString()))) { + // Throwable/Exception catch anything, so the current catch is never dead against them, + // even when the current type cannot be resolved to prove the parent relation + $catchesAnything = in_array(ltrim($nextCatchType->toString(), '\\'), ['Throwable', 'Exception'], \true); + // only skip when the next catch is provably unrelated; an unresolvable next type + // might be a parent of the current one, so removing the catch would change behavior + if (!$catchesAnything && $this->isProvablyUnrelated($fullyQualified, $nextCatchType)) { continue; } if (!$this->isJustThrownSameVariable($nextCatch)) { @@ -135,6 +149,16 @@ private function shouldSkipNextCatchClassParentWithSpecialTreatment(array $catch } return \false; } + private function isProvablyUnrelated(FullyQualified $current, FullyQualified $next): bool + { + if (!$this->reflectionProvider->hasClass($current->toString())) { + return \false; + } + if (!$this->reflectionProvider->hasClass($next->toString())) { + return \false; + } + return !$this->isObjectType($current, new ObjectType($next->toString())); + } /** * @param Stmt[] $stmts */ diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 4cc377869e9..0dac264de60 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 = 'b9d85b9f74f18156ac8629bfa45f122a5c4e8f89'; + public const PACKAGE_VERSION = 'bf6552ae0d0279cf415063844b38be5cc298e718'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 18:32:31'; + public const RELEASE_DATE = '2026-09-04 22:11:51'; /** * @var int */ From fec4c72062cec07f048609fd42ca7ad6c0417d02 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 5 Sep 2026 11:53:05 +0000 Subject: [PATCH 132/169] Updated Rector to commit fdabc8613bcdfed104c81098f1255074d45fc49a https://github.com/rectorphp/rector-src/commit/fdabc8613bcdfed104c81098f1255074d45fc49a [ax] Deprecate --rules-summary, suggest --output-format=json (#8457) --- src/Application/VersionResolver.php | 4 ++-- src/Console/Command/ProcessCommand.php | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 0dac264de60..e1497117d69 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 = 'bf6552ae0d0279cf415063844b38be5cc298e718'; + public const PACKAGE_VERSION = 'fdabc8613bcdfed104c81098f1255074d45fc49a'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-04 22:11:51'; + public const RELEASE_DATE = '2026-09-05 13:51:04'; /** * @var int */ diff --git a/src/Console/Command/ProcessCommand.php b/src/Console/Command/ProcessCommand.php index 99a9392999d..309fa59d68e 100644 --- a/src/Console/Command/ProcessCommand.php +++ b/src/Console/Command/ProcessCommand.php @@ -139,6 +139,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($configuration->getOutputFormat() === JsonOutputFormatter::NAME) { $this->symfonyStyle->setVerbosity(OutputInterface::VERBOSITY_QUIET); } + // "--rules-summary" is a human-only table; the JSON format carries richer per-rule data + if ($configuration->shouldShowRulesSummary()) { + $this->symfonyStyle->getErrorStyle()->warning('The "--rules-summary" option is deprecated and will be removed. Use "--output-format=json" instead, which reports every applied rule with its file and line.'); + } $this->additionalAutoloader->autoloadInput($input); $paths = $configuration->getPaths(); // 0. warn about too high levels From c35fb773aeaaed17a8885d3baeb772bdd891fea9 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 5 Sep 2026 12:49:49 +0000 Subject: [PATCH 133/169] Updated Rector to commit 8b1c4e2ce1984f5e99f96e8991b539eb6c1ab897 https://github.com/rectorphp/rector-src/commit/8b1c4e2ce1984f5e99f96e8991b539eb6c1ab897 [Testing] Use fresh single-file source locator under PHPUnit to avoid stale reflection (#8464) --- src/Application/VersionResolver.php | 4 ++-- .../DynamicSourceLocatorProvider.php | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index e1497117d69..0e71e9fd478 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 = 'fdabc8613bcdfed104c81098f1255074d45fc49a'; + public const PACKAGE_VERSION = '8b1c4e2ce1984f5e99f96e8991b539eb6c1ab897'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-05 13:51:04'; + public const RELEASE_DATE = '2026-09-05 14:47:27'; /** * @var int */ diff --git a/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php b/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php index aa61104ec85..52d59f86e5d 100644 --- a/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php +++ b/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php @@ -6,6 +6,7 @@ use PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator; use PHPStan\BetterReflection\SourceLocator\Type\SourceLocator; use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedDirectorySourceLocatorFactory; +use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedSingleFileSourceLocatorFactory; use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedSingleFileSourceLocatorRepository; use Rector\Contract\DependencyInjection\ResettableInterface; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; @@ -22,6 +23,10 @@ final class DynamicSourceLocatorProvider implements ResettableInterface * @readonly */ private OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository; + /** + * @readonly + */ + private OptimizedSingleFileSourceLocatorFactory $optimizedSingleFileSourceLocatorFactory; /** * @var string[] */ @@ -31,10 +36,11 @@ final class DynamicSourceLocatorProvider implements ResettableInterface */ private array $directories = []; private ?AggregateSourceLocator $aggregateSourceLocator = null; - public function __construct(OptimizedDirectorySourceLocatorFactory $optimizedDirectorySourceLocatorFactory, OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository) + public function __construct(OptimizedDirectorySourceLocatorFactory $optimizedDirectorySourceLocatorFactory, OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository, OptimizedSingleFileSourceLocatorFactory $optimizedSingleFileSourceLocatorFactory) { $this->optimizedDirectorySourceLocatorFactory = $optimizedDirectorySourceLocatorFactory; $this->optimizedSingleFileSourceLocatorRepository = $optimizedSingleFileSourceLocatorRepository; + $this->optimizedSingleFileSourceLocatorFactory = $optimizedSingleFileSourceLocatorFactory; } public function setFilePath(string $filePath): void { @@ -63,7 +69,10 @@ public function provide(): SourceLocator } $sourceLocators = []; foreach ($this->filePaths as $file) { - $sourceLocators[] = $this->optimizedSingleFileSourceLocatorRepository->getOrCreate($file); + // under PHPUnit each fixture is a throwaway temp file that is deleted after the test; + // the shared repository caches locators by path forever, so a stale locator for a since-deleted + // file can leak into a later test. build a fresh locator per run there, keep caching in production + $sourceLocators[] = $isPHPUnitRun ? $this->optimizedSingleFileSourceLocatorFactory->create($file) : $this->optimizedSingleFileSourceLocatorRepository->getOrCreate($file); } foreach ($this->directories as $directory) { $sourceLocators[] = $this->optimizedDirectorySourceLocatorFactory->createByDirectory($directory); From f34668f27740b6d2f4d12319f98ab41b3a6cb1ac Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 5 Sep 2026 13:07:37 +0000 Subject: [PATCH 134/169] Updated Rector to commit 9985b915ae4bfc0e9ef71b90e045771e4fa64238 https://github.com/rectorphp/rector-src/commit/9985b915ae4bfc0e9ef71b90e045771e4fa64238 Revert "[Testing] Use fresh single-file source locator under PHPUnit" (#8464) (#8465) --- src/Application/VersionResolver.php | 4 ++-- .../DynamicSourceLocatorProvider.php | 13 ++----------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 0e71e9fd478..f6663a4d51d 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 = '8b1c4e2ce1984f5e99f96e8991b539eb6c1ab897'; + public const PACKAGE_VERSION = '9985b915ae4bfc0e9ef71b90e045771e4fa64238'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-05 14:47:27'; + public const RELEASE_DATE = '2026-09-05 15:05:16'; /** * @var int */ diff --git a/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php b/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php index 52d59f86e5d..aa61104ec85 100644 --- a/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php +++ b/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php @@ -6,7 +6,6 @@ use PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator; use PHPStan\BetterReflection\SourceLocator\Type\SourceLocator; use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedDirectorySourceLocatorFactory; -use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedSingleFileSourceLocatorFactory; use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedSingleFileSourceLocatorRepository; use Rector\Contract\DependencyInjection\ResettableInterface; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; @@ -23,10 +22,6 @@ final class DynamicSourceLocatorProvider implements ResettableInterface * @readonly */ private OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository; - /** - * @readonly - */ - private OptimizedSingleFileSourceLocatorFactory $optimizedSingleFileSourceLocatorFactory; /** * @var string[] */ @@ -36,11 +31,10 @@ final class DynamicSourceLocatorProvider implements ResettableInterface */ private array $directories = []; private ?AggregateSourceLocator $aggregateSourceLocator = null; - public function __construct(OptimizedDirectorySourceLocatorFactory $optimizedDirectorySourceLocatorFactory, OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository, OptimizedSingleFileSourceLocatorFactory $optimizedSingleFileSourceLocatorFactory) + public function __construct(OptimizedDirectorySourceLocatorFactory $optimizedDirectorySourceLocatorFactory, OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository) { $this->optimizedDirectorySourceLocatorFactory = $optimizedDirectorySourceLocatorFactory; $this->optimizedSingleFileSourceLocatorRepository = $optimizedSingleFileSourceLocatorRepository; - $this->optimizedSingleFileSourceLocatorFactory = $optimizedSingleFileSourceLocatorFactory; } public function setFilePath(string $filePath): void { @@ -69,10 +63,7 @@ public function provide(): SourceLocator } $sourceLocators = []; foreach ($this->filePaths as $file) { - // under PHPUnit each fixture is a throwaway temp file that is deleted after the test; - // the shared repository caches locators by path forever, so a stale locator for a since-deleted - // file can leak into a later test. build a fresh locator per run there, keep caching in production - $sourceLocators[] = $isPHPUnitRun ? $this->optimizedSingleFileSourceLocatorFactory->create($file) : $this->optimizedSingleFileSourceLocatorRepository->getOrCreate($file); + $sourceLocators[] = $this->optimizedSingleFileSourceLocatorRepository->getOrCreate($file); } foreach ($this->directories as $directory) { $sourceLocators[] = $this->optimizedDirectorySourceLocatorFactory->createByDirectory($directory); From cb8d0cf13d9b5b8d5ab21cf7b7f0cfffc91aeb7a Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 6 Sep 2026 01:02:07 +0000 Subject: [PATCH 135/169] Updated Rector to commit 3cd35a15e20d6b57c60a780f79b27615ea796602 https://github.com/rectorphp/rector-src/commit/3cd35a15e20d6b57c60a780f79b27615ea796602 [automated] Apply Coding Standard (#8466) --- .../ClassMethod/RemoveParentDelegatingClassMethodRector.php | 2 +- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php b/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php index ee379be30ba..a91f78bcb10 100644 --- a/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php +++ b/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingClassMethodRector.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\DeadCode\Rector\ClassMethod; -use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; use PhpParser\Node; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\Variable; @@ -12,6 +11,7 @@ use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; use PhpParser\NodeVisitor; +use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\ExtendedMethodReflection; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f6663a4d51d..0b6518323c8 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 = '9985b915ae4bfc0e9ef71b90e045771e4fa64238'; + public const PACKAGE_VERSION = '3cd35a15e20d6b57c60a780f79b27615ea796602'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-05 15:05:16'; + public const RELEASE_DATE = '2026-09-06 00:59:47'; /** * @var int */ From 37d8e10fcbb877996c0816dac91d8cd57953358b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 6 Sep 2026 06:10:28 +0000 Subject: [PATCH 136/169] Updated Rector to commit 323e82a859d5a898811c2f550a0bb953cbc43b14 https://github.com/rectorphp/rector-src/commit/323e82a859d5a898811c2f550a0bb953cbc43b14 Fix test on Windows CI (#8467) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 0b6518323c8..026fbffbd73 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 = '3cd35a15e20d6b57c60a780f79b27615ea796602'; + public const PACKAGE_VERSION = '323e82a859d5a898811c2f550a0bb953cbc43b14'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-06 00:59:47'; + public const RELEASE_DATE = '2026-09-06 08:08:05'; /** * @var int */ From f02603d9c1c4d008666477e45ecf75be6ae3c6fc Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 6 Sep 2026 07:50:00 +0000 Subject: [PATCH 137/169] Updated Rector to commit a5c7025e868e38abc0138e629ebccf6c1970a261 https://github.com/rectorphp/rector-src/commit/a5c7025e868e38abc0138e629ebccf6c1970a261 [CodeQuality] Skip SimplifyUselessVariableRector on commented-out code and inline concat (#8468) --- .../SimplifyUselessVariableRector.php | 116 +++++++----------- src/Application/VersionResolver.php | 4 +- src/PhpParser/Node/AssignAndBinaryMap.php | 14 +-- 3 files changed, 46 insertions(+), 88 deletions(-) diff --git a/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php b/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php index ccf730f9d4d..6e6379c2388 100644 --- a/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php +++ b/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php @@ -6,32 +6,24 @@ use PhpParser\Comment\Doc; use PhpParser\Node; use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\AssignOp; -use PhpParser\Node\Expr\Ternary; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; use PHPStan\Type\MixedType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\Contract\Rector\ConfigurableRectorInterface; use Rector\NodeAnalyzer\CallAnalyzer; use Rector\NodeAnalyzer\VariableAnalyzer; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpParser\Enum\NodeGroup; -use Rector\PhpParser\Node\AssignAndBinaryMap; use Rector\Rector\AbstractRector; -use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; +use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Tests\CodeQuality\Rector\FunctionLike\SimplifyUselessVariableRector\SimplifyUselessVariableRectorTest */ -final class SimplifyUselessVariableRector extends AbstractRector implements ConfigurableRectorInterface +final class SimplifyUselessVariableRector extends AbstractRector { - /** - * @readonly - */ - private AssignAndBinaryMap $assignAndBinaryMap; /** * @readonly */ @@ -44,60 +36,26 @@ final class SimplifyUselessVariableRector extends AbstractRector implements Conf * @readonly */ private PhpDocInfoFactory $phpDocInfoFactory; - /** - * @api - * @var string - */ - public const ONLY_DIRECT_ASSIGN = 'only_direct_assign'; - private bool $onlyDirectAssign = \false; - public function __construct(AssignAndBinaryMap $assignAndBinaryMap, VariableAnalyzer $variableAnalyzer, CallAnalyzer $callAnalyzer, PhpDocInfoFactory $phpDocInfoFactory) + public function __construct(VariableAnalyzer $variableAnalyzer, CallAnalyzer $callAnalyzer, PhpDocInfoFactory $phpDocInfoFactory) { - $this->assignAndBinaryMap = $assignAndBinaryMap; $this->variableAnalyzer = $variableAnalyzer; $this->callAnalyzer = $callAnalyzer; $this->phpDocInfoFactory = $phpDocInfoFactory; } - /** - * @param array $configuration - */ - public function configure(array $configuration): void - { - $this->onlyDirectAssign = $configuration[self::ONLY_DIRECT_ASSIGN] ?? \false; - } public function getRuleDefinition(): RuleDefinition { - return new RuleDefinition('Remove useless variable assigns', [new ConfiguredCodeSample( - <<<'CODE_SAMPLE' + return new RuleDefinition('Remove useless variable assigns', [new CodeSample(<<<'CODE_SAMPLE' function () { $a = true; return $a; }; CODE_SAMPLE -, - <<<'CODE_SAMPLE' -function () { - return true; -}; -CODE_SAMPLE -, - // default - [self::ONLY_DIRECT_ASSIGN => \true] - ), new ConfiguredCodeSample(<<<'CODE_SAMPLE' -function () { - $a = 'Hello, '; - $a .= 'World!'; - - return $a; -}; -CODE_SAMPLE , <<<'CODE_SAMPLE' function () { - $a = 'Hello, '; - - return $a . 'World!'; + return true; }; CODE_SAMPLE -, [self::ONLY_DIRECT_ASSIGN => \false])]); +)]); } /** * @return array> @@ -130,33 +88,25 @@ public function refactor(Node $node): ?Node if ($this->hasSomeComment($previousStmt)) { return null; } + // the variable might be used in commented-out code between assign and return + if ($this->isVariableMentionedInComment($stmt)) { + return null; + } if ($this->isReturnWithVarAnnotation($stmt)) { return null; } - /** @var Expression $previousStmt */ + if (!$previousStmt instanceof Expression) { + return null; + } $assign = $previousStmt->expr; - return $this->processSimplifyUselessVariable($node, $stmt, $assign, $key); - } - return null; - } - /** - * @param StmtsAware $stmtsAware - * @return StmtsAware|null - * @param \PhpParser\Node\Expr\Assign|\PhpParser\Node\Expr\AssignOp $assign - */ - private function processSimplifyUselessVariable(Node $stmtsAware, Return_ $return, $assign, int $key): ?Node - { - if (!$assign instanceof Assign) { - $binaryClass = $this->assignAndBinaryMap->getAlternative($assign); - if ($binaryClass === null) { + if (!$assign instanceof Assign) { return null; } - $return->expr = new $binaryClass($assign->var, $assign->expr); - } else { - $return->expr = $assign->expr; + $stmt->expr = $assign->expr; + unset($node->stmts[$key - 1]); + return $node; } - unset($stmtsAware->stmts[$key - 1]); - return $stmtsAware; + return null; } private function shouldSkipStmt(Return_ $return, Stmt $previousStmt): bool { @@ -171,13 +121,7 @@ private function shouldSkipStmt(Return_ $return, Stmt $previousStmt): bool } // is variable part of single assign $previousNode = $previousStmt->expr; - if (!$previousNode instanceof AssignOp && !$previousNode instanceof Assign) { - return \true; - } - if ($this->onlyDirectAssign && $previousNode instanceof AssignOp) { - return \true; - } - if ($previousNode instanceof AssignOp && $previousNode->expr instanceof Ternary) { + if (!$previousNode instanceof Assign) { return \true; } $variable = $return->expr; @@ -195,6 +139,28 @@ private function shouldSkipStmt(Return_ $return, Stmt $previousStmt): bool } return $this->variableAnalyzer->isUsedByReference($variable); } + private function isVariableMentionedInComment(Return_ $return): bool + { + $comments = $return->getComments(); + if ($comments === []) { + return \false; + } + if (!$return->expr instanceof Variable) { + return \false; + } + $variableName = $return->expr->name; + if (!is_string($variableName)) { + return \false; + } + $found = \false; + foreach ($comments as $comment) { + if (strpos($comment->getText(), '$' . $variableName) !== \false) { + $found = \true; + break; + } + } + return $found; + } private function hasSomeComment(Stmt $stmt): bool { if ($stmt->getComments() !== []) { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 026fbffbd73..3b7c74771b7 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 = '323e82a859d5a898811c2f550a0bb953cbc43b14'; + public const PACKAGE_VERSION = 'a5c7025e868e38abc0138e629ebccf6c1970a261'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-06 08:08:05'; + public const RELEASE_DATE = '2026-09-06 09:47:30'; /** * @var int */ diff --git a/src/PhpParser/Node/AssignAndBinaryMap.php b/src/PhpParser/Node/AssignAndBinaryMap.php index 8a71d77743e..30e0372fb29 100644 --- a/src/PhpParser/Node/AssignAndBinaryMap.php +++ b/src/PhpParser/Node/AssignAndBinaryMap.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\PhpParser\Node; -use PhpParser\Node; use PhpParser\Node\Expr\AssignOp; use PhpParser\Node\Expr\AssignOp\BitwiseAnd as AssignBitwiseAnd; use PhpParser\Node\Expr\AssignOp\BitwiseOr as AssignBitwiseOr; @@ -59,18 +58,11 @@ public function __construct() $this->binaryOpToAssignClasses = $binaryClassesToAssignOp; } /** - * @return class-string|null + * @return class-string|null */ - public function getAlternative(Node $node): ?string + public function getAlternative(BinaryOp $binaryOp): ?string { - $nodeClass = get_class($node); - if ($node instanceof AssignOp) { - return self::ASSIGN_OP_TO_BINARY_OP_CLASSES[$nodeClass] ?? null; - } - if ($node instanceof BinaryOp) { - return $this->binaryOpToAssignClasses[$nodeClass] ?? null; - } - return null; + return $this->binaryOpToAssignClasses[get_class($binaryOp)] ?? null; } /** * @return class-string|null From b05ec5b4c645d16413104feb71a65bc17577abb1 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 6 Sep 2026 10:42:50 +0000 Subject: [PATCH 138/169] Updated Rector to commit c3088b7eb3d5c3bca70cedb8aa2fa06ed02d305d https://github.com/rectorphp/rector-src/commit/c3088b7eb3d5c3bca70cedb8aa2fa06ed02d305d [TypeDeclarationDocblocks] Skip empty array return in DocblockReturnArrayFromDirectArrayInstanceRector (#8434) --- ...lockReturnArrayFromDirectArrayInstanceRector.php | 13 ++++--------- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php index effd049319e..41d00e7ecfe 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php @@ -9,7 +9,6 @@ use PhpParser\Node\Stmt\Function_; use PhpParser\Node\Stmt\Return_; use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode; -use PHPStan\PhpDocParser\Ast\Type\ArrayTypeNode; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use PHPStan\Type\Constant\ConstantArrayType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; @@ -117,7 +116,7 @@ public function refactor(Node $node): ?Node if (!$soleReturn->expr instanceof Array_) { return null; } - if ($this->shouldSkipReturnMixedAndEmptyArray($phpDocInfo, $soleReturn->expr)) { + if ($this->shouldSkipEmptyArray($phpDocInfo, $soleReturn->expr)) { return null; } // bare "@return array" with "return []" -> "mixed[]", better than "array{}" @@ -138,17 +137,13 @@ public function refactor(Node $node): ?Node $this->phpDocTypeChanger->changeReturnTypeNode($node, $phpDocInfo, $genericTypeNode); return $node; } - private function shouldSkipReturnMixedAndEmptyArray(PhpDocInfo $phpDocInfo, Array_ $array): bool + private function shouldSkipEmptyArray(PhpDocInfo $phpDocInfo, Array_ $array): bool { if ($array->items !== []) { return \false; } - $returnTagValueNode = $phpDocInfo->getReturnTagValue(); - if (!$returnTagValueNode instanceof ReturnTagValueNode) { - return \false; - } - // better than array{} - return $returnTagValueNode->type instanceof ArrayTypeNode; + // skip empty array; @return array{} is too narrow, except refining bare "array" to "mixed[]" is still useful + return !$this->hasBareArrayReturnTag($phpDocInfo); } private function hasBareArrayReturnTag(PhpDocInfo $phpDocInfo): bool { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 3b7c74771b7..dda13c8eacd 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 = 'a5c7025e868e38abc0138e629ebccf6c1970a261'; + public const PACKAGE_VERSION = 'c3088b7eb3d5c3bca70cedb8aa2fa06ed02d305d'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-06 09:47:30'; + public const RELEASE_DATE = '2026-09-06 10:40:15'; /** * @var int */ From 86665a1f5abf69e429b530cbe24185468ccd2d3f Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 6 Sep 2026 17:08:53 +0000 Subject: [PATCH 139/169] Updated Rector to commit 854635fcf0501e1c6d641ee2a3d9e6d9c86345c9 https://github.com/rectorphp/rector-src/commit/854635fcf0501e1c6d641ee2a3d9e6d9c86345c9 [TypeDeclarationDocblocks] Guard DocblockVarArrayFromPropertyDefaultsRector against unsound narrowing (#8435) --- ...lockVarArrayFromPropertyDefaultsRector.php | 27 +++++++++++++++++++ src/Application/VersionResolver.php | 4 +-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php index 52ee54bda97..f75ee8b6f2b 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php @@ -5,6 +5,7 @@ use PhpParser\Comment\Doc; use PhpParser\Node; +use PhpParser\Node\ArrayItem; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Identifier; use PhpParser\Node\PropertyItem; @@ -80,6 +81,10 @@ public function refactor(Node $node): ?Node if (!$this->isName($property->type, 'array')) { continue; } + // only private properties are safe; a protected/public one can be reassigned with a wider type by a child class we cannot see here + if (!$property->isPrivate()) { + continue; + } if (count($property->props) > 1) { continue; } @@ -87,6 +92,10 @@ public function refactor(Node $node): ?Node if (!$soleProperty->default instanceof Array_) { continue; } + // an empty nested array default generalizes to never[], which then rejects every real value assigned later + if ($this->hasEmptyNestedArray($soleProperty->default)) { + continue; + } $propertyDefaultType = $this->getType($soleProperty->default); $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); // type is already known @@ -105,6 +114,24 @@ public function refactor(Node $node): ?Node } return $node; } + private function hasEmptyNestedArray(Array_ $array): bool + { + foreach ($array->items as $arrayItem) { + if (!$arrayItem instanceof ArrayItem) { + continue; + } + if (!$arrayItem->value instanceof Array_) { + continue; + } + if ($arrayItem->value->items === []) { + return \true; + } + if ($this->hasEmptyNestedArray($arrayItem->value)) { + return \true; + } + } + return \false; + } private function hasUsefulParentPropertyVarTag(Class_ $class, Property $property, Type $propertyDefaultType): bool { $propertyName = $this->getName($property); diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index dda13c8eacd..10d4d125fbe 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 = 'c3088b7eb3d5c3bca70cedb8aa2fa06ed02d305d'; + public const PACKAGE_VERSION = '854635fcf0501e1c6d641ee2a3d9e6d9c86345c9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-06 10:40:15'; + public const RELEASE_DATE = '2026-09-06 19:06:23'; /** * @var int */ From 5d37fbe3ab0de4bef3367005b587b16002cf2f92 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 6 Sep 2026 19:11:00 +0000 Subject: [PATCH 140/169] Updated Rector to commit a8d84356b2646a094e8f7b4eaa8d5892a35d7869 https://github.com/rectorphp/rector-src/commit/a8d84356b2646a094e8f7b4eaa8d5892a35d7869 [dx] Set Option::SOURCE parameter from the resolved paths (#8424) --- src/Application/VersionResolver.php | 4 ++-- src/Configuration/ConfigurationFactory.php | 15 +++++++++------ .../Parameter/SimpleParameterProvider.php | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 10d4d125fbe..f9f35d5e50e 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 = '854635fcf0501e1c6d641ee2a3d9e6d9c86345c9'; + public const PACKAGE_VERSION = 'a8d84356b2646a094e8f7b4eaa8d5892a35d7869'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-06 19:06:23'; + public const RELEASE_DATE = '2026-09-06 21:08:34'; /** * @var int */ diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index 125934ba98f..9da96489b14 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -143,13 +143,16 @@ private function resolvePaths(InputInterface $input): array if ($commandLinePaths !== []) { // mark the run as narrowed, so unused skip reporting can be disabled to avoid false positives SimpleParameterProvider::setParameter(\Rector\Configuration\Option::IS_RUN_NARROWED, \true); - $this->setFilesWithoutExtensionParameter($commandLinePaths); - return $commandLinePaths; + $paths = $commandLinePaths; + } else { + // fallback to parameter + $paths = SimpleParameterProvider::provideArrayParameter(\Rector\Configuration\Option::PATHS); } - // fallback to parameter - $configPaths = SimpleParameterProvider::provideArrayParameter(\Rector\Configuration\Option::PATHS); - $this->setFilesWithoutExtensionParameter($configPaths); - return $configPaths; + $this->setFilesWithoutExtensionParameter($paths); + // extensions read the processed paths from here; without this only the test harness + // sets it, so the parameter is empty in a real run + SimpleParameterProvider::setParameter(\Rector\Configuration\Option::SOURCE, $paths); + return $paths; } /** * @param string[] $paths diff --git a/src/Configuration/Parameter/SimpleParameterProvider.php b/src/Configuration/Parameter/SimpleParameterProvider.php index 309ddd3680b..a88eb87fd04 100644 --- a/src/Configuration/Parameter/SimpleParameterProvider.php +++ b/src/Configuration/Parameter/SimpleParameterProvider.php @@ -18,7 +18,7 @@ final class SimpleParameterProvider * * @var array */ - private const CACHE_IGNORED_PARAMETER_NAMES = [Option::PARALLEL, Option::PARALLEL_JOB_SIZE, Option::PARALLEL_MAX_NUMBER_OF_PROCESSES, Option::PARALLEL_JOB_TIMEOUT_IN_SECONDS, Option::MEMORY_LIMIT, Option::NO_DIFFS, Option::CACHE_DIR, Option::CONTAINER_CACHE_DIRECTORY, Option::EDITOR_URL, Option::ABSOLUTE_FILE_PATH, Option::REPORT_UNUSED_SKIPS, Option::IS_RECTORCONFIG_BUILDER_RECREATED, Option::IS_RUN_NARROWED, Option::IS_CACHED_RUN, Option::SKIPPED_RECTOR_RULES, Option::SKIPPED_NON_RECTOR_CLASSES, Option::SKIPPED_START_WITH_SHORT_OPEN_TAG_FILES, Option::DEPRECATED_PHP_SETS_METHODS, Option::DEPRECATED_ATTRIBUTES_SETS_ARGS, Option::DEPRECATED_COMPOSER_BASED_ARGS, Option::LEVEL_OVERFLOWS, Option::CACHE_META_EXTENSIONS, Option::COMPOSER_BOUND_RULE_CONFIGURATIONS, Option::ROOT_STANDALONE_REGISTERED_RULES, Option::SET_REGISTERED_RULES]; + private const CACHE_IGNORED_PARAMETER_NAMES = [Option::SOURCE, Option::PARALLEL, Option::PARALLEL_JOB_SIZE, Option::PARALLEL_MAX_NUMBER_OF_PROCESSES, Option::PARALLEL_JOB_TIMEOUT_IN_SECONDS, Option::MEMORY_LIMIT, Option::NO_DIFFS, Option::CACHE_DIR, Option::CONTAINER_CACHE_DIRECTORY, Option::EDITOR_URL, Option::ABSOLUTE_FILE_PATH, Option::REPORT_UNUSED_SKIPS, Option::IS_RECTORCONFIG_BUILDER_RECREATED, Option::IS_RUN_NARROWED, Option::IS_CACHED_RUN, Option::SKIPPED_RECTOR_RULES, Option::SKIPPED_NON_RECTOR_CLASSES, Option::SKIPPED_START_WITH_SHORT_OPEN_TAG_FILES, Option::DEPRECATED_PHP_SETS_METHODS, Option::DEPRECATED_ATTRIBUTES_SETS_ARGS, Option::DEPRECATED_COMPOSER_BASED_ARGS, Option::LEVEL_OVERFLOWS, Option::CACHE_META_EXTENSIONS, Option::COMPOSER_BOUND_RULE_CONFIGURATIONS, Option::ROOT_STANDALONE_REGISTERED_RULES, Option::SET_REGISTERED_RULES]; /** * Parameters compared by direction instead of the strict hash: adding a rule/set or removing a * skip means more work and must drop the cache, while removing a rule/set or adding a skip is From a4db4b82fa7982f01ba52b5305b6d9d34335cc39 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 7 Sep 2026 09:01:33 +0000 Subject: [PATCH 141/169] Updated Rector to commit 1453e6d440b9f7fe5def85fc3bff7d225c3eee4b https://github.com/rectorphp/rector-src/commit/1453e6d440b9f7fe5def85fc3bff7d225c3eee4b [Parallel] Guard uninitialized encoder in ParallelProcess::quit() (#8461) --- src/Application/VersionResolver.php | 4 ++-- src/Parallel/ValueObject/ParallelProcess.php | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f9f35d5e50e..f2e99783cd2 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 = 'a8d84356b2646a094e8f7b4eaa8d5892a35d7869'; + public const PACKAGE_VERSION = '1453e6d440b9f7fe5def85fc3bff7d225c3eee4b'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-06 21:08:34'; + public const RELEASE_DATE = '2026-09-07 10:59:00'; /** * @var int */ diff --git a/src/Parallel/ValueObject/ParallelProcess.php b/src/Parallel/ValueObject/ParallelProcess.php index 8a5ce4f56d2..c577c5a34e6 100644 --- a/src/Parallel/ValueObject/ParallelProcess.php +++ b/src/Parallel/ValueObject/ParallelProcess.php @@ -104,7 +104,11 @@ public function quit(): void foreach ($this->process->pipes as $pipe) { $pipe->close(); } - $this->encoder->end(); + // the process can be quit before its connection is bound, e.g. on quitAll() after an error; + // in that case the encoder was never set + if (isset($this->encoder)) { + $this->encoder->end(); + } } public function bindConnection(Decoder $decoder, Encoder $encoder): void { From c5af9a7514ddffe009fd364c87f25dc62c989554 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 12:47:18 +0000 Subject: [PATCH 142/169] Updated Rector to commit 1453e6d440b9f7fe5def85fc3bff7d225c3eee4b --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- vendor/rector/extension-installer/src/GeneratedConfig.php | 2 +- .../FunctionLike/DowngradeNeverTypeDeclarationRector.php | 5 +++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 40bb67f28f3..853ec7d590b 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8" + "reference": "ad2e1bbf4290aecfa61ecc3426718caa1760321c" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8", - "reference": "1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/ad2e1bbf4290aecfa61ecc3426718caa1760321c", + "reference": "ad2e1bbf4290aecfa61ecc3426718caa1760321c", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-09-02T08:46:17+00:00", + "time": "2026-09-08T12:44:43+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 3f6975658ad..ca82b23c70d 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => '1beef93a7e2771e0d0fc42e6d1d22ecb9321e8e8', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 75064522941..2b752f5f054 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 1beef93'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradeNeverTypeDeclarationRector.php b/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradeNeverTypeDeclarationRector.php index 8ed739201e1..2dfa713495d 100644 --- a/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradeNeverTypeDeclarationRector.php +++ b/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradeNeverTypeDeclarationRector.php @@ -4,6 +4,7 @@ namespace Rector\DowngradePhp81\Rector\FunctionLike; use PhpParser\Node; +use PhpParser\Node\Expr\ArrowFunction; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Function_; @@ -32,7 +33,7 @@ public function __construct(PhpDocFromTypeDeclarationDecorator $phpDocFromTypeDe */ public function getNodeTypes(): array { - return [Function_::class, ClassMethod::class, Closure::class]; + return [Function_::class, ClassMethod::class, Closure::class, ArrowFunction::class]; } public function getRuleDefinition(): RuleDefinition { @@ -52,7 +53,7 @@ function someFunction() )]); } /** - * @param ClassMethod|Closure|Function_ $node + * @param ArrowFunction|ClassMethod|Closure|Function_ $node */ public function refactor(Node $node): ?Node { From 6f71e2baef9b14a9cb10bc11519ee8800a5eb7ae Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 15:18:27 +0000 Subject: [PATCH 143/169] Updated Rector to commit 1453e6d440b9f7fe5def85fc3bff7d225c3eee4b --- vendor/composer/installed.json | 8 +++--- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- ...pedPropertyFromToOneRelationTypeRector.php | 27 ++++++++++++++++++- ...eriaOrderingConstantsDeprecationRector.php | 3 ++- 5 files changed, 34 insertions(+), 8 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 853ec7d590b..4becb3dec29 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "b997d3fa0f1a131c206b16c7b9708f05ec0a27fd" + "reference": "344b4f7d180b18a84e77cfb8a3fc3b29638461d6" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/b997d3fa0f1a131c206b16c7b9708f05ec0a27fd", - "reference": "b997d3fa0f1a131c206b16c7b9708f05ec0a27fd", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/344b4f7d180b18a84e77cfb8a3fc3b29638461d6", + "reference": "344b4f7d180b18a84e77cfb8a3fc3b29638461d6", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-08-29T17:32:02+00:00", + "time": "2026-09-08T15:15:51+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index ca82b23c70d..c67756e438a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b997d3fa0f1a131c206b16c7b9708f05ec0a27fd', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '344b4f7d180b18a84e77cfb8a3fc3b29638461d6', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 2b752f5f054..596e0ce6d2b 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main b997d3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 344b4f7'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromToOneRelationTypeRector.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromToOneRelationTypeRector.php index d31e2edeaf8..3106e8b5eb8 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromToOneRelationTypeRector.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromToOneRelationTypeRector.php @@ -8,6 +8,7 @@ use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Property; +use PHPStan\Reflection\ClassReflection; use PHPStan\Type\MixedType; use PHPStan\Type\Type; use PHPStan\Type\UnionType; @@ -17,6 +18,7 @@ use Rector\Php\PhpVersionProvider; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Rector\AbstractRector; +use Rector\Reflection\ReflectionResolver; use Rector\StaticTypeMapper\StaticTypeMapper; use Rector\TypeDeclaration\NodeTypeAnalyzer\PropertyTypeDecorator; use Rector\ValueObject\PhpVersion; @@ -53,7 +55,11 @@ final class TypedPropertyFromToOneRelationTypeRector extends AbstractRector impl * @readonly */ private StaticTypeMapper $staticTypeMapper; - public function __construct(PropertyTypeDecorator $propertyTypeDecorator, PhpDocTypeChanger $phpDocTypeChanger, ToOneRelationPropertyTypeResolver $toOneRelationPropertyTypeResolver, PhpVersionProvider $phpVersionProvider, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper) + /** + * @readonly + */ + private ReflectionResolver $reflectionResolver; + public function __construct(PropertyTypeDecorator $propertyTypeDecorator, PhpDocTypeChanger $phpDocTypeChanger, ToOneRelationPropertyTypeResolver $toOneRelationPropertyTypeResolver, PhpVersionProvider $phpVersionProvider, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, ReflectionResolver $reflectionResolver) { $this->propertyTypeDecorator = $propertyTypeDecorator; $this->phpDocTypeChanger = $phpDocTypeChanger; @@ -61,6 +67,7 @@ public function __construct(PropertyTypeDecorator $propertyTypeDecorator, PhpDoc $this->phpVersionProvider = $phpVersionProvider; $this->phpDocInfoFactory = $phpDocInfoFactory; $this->staticTypeMapper = $staticTypeMapper; + $this->reflectionResolver = $reflectionResolver; } public function getRuleDefinition(): RuleDefinition { @@ -105,6 +112,11 @@ public function refactor(Node $node): ?\PhpParser\Node\Stmt\Property if ($node->type !== null) { return null; } + // avoid untyped parent property override, e.g. from a trait used in a parent class + $classReflection = $this->reflectionResolver->resolveClassReflection($node); + if ($classReflection instanceof ClassReflection && $this->hasUntypedParentProperty($classReflection, $node)) { + return null; + } $propertyType = $this->toOneRelationPropertyTypeResolver->resolve($node); if (!$propertyType instanceof Type) { return null; @@ -119,6 +131,19 @@ public function refactor(Node $node): ?\PhpParser\Node\Stmt\Property $this->completePropertyTypeOrVarDoc($propertyType, $typeNode, $node); return $node; } + private function hasUntypedParentProperty(ClassReflection $classReflection, Property $property): bool + { + $propertyName = $this->getName($property); + foreach ($classReflection->getParents() as $parentClassReflection) { + $nativeReflectionClass = $parentClassReflection->getNativeReflection(); + if (!$nativeReflectionClass->hasProperty($propertyName)) { + continue; + } + // typing the child while the parent property stays untyped is a fatal error + return $nativeReflectionClass->getProperty($propertyName)->getType() === null; + } + return \false; + } public function provideMinPhpVersion(): int { return PhpVersionFeature::TYPED_PROPERTIES; diff --git a/vendor/rector/rector-doctrine/rules/Collection22/Rector/CriteriaOrderingConstantsDeprecationRector.php b/vendor/rector/rector-doctrine/rules/Collection22/Rector/CriteriaOrderingConstantsDeprecationRector.php index b38bbb75174..1f57165e3f6 100644 --- a/vendor/rector/rector-doctrine/rules/Collection22/Rector/CriteriaOrderingConstantsDeprecationRector.php +++ b/vendor/rector/rector-doctrine/rules/Collection22/Rector/CriteriaOrderingConstantsDeprecationRector.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Doctrine\Collection22\Rector; +use PHPStan\Type\IsSuperTypeOfResult; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\ArrayItem; @@ -133,7 +134,7 @@ private function refactorMethodCall(MethodCall $methodCall): ?Node if ($item->value instanceof String_ && in_array($v = strtoupper($item->value->value), ['ASC', 'DESC'], \true)) { $newItems[] = $this->buildArrayItem($v, $item->key); $nodeHasChange = \true; - } elseif ($item->value instanceof ClassConstFetch && $item->value->class instanceof Name && $this->criteriaObjectType->isSuperTypeOf(new ObjectType($item->value->class->toString())) && $item->value->name instanceof Identifier && in_array($v = strtoupper((string) $item->value->name), ['ASC', 'DESC'], \true)) { + } elseif ($item->value instanceof ClassConstFetch && $item->value->class instanceof Name && $this->criteriaObjectType->isSuperTypeOf(new ObjectType($item->value->class->toString())) instanceof IsSuperTypeOfResult && $item->value->name instanceof Identifier && in_array($v = strtoupper((string) $item->value->name), ['ASC', 'DESC'], \true)) { $newItems[] = $this->buildArrayItem($v, $item->key); $nodeHasChange = \true; } else { From 5224b339bfc463eb934b17638b02b45c98453005 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 15:43:51 +0000 Subject: [PATCH 144/169] Updated Rector to commit 1453e6d440b9f7fe5def85fc3bff7d225c3eee4b --- vendor/composer/installed.json | 8 +++--- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../TypedPropertyFromColumnTypeRector.php | 27 ++++++++++++++++++- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 4becb3dec29..4babfc5571d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "344b4f7d180b18a84e77cfb8a3fc3b29638461d6" + "reference": "5d01d2c24c91803a26486141242c628354569782" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/344b4f7d180b18a84e77cfb8a3fc3b29638461d6", - "reference": "344b4f7d180b18a84e77cfb8a3fc3b29638461d6", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/5d01d2c24c91803a26486141242c628354569782", + "reference": "5d01d2c24c91803a26486141242c628354569782", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-09-08T15:15:51+00:00", + "time": "2026-09-08T15:41:16+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index c67756e438a..48e841641c8 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '344b4f7d180b18a84e77cfb8a3fc3b29638461d6', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '5d01d2c24c91803a26486141242c628354569782', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 596e0ce6d2b..d815a57d4bf 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 344b4f7'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 5d01d2c'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php index bae5a497b65..380bfdee9fe 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Stmt\Property; +use PHPStan\Reflection\ClassReflection; use PHPStan\Type\MixedType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; @@ -14,6 +15,7 @@ use Rector\Doctrine\NodeManipulator\NullabilityColumnPropertyTypeResolver; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Rector\AbstractRector; +use Rector\Reflection\ReflectionResolver; use Rector\StaticTypeMapper\StaticTypeMapper; use Rector\TypeDeclaration\NodeTypeAnalyzer\PropertyTypeDecorator; use Rector\ValueObject\PhpVersionFeature; @@ -45,13 +47,18 @@ final class TypedPropertyFromColumnTypeRector extends AbstractRector implements * @readonly */ private StaticTypeMapper $staticTypeMapper; - public function __construct(PropertyTypeDecorator $propertyTypeDecorator, ColumnPropertyTypeResolver $columnPropertyTypeResolver, NullabilityColumnPropertyTypeResolver $nullabilityColumnPropertyTypeResolver, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper) + /** + * @readonly + */ + private ReflectionResolver $reflectionResolver; + public function __construct(PropertyTypeDecorator $propertyTypeDecorator, ColumnPropertyTypeResolver $columnPropertyTypeResolver, NullabilityColumnPropertyTypeResolver $nullabilityColumnPropertyTypeResolver, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, ReflectionResolver $reflectionResolver) { $this->propertyTypeDecorator = $propertyTypeDecorator; $this->columnPropertyTypeResolver = $columnPropertyTypeResolver; $this->nullabilityColumnPropertyTypeResolver = $nullabilityColumnPropertyTypeResolver; $this->phpDocInfoFactory = $phpDocInfoFactory; $this->staticTypeMapper = $staticTypeMapper; + $this->reflectionResolver = $reflectionResolver; } public function getRuleDefinition(): RuleDefinition { @@ -94,6 +101,11 @@ public function refactor(Node $node): ?\PhpParser\Node\Stmt\Property if ($node->type !== null) { return null; } + // avoid untyped parent property override, that would be a fatal error + $classReflection = $this->reflectionResolver->resolveClassReflection($node); + if ($classReflection instanceof ClassReflection && $this->hasUntypedParentProperty($classReflection, $node)) { + return null; + } $isNullable = $this->nullabilityColumnPropertyTypeResolver->isNullable($node); $propertyType = $this->columnPropertyTypeResolver->resolve($node, $isNullable); if (!$propertyType instanceof Type || $propertyType instanceof MixedType) { @@ -115,6 +127,19 @@ public function refactor(Node $node): ?\PhpParser\Node\Stmt\Property $node->type = $typeNode; return $node; } + private function hasUntypedParentProperty(ClassReflection $classReflection, Property $property): bool + { + $propertyName = $this->getName($property); + foreach ($classReflection->getParents() as $parentClassReflection) { + $nativeReflectionClass = $parentClassReflection->getNativeReflection(); + if (!$nativeReflectionClass->hasProperty($propertyName)) { + continue; + } + // typing the child while the parent property stays untyped is a fatal error + return $nativeReflectionClass->getProperty($propertyName)->getType() === null; + } + return \false; + } public function provideMinPhpVersion(): int { return PhpVersionFeature::TYPED_PROPERTIES; From 2a6f4ad0129f3723b9db4501dd97375b9226022a Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 16:09:20 +0000 Subject: [PATCH 145/169] Updated Rector to commit 5ac25a8c840aa99a49942baebc84c0345f2ad20a https://github.com/rectorphp/rector-src/commit/5ac25a8c840aa99a49942baebc84c0345f2ad20a [CodeQuality] Add DirnameDirConcatStringToDirectStringPathRector to set, deprecate DynamicDocBlockPropertyToNativePropertyRector (#8470) --- .../NodeFactory/TypedPropertyFactory.php | 46 ----- ...DocBlockPropertyToNativePropertyRector.php | 166 +----------------- src/Application/VersionResolver.php | 4 +- src/Config/Level/CodeQualityLevel.php | 3 +- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_static.php | 1 - 6 files changed, 9 insertions(+), 212 deletions(-) delete mode 100644 rules/CodeQuality/NodeFactory/TypedPropertyFactory.php diff --git a/rules/CodeQuality/NodeFactory/TypedPropertyFactory.php b/rules/CodeQuality/NodeFactory/TypedPropertyFactory.php deleted file mode 100644 index 96467d01e40..00000000000 --- a/rules/CodeQuality/NodeFactory/TypedPropertyFactory.php +++ /dev/null @@ -1,46 +0,0 @@ -staticTypeMapper = $staticTypeMapper; - } - public function createFromPropertyTagValueNode(PropertyTagValueNode $propertyTagValueNode, Class_ $class, string $propertyName): Property - { - $propertyItem = new PropertyItem($propertyName); - $propertyTypeNode = $this->createPropertyTypeNode($propertyTagValueNode, $class); - return new Property(Modifiers::PRIVATE, [$propertyItem], [], $propertyTypeNode); - } - /** - * @return \PhpParser\Node\Name|\PhpParser\Node\ComplexType|\PhpParser\Node\Identifier|null - */ - public function createPropertyTypeNode(PropertyTagValueNode $propertyTagValueNode, Class_ $class, bool $isNullable = \true) - { - $propertyType = $this->staticTypeMapper->mapPHPStanPhpDocTypeNodeToPHPStanType($propertyTagValueNode->type, $class); - $typeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($propertyType, TypeKind::PROPERTY); - if ($isNullable && !$typeNode instanceof NullableType && !$typeNode instanceof ComplexType && $typeNode instanceof Node) { - return new NullableType($typeNode); - } - return $typeNode; - } -} diff --git a/rules/CodeQuality/Rector/Class_/DynamicDocBlockPropertyToNativePropertyRector.php b/rules/CodeQuality/Rector/Class_/DynamicDocBlockPropertyToNativePropertyRector.php index 089cac8c564..f3ce34d6d04 100644 --- a/rules/CodeQuality/Rector/Class_/DynamicDocBlockPropertyToNativePropertyRector.php +++ b/rules/CodeQuality/Rector/Class_/DynamicDocBlockPropertyToNativePropertyRector.php @@ -4,69 +4,17 @@ namespace Rector\CodeQuality\Rector\Class_; use PhpParser\Node; -use PhpParser\Node\Expr; use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\ClassMethod; -use PhpParser\Node\Stmt\Property; -use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; -use PHPStan\PhpDocParser\Ast\PhpDoc\PropertyTagValueNode; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover; -use Rector\CodeQuality\NodeFactory\TypedPropertyFactory; -use Rector\Comments\NodeDocBlock\DocBlockUpdater; -use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; -use Rector\PhpParser\Node\Value\ValueResolver; -use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; -use Rector\ValueObject\MethodName; -use Rector\ValueObject\PhpVersionFeature; -use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\CodeQuality\Rector\Class_\DynamicDocBlockPropertyToNativePropertyRector\DynamicDocBlockPropertyToNativePropertyRectorTest + * @deprecated This rule is deprecated, as a docblock "@property" is public by design, while the native property it created was "private" - the access level changed and could break code that relied on the public property. */ -final class DynamicDocBlockPropertyToNativePropertyRector extends AbstractRector implements MinPhpVersionInterface +final class DynamicDocBlockPropertyToNativePropertyRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private PhpAttributeAnalyzer $phpAttributeAnalyzer; - /** - * @readonly - */ - private PhpDocInfoFactory $phpDocInfoFactory; - /** - * @readonly - */ - private PhpDocTagRemover $phpDocTagRemover; - /** - * @readonly - */ - private DocBlockUpdater $docBlockUpdater; - /** - * @readonly - */ - private TypedPropertyFactory $typedPropertyFactory; - /** - * @readonly - */ - private TestsNodeAnalyzer $testsNodeAnalyzer; - /** - * @readonly - */ - private ValueResolver $valueResolver; - public function __construct(PhpAttributeAnalyzer $phpAttributeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, PhpDocTagRemover $phpDocTagRemover, DocBlockUpdater $docBlockUpdater, TypedPropertyFactory $typedPropertyFactory, TestsNodeAnalyzer $testsNodeAnalyzer, ValueResolver $valueResolver) - { - $this->phpAttributeAnalyzer = $phpAttributeAnalyzer; - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->phpDocTagRemover = $phpDocTagRemover; - $this->docBlockUpdater = $docBlockUpdater; - $this->typedPropertyFactory = $typedPropertyFactory; - $this->testsNodeAnalyzer = $testsNodeAnalyzer; - $this->valueResolver = $valueResolver; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Turn dynamic docblock properties on class with no parents to explicit ones', [new CodeSample(<<<'CODE_SAMPLE' @@ -107,110 +55,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if (!$this->phpAttributeAnalyzer->hasPhpAttribute($node, 'AllowDynamicProperties')) { - return null; - } - if ($this->shouldSkipClass($node)) { - return null; - } - // 2. add defined @property explicitly - $classPhpDocInfo = $this->phpDocInfoFactory->createFromNode($node); - if (!$classPhpDocInfo instanceof PhpDocInfo) { - return null; - } - $propertyPhpDocTagNodes = $classPhpDocInfo->getTagsByName('property'); - if ($propertyPhpDocTagNodes === []) { - return null; - } - // 1. remove dynamic attribute, most likely any - foreach ($node->attrGroups as $key => $attrGroup) { - foreach ($attrGroup->attrs as $attr) { - if ($attr->name->toString() === 'AllowDynamicProperties') { - unset($node->attrGroups[$key]); - continue 2; - } - } - } - $node->attrGroups = array_values($node->attrGroups); - $newProperties = $this->createNewPropertyFromPropertyTagValueNodes($propertyPhpDocTagNodes, $node); - // remove property tags - foreach ($propertyPhpDocTagNodes as $propertyPhpDocTagNode) { - // remove from docblock - $this->phpDocTagRemover->removeTagValueFromNode($classPhpDocInfo, $propertyPhpDocTagNode); - } - // merge new properties to start of the file - $node->stmts = array_merge($newProperties, $node->stmts); - // update doc info - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); - return $node; - } - public function provideMinPhpVersion(): int - { - return PhpVersionFeature::DEPRECATE_DYNAMIC_PROPERTIES; - } - /** - * @param PhpDocTagNode[] $propertyPhpDocTagNodes - * @return Property[] - */ - private function createNewPropertyFromPropertyTagValueNodes(array $propertyPhpDocTagNodes, Class_ $class): array - { - $newProperties = []; - foreach ($propertyPhpDocTagNodes as $propertyPhpDocTagNode) { - // add explicit native property - $propertyTagValueNode = $propertyPhpDocTagNode->value; - if (!$propertyTagValueNode instanceof PropertyTagValueNode) { - continue; - } - $propertyName = ltrim($propertyTagValueNode->propertyName, '$'); - if ($this->isPromotedProperty($class, $propertyName)) { - continue; - } - // is property already defined? - if ($class->getProperty($propertyName) instanceof Property) { - // improve existing one type if needed - $existingProperty = $class->getProperty($propertyName); - if ($existingProperty->type instanceof Node) { - continue; - } - $defaultValue = $existingProperty->props[0]->default; - $isNullable = $defaultValue instanceof Expr && $this->valueResolver->isNull($defaultValue); - $existingProperty->type = $this->typedPropertyFactory->createPropertyTypeNode($propertyTagValueNode, $class, $isNullable); - continue; - } - $newProperties[] = $this->typedPropertyFactory->createFromPropertyTagValueNode($propertyTagValueNode, $class, $propertyName); - } - return $newProperties; - } - private function shouldSkipClass(Class_ $class): bool - { - // skip magic - $getClassMethod = $class->getMethod('__get'); - if ($getClassMethod instanceof ClassMethod) { - return \true; - } - $setClassMethod = $class->getMethod('__set'); - if ($setClassMethod instanceof ClassMethod) { - return \true; - } - if (!$class->extends instanceof Node) { - return \false; - } - return !$this->testsNodeAnalyzer->isInTestClass($class); - } - private function isPromotedProperty(Class_ $class, string $propertyName): bool - { - $constructClassMethod = $class->getMethod(MethodName::CONSTRUCT); - if ($constructClassMethod instanceof ClassMethod) { - foreach ($constructClassMethod->params as $param) { - if (!$param->isPromoted()) { - continue; - } - $paramName = $this->getName($param); - if ($paramName === $propertyName) { - return \true; - } - } - } - return \false; + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as it turned a public "@property" into a private native property, changing the access level', self::class)); } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index f2e99783cd2..108ca7f2116 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 = '1453e6d440b9f7fe5def85fc3bff7d225c3eee4b'; + public const PACKAGE_VERSION = '5ac25a8c840aa99a49942baebc84c0345f2ad20a'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-07 10:59:00'; + public const RELEASE_DATE = '2026-09-08 18:06:52'; /** * @var int */ diff --git a/src/Config/Level/CodeQualityLevel.php b/src/Config/Level/CodeQualityLevel.php index cbb2f416bf4..a9fa3e466af 100644 --- a/src/Config/Level/CodeQualityLevel.php +++ b/src/Config/Level/CodeQualityLevel.php @@ -24,6 +24,7 @@ use Rector\CodeQuality\Rector\ClassMethod\InlineArrayReturnAssignRector; use Rector\CodeQuality\Rector\ClassMethod\LocallyCalledStaticMethodToNonStaticRector; use Rector\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector; +use Rector\CodeQuality\Rector\Concat\DirnameDirConcatStringToDirectStringPathRector; use Rector\CodeQuality\Rector\Empty_\SimplifyEmptyCheckOnEmptyArrayRector; use Rector\CodeQuality\Rector\Equal\UseIdenticalOverEqualWithSameTypeRector; use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector; @@ -103,7 +104,7 @@ final class CodeQualityLevel * * @var array> */ - public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ArrayExplicitBoolCompareRector::class, ObjectExplicitBoolCompareRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, InlineIfToExplicitIfRector::class, TernaryFalseExpressionToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class]; + public const RULES = [FixClassCaseSensitivityVarDocblockRector::class, CombinedAssignRector::class, NewArrayItemConcatAssignToAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ReplaceConstantBooleanNotRector::class, ForeachToInArrayRector::class, RepeatedOrEqualToInArrayRector::class, RepeatedAndNotEqualToNotInArrayRector::class, MoveInnerFunctionToTopLevelRector::class, InnerFunctionToPrivateMethodRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, TernaryConditionVariableAssignmentRector::class, SingleInArrayToCompareRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, UseIdenticalOverEqualWithSameTypeRector::class, BooleanNotIdenticalToNotIdenticalRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ArrayExplicitBoolCompareRector::class, ObjectExplicitBoolCompareRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, VariableConstFetchToClassConstFetchRector::class, SingularSwitchToIfRector::class, InlineIfToExplicitIfRector::class, TernaryFalseExpressionToIfRector::class, SwitchTrueToMatchRector::class, SimplifyIfNullableReturnRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, RemoveAlwaysElseRector::class, ChangeIfElseValueAssignToEarlyReturnRector::class, PreparedValueToEarlyReturnRector::class, ReturnEarlyIfVariableRector::class, InlineIsAInstanceOfRector::class, FlipNegatedTernaryInstanceofRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, CleanupUnneededNullsafeOperatorRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, SortAttributeNamedArgsRector::class, SafeDeclareStrictTypesRector::class, DirnameDirConcatStringToDirectStringPathRector::class]; /** * @var array, mixed[]> */ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 2202e7e9b14..c73b1844f22 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1049,7 +1049,6 @@ 'Rector\\CodeQuality\\NodeAnalyzer\\VariableDimFetchAssignResolver' => $baseDir . '/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php', 'Rector\\CodeQuality\\NodeFactory\\MissingPropertiesFactory' => $baseDir . '/rules/CodeQuality/NodeFactory/MissingPropertiesFactory.php', 'Rector\\CodeQuality\\NodeFactory\\PropertyTypeDecorator' => $baseDir . '/rules/CodeQuality/NodeFactory/PropertyTypeDecorator.php', - 'Rector\\CodeQuality\\NodeFactory\\TypedPropertyFactory' => $baseDir . '/rules/CodeQuality/NodeFactory/TypedPropertyFactory.php', 'Rector\\CodeQuality\\NodeManipulator\\ExprBoolCaster' => $baseDir . '/rules/CodeQuality/NodeManipulator/ExprBoolCaster.php', 'Rector\\CodeQuality\\NodeManipulator\\NamedArgsSorter' => $baseDir . '/rules/CodeQuality/NodeManipulator/NamedArgsSorter.php', 'Rector\\CodeQuality\\Rector\\AssignOp\\NewArrayItemConcatAssignToAssignRector' => $baseDir . '/rules/CodeQuality/Rector/AssignOp/NewArrayItemConcatAssignToAssignRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 4dd1d869542..17a73dca740 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1269,7 +1269,6 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\CodeQuality\\NodeAnalyzer\\VariableDimFetchAssignResolver' => __DIR__ . '/../..' . '/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php', 'Rector\\CodeQuality\\NodeFactory\\MissingPropertiesFactory' => __DIR__ . '/../..' . '/rules/CodeQuality/NodeFactory/MissingPropertiesFactory.php', 'Rector\\CodeQuality\\NodeFactory\\PropertyTypeDecorator' => __DIR__ . '/../..' . '/rules/CodeQuality/NodeFactory/PropertyTypeDecorator.php', - 'Rector\\CodeQuality\\NodeFactory\\TypedPropertyFactory' => __DIR__ . '/../..' . '/rules/CodeQuality/NodeFactory/TypedPropertyFactory.php', 'Rector\\CodeQuality\\NodeManipulator\\ExprBoolCaster' => __DIR__ . '/../..' . '/rules/CodeQuality/NodeManipulator/ExprBoolCaster.php', 'Rector\\CodeQuality\\NodeManipulator\\NamedArgsSorter' => __DIR__ . '/../..' . '/rules/CodeQuality/NodeManipulator/NamedArgsSorter.php', 'Rector\\CodeQuality\\Rector\\AssignOp\\NewArrayItemConcatAssignToAssignRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/AssignOp/NewArrayItemConcatAssignToAssignRector.php', From f3e974b2dd2867c7ee654886368bffe12bbd0aab Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 16:29:03 +0000 Subject: [PATCH 146/169] Updated Rector to commit 5ac25a8c840aa99a49942baebc84c0345f2ad20a --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../TypedPropertyFromColumnTypeRector.php | 19 +++++++++++++++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 4babfc5571d..7af51793bf3 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "5d01d2c24c91803a26486141242c628354569782" + "reference": "737829edaeb690dcdc3d4300021ef0056a4cf2fb" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/5d01d2c24c91803a26486141242c628354569782", - "reference": "5d01d2c24c91803a26486141242c628354569782", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/737829edaeb690dcdc3d4300021ef0056a4cf2fb", + "reference": "737829edaeb690dcdc3d4300021ef0056a4cf2fb", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-09-08T15:41:16+00:00", + "time": "2026-09-08T16:26:19+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 48e841641c8..4c4f91b5571 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '5d01d2c24c91803a26486141242c628354569782', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '737829edaeb690dcdc3d4300021ef0056a4cf2fb', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 d815a57d4bf..c43501f01e6 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 5d01d2c'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 737829e'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php index 380bfdee9fe..720c8ec6887 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php @@ -4,9 +4,13 @@ namespace Rector\Doctrine\CodeQuality\Rector\Property; use PhpParser\Node; +use PhpParser\Node\Scalar\Float_; +use PhpParser\Node\Scalar\Int_; +use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Property; use PHPStan\Reflection\ClassReflection; use PHPStan\Type\MixedType; +use PHPStan\Type\StringType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; use PHPStan\Type\UnionType; @@ -120,6 +124,8 @@ public function refactor(Node $node): ?\PhpParser\Node\Stmt\Property return null; } $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + // Doctrine "decimal"/"bigint" map to string; keep a numeric default valid as string, eg: 0 to '0' + $this->refactorNumericDefaultToString($node, $propertyType); if ($propertyType instanceof UnionType) { $this->propertyTypeDecorator->decoratePropertyUnionType($propertyType, $typeNode, $node, $phpDocInfo); return $node; @@ -127,6 +133,19 @@ public function refactor(Node $node): ?\PhpParser\Node\Stmt\Property $node->type = $typeNode; return $node; } + private function refactorNumericDefaultToString(Property $property, Type $propertyType): void + { + $bareType = TypeCombinator::removeNull($propertyType); + if (!$bareType instanceof StringType) { + return; + } + $propertyItem = $property->props[0]; + $default = $propertyItem->default; + if (!$default instanceof Int_ && !$default instanceof Float_) { + return; + } + $propertyItem->default = new String_((string) $default->value); + } private function hasUntypedParentProperty(ClassReflection $classReflection, Property $property): bool { $propertyName = $this->getName($property); From 6df8d24c3acfa0f4662bbabc580dacc395cb2e72 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 19:24:13 +0000 Subject: [PATCH 147/169] Updated Rector to commit 5ac25a8c840aa99a49942baebc84c0345f2ad20a --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../TypedPropertyFromColumnTypeRector.php | 20 ++++++++++++++++--- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 7af51793bf3..712908d361b 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1556,12 +1556,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "737829edaeb690dcdc3d4300021ef0056a4cf2fb" + "reference": "bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/737829edaeb690dcdc3d4300021ef0056a4cf2fb", - "reference": "737829edaeb690dcdc3d4300021ef0056a4cf2fb", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6", + "reference": "bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6", "shasum": "" }, "require": { @@ -1584,7 +1584,7 @@ "tomasvotruba\/type-coverage": "^2.3", "tracy\/tracy": "^2.12" }, - "time": "2026-09-08T16:26:19+00:00", + "time": "2026-09-08T19:21:34+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 4c4f91b5571..b7ee8277594 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '737829edaeb690dcdc3d4300021ef0056a4cf2fb', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 c43501f01e6..bb161c5ae4f 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 737829e'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php index 720c8ec6887..0cd1aeb8d63 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php @@ -17,6 +17,7 @@ use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Doctrine\NodeManipulator\ColumnPropertyTypeResolver; use Rector\Doctrine\NodeManipulator\NullabilityColumnPropertyTypeResolver; +use Rector\PhpParser\Node\Value\ValueResolver; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Rector\AbstractRector; use Rector\Reflection\ReflectionResolver; @@ -55,7 +56,11 @@ final class TypedPropertyFromColumnTypeRector extends AbstractRector implements * @readonly */ private ReflectionResolver $reflectionResolver; - public function __construct(PropertyTypeDecorator $propertyTypeDecorator, ColumnPropertyTypeResolver $columnPropertyTypeResolver, NullabilityColumnPropertyTypeResolver $nullabilityColumnPropertyTypeResolver, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, ReflectionResolver $reflectionResolver) + /** + * @readonly + */ + private ValueResolver $valueResolver; + public function __construct(PropertyTypeDecorator $propertyTypeDecorator, ColumnPropertyTypeResolver $columnPropertyTypeResolver, NullabilityColumnPropertyTypeResolver $nullabilityColumnPropertyTypeResolver, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, ReflectionResolver $reflectionResolver, ValueResolver $valueResolver) { $this->propertyTypeDecorator = $propertyTypeDecorator; $this->columnPropertyTypeResolver = $columnPropertyTypeResolver; @@ -63,6 +68,7 @@ public function __construct(PropertyTypeDecorator $propertyTypeDecorator, Column $this->phpDocInfoFactory = $phpDocInfoFactory; $this->staticTypeMapper = $staticTypeMapper; $this->reflectionResolver = $reflectionResolver; + $this->valueResolver = $valueResolver; } public function getRuleDefinition(): RuleDefinition { @@ -115,8 +121,8 @@ public function refactor(Node $node): ?\PhpParser\Node\Stmt\Property if (!$propertyType instanceof Type || $propertyType instanceof MixedType) { return null; } - // add default null if missing - if ($isNullable && !TypeCombinator::containsNull($propertyType)) { + // a null default forces a nullable type, regardless of the column nullability + if (($isNullable || $this->hasNullDefault($node)) && !TypeCombinator::containsNull($propertyType)) { $propertyType = TypeCombinator::addNull($propertyType); } $typeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($propertyType, TypeKind::PROPERTY); @@ -146,6 +152,14 @@ private function refactorNumericDefaultToString(Property $property, Type $proper } $propertyItem->default = new String_((string) $default->value); } + private function hasNullDefault(Property $property): bool + { + $default = $property->props[0]->default; + if ($default === null) { + return \false; + } + return $this->valueResolver->isNull($default); + } private function hasUntypedParentProperty(ClassReflection $classReflection, Property $property): bool { $propertyName = $this->getName($property); From ea7d5728180cbafa76daf10ae74290b6df9bdae3 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 19:27:55 +0000 Subject: [PATCH 148/169] Updated Rector to commit 96e88e1cde5ce25490b171d495eea71a80e7d8e9 https://github.com/rectorphp/rector-src/commit/96e88e1cde5ce25490b171d495eea71a80e7d8e9 [Unambiguous] Deprecate FluentSettersToStandaloneCallMethodRector and RemoveReturnThisFromSetterClassMethodRector (#8473) --- .../ClassMethodAndPropertyAnalyzer.php | 21 ---- .../FluentMethodCallsCollector.php | 54 ---------- ...eReturnThisFromSetterClassMethodRector.php | 52 +-------- ...entSettersToStandaloneCallMethodRector.php | 102 +----------------- src/Application/VersionResolver.php | 4 +- vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_static.php | 1 - 7 files changed, 12 insertions(+), 223 deletions(-) delete mode 100644 rules/Unambiguous/NodeAnalyzer/FluentMethodCallsCollector.php diff --git a/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php b/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php index b71e5012356..015fe6b032b 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php +++ b/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php @@ -5,7 +5,6 @@ use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\PropertyFetch; -use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Expression; @@ -46,26 +45,6 @@ public function hasOnlyPropertyAssign(ClassMethod $classMethod, string $property $onlyClassMethodStmt = $stmts[0]; return $this->isLocalPropertyVariableAssign($onlyClassMethodStmt, $propertyName); } - public function hasPropertyAssignWithReturnThis(ClassMethod $classMethod): bool - { - $stmts = (array) $classMethod->stmts; - if (count($stmts) !== 2) { - return \false; - } - $possibleAssignStmt = $stmts[0]; - $possibleReturnThis = $stmts[1]; - if (!$this->isLocalPropertyVariableAssign($possibleAssignStmt, null)) { - return \false; - } - if (!$possibleReturnThis instanceof Return_) { - return \false; - } - $returnExpr = $possibleReturnThis->expr; - if (!$returnExpr instanceof Variable) { - return \false; - } - return $this->nodeNameResolver->isName($returnExpr, 'this'); - } private function isLocalPropertyVariableAssign(Stmt $onlyClassMethodStmt, ?string $propertyName): bool { if (!$onlyClassMethodStmt instanceof Expression) { diff --git a/rules/Unambiguous/NodeAnalyzer/FluentMethodCallsCollector.php b/rules/Unambiguous/NodeAnalyzer/FluentMethodCallsCollector.php deleted file mode 100644 index 2817a1b1506..00000000000 --- a/rules/Unambiguous/NodeAnalyzer/FluentMethodCallsCollector.php +++ /dev/null @@ -1,54 +0,0 @@ -nodeTypeResolver = $nodeTypeResolver; - } - /** - * @return MethodCall[] - */ - public function resolve(MethodCall $firstMethodCall): array - { - // must be nested method call, so we avoid only single one - if (!$firstMethodCall->var instanceof MethodCall) { - return []; - } - /** @var MethodCall[] $methodCalls */ - $methodCalls = []; - $currentMethodCall = $firstMethodCall; - $classNameObjectType = null; - while ($currentMethodCall instanceof MethodCall) { - if ($currentMethodCall->isFirstClassCallable()) { - return []; - } - // must be exactly one argument - if (count($currentMethodCall->getArgs()) !== 1) { - return []; - } - $objectType = $this->nodeTypeResolver->getType($currentMethodCall->var); - if (!$objectType instanceof ObjectType) { - return []; - } - if ($classNameObjectType === null) { - $classNameObjectType = $objectType->getClassName(); - } elseif ($classNameObjectType !== $objectType->getClassName()) { - return []; - } - $methodCalls[] = $currentMethodCall; - $currentMethodCall = $currentMethodCall->var; - } - return $methodCalls; - } -} diff --git a/rules/Unambiguous/Rector/Class_/RemoveReturnThisFromSetterClassMethodRector.php b/rules/Unambiguous/Rector/Class_/RemoveReturnThisFromSetterClassMethodRector.php index cabd499c6a7..be571642516 100644 --- a/rules/Unambiguous/Rector/Class_/RemoveReturnThisFromSetterClassMethodRector.php +++ b/rules/Unambiguous/Rector/Class_/RemoveReturnThisFromSetterClassMethodRector.php @@ -4,27 +4,17 @@ namespace Rector\Unambiguous\Rector\Class_; use PhpParser\Node; -use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\Class_; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; -use Rector\TypeDeclaration\NodeAnalyzer\ClassMethodAndPropertyAnalyzer; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @experimental since 2025-11 - * - * @see \Rector\Tests\Unambiguous\Rector\Class_\RemoveReturnThisFromSetterClassMethodRector\RemoveReturnThisFromSetterClassMethodRectorTest + * @deprecated This rule is deprecated, as removing "return $this" from a setter needs a more complex approach that depends on the use case - the setter may be part of a fluent public API that callers rely on. */ -final class RemoveReturnThisFromSetterClassMethodRector extends AbstractRector +final class RemoveReturnThisFromSetterClassMethodRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private ClassMethodAndPropertyAnalyzer $classMethodAndPropertyAnalyzer; - public function __construct(ClassMethodAndPropertyAnalyzer $classMethodAndPropertyAnalyzer) - { - $this->classMethodAndPropertyAnalyzer = $classMethodAndPropertyAnalyzer; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Remove return $this from setter method, to make explicit setter without return value. Goal is to make code unambiguous with one way to set value', [new CodeSample(<<<'CODE_SAMPLE' @@ -64,38 +54,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Class_ { - $hasChanged = \false; - foreach ($node->getMethods() as $classMethod) { - if ($classMethod->isMagic()) { - continue; - } - // skip void return type - if ($classMethod->returnType instanceof Identifier && $this->isName($classMethod->returnType, 'void')) { - continue; - } - if (count($classMethod->params) !== 1) { - continue; - } - $soleParam = $classMethod->params[0]; - // magic spread - if ($soleParam->variadic) { - continue; - } - $paramName = $this->getName($soleParam->var); - if (!is_string($paramName)) { - continue; - } - if (!$this->classMethodAndPropertyAnalyzer->hasPropertyAssignWithReturnThis($classMethod)) { - continue; - } - // remove 2nd stmts, that is "return $this;" - unset($classMethod->stmts[1]); - $classMethod->returnType = new Identifier('void'); - $hasChanged = \true; - } - if (!$hasChanged) { - return null; - } - return $node; + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as removing "return $this" from a setter needs a more complex approach that depends on the use case', self::class)); } } diff --git a/rules/Unambiguous/Rector/Expression/FluentSettersToStandaloneCallMethodRector.php b/rules/Unambiguous/Rector/Expression/FluentSettersToStandaloneCallMethodRector.php index ffe9505b686..b9b171cec4c 100644 --- a/rules/Unambiguous/Rector/Expression/FluentSettersToStandaloneCallMethodRector.php +++ b/rules/Unambiguous/Rector/Expression/FluentSettersToStandaloneCallMethodRector.php @@ -4,43 +4,18 @@ namespace Rector\Unambiguous\Rector\Expression; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\MethodCall; -use PhpParser\Node\Expr\New_; -use PhpParser\Node\Expr\Variable; -use PhpParser\Node\Name; -use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; -use PHPStan\Reflection\ClassReflection; -use PHPStan\Type\ObjectType; -use Rector\Naming\Naming\PropertyNaming; -use Rector\NodeTypeResolver\Node\AttributeKey; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; -use Rector\Unambiguous\NodeAnalyzer\FluentMethodCallsCollector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @experimental since 2025-11 - * - * @see \Rector\Tests\Unambiguous\Rector\Expression\FluentSettersToStandaloneCallMethodRector\FluentSettersToStandaloneCallMethodRectorTest + * @deprecated This rule is deprecated, as breaking a fluent setter chain into standalone calls needs a more complex approach that depends on the use case - the safe transformation differs per method return semantics. */ -final class FluentSettersToStandaloneCallMethodRector extends AbstractRector +final class FluentSettersToStandaloneCallMethodRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private PropertyNaming $propertyNaming; - /** - * @readonly - */ - private FluentMethodCallsCollector $fluentMethodCallsCollector; - public function __construct(PropertyNaming $propertyNaming, FluentMethodCallsCollector $fluentMethodCallsCollector) - { - $this->propertyNaming = $propertyNaming; - $this->fluentMethodCallsCollector = $fluentMethodCallsCollector; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Change fluent setter chain calls, to standalone line of setters', [new CodeSample(<<<'CODE_SAMPLE' @@ -81,73 +56,6 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?array { - if (!$node->expr instanceof MethodCall) { - return null; - } - $methodCalls = $this->fluentMethodCallsCollector->resolve($node->expr); - // at least 2 method calls - if (count($methodCalls) < 1) { - return null; - } - $lastMethodCall = end($methodCalls); - $rootExpr = $lastMethodCall->var; - if (!$rootExpr instanceof New_) { - return null; - } - if ($this->shouldSkipForVendorOrInternal($node->expr)) { - return null; - } - $variableName = $this->resolveVariableName($rootExpr); - $someVariable = new Variable($variableName); - $firstAssign = new Assign($someVariable, $rootExpr); - return $this->createStmts($firstAssign, $methodCalls, $someVariable, $node); - } - private function resolveVariableName(Expr $expr): string - { - if (!$expr instanceof New_) { - return 'someVariable'; - } - if ($expr->class instanceof Name) { - return $this->propertyNaming->fqnToVariableName($expr->class); - } - return 'someVariable'; - } - private function shouldSkipForVendorOrInternal(MethodCall $firstMethodCall): bool - { - $callerType = $this->getType($firstMethodCall); - if ($callerType instanceof ObjectType) { - $classReflection = $callerType->getClassReflection(); - if (!$classReflection instanceof ClassReflection) { - return \false; - } - $fileName = $classReflection->getFileName(); - if ($fileName === null || strpos($fileName, 'vendor') !== \false) { - return \true; - } - } - return \false; - } - /** - * @param MethodCall[] $methodCalls - * @return Stmt[] - * @param \PhpParser\Node\Stmt\Expression|\PhpParser\Node\Stmt\Return_ $firstStmt - */ - private function createStmts(Assign $firstAssign, array $methodCalls, Variable $someVariable, $firstStmt): array - { - $stmts = [new Expression($firstAssign)]; - // revert to normal order - $methodCalls = array_reverse($methodCalls); - foreach ($methodCalls as $methodCall) { - $methodCall->var = $someVariable; - // inlines indent and removes () around first expr - $methodCall->setAttribute(AttributeKey::ORIGINAL_NODE, null); - $stmts[] = new Expression($methodCall); - } - if ($firstStmt instanceof Return_) { - $firstStmt->expr = $someVariable; - $stmts[] = $firstStmt; - } - $firstStmt->expr = $someVariable; - return $stmts; + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as breaking a fluent setter chain needs a more complex approach that depends on the use case', self::class)); } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 108ca7f2116..fdb927d2c1f 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 = '5ac25a8c840aa99a49942baebc84c0345f2ad20a'; + public const PACKAGE_VERSION = '96e88e1cde5ce25490b171d495eea71a80e7d8e9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-08 18:06:52'; + public const RELEASE_DATE = '2026-09-08 21:25:31'; /** * @var int */ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index c73b1844f22..3df29b1f0a1 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2790,7 +2790,6 @@ 'Rector\\TypeDeclaration\\ValueObject\\AddReturnTypeDeclaration' => $baseDir . '/rules/TypeDeclaration/ValueObject/AddReturnTypeDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AssignToVariable' => $baseDir . '/rules/TypeDeclaration/ValueObject/AssignToVariable.php', 'Rector\\TypeDeclaration\\ValueObject\\DataProviderNodes' => $baseDir . '/rules/TypeDeclaration/ValueObject/DataProviderNodes.php', - 'Rector\\Unambiguous\\NodeAnalyzer\\FluentMethodCallsCollector' => $baseDir . '/rules/Unambiguous/NodeAnalyzer/FluentMethodCallsCollector.php', 'Rector\\Unambiguous\\Rector\\Class_\\RemoveReturnThisFromSetterClassMethodRector' => $baseDir . '/rules/Unambiguous/Rector/Class_/RemoveReturnThisFromSetterClassMethodRector.php', 'Rector\\Unambiguous\\Rector\\Expression\\FluentSettersToStandaloneCallMethodRector' => $baseDir . '/rules/Unambiguous/Rector/Expression/FluentSettersToStandaloneCallMethodRector.php', 'Rector\\Util\\ArrayChecker' => $baseDir . '/src/Util/ArrayChecker.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 17a73dca740..d7e4ca072f4 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -3010,7 +3010,6 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\TypeDeclaration\\ValueObject\\AddReturnTypeDeclaration' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/AddReturnTypeDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AssignToVariable' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/AssignToVariable.php', 'Rector\\TypeDeclaration\\ValueObject\\DataProviderNodes' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/DataProviderNodes.php', - 'Rector\\Unambiguous\\NodeAnalyzer\\FluentMethodCallsCollector' => __DIR__ . '/../..' . '/rules/Unambiguous/NodeAnalyzer/FluentMethodCallsCollector.php', 'Rector\\Unambiguous\\Rector\\Class_\\RemoveReturnThisFromSetterClassMethodRector' => __DIR__ . '/../..' . '/rules/Unambiguous/Rector/Class_/RemoveReturnThisFromSetterClassMethodRector.php', 'Rector\\Unambiguous\\Rector\\Expression\\FluentSettersToStandaloneCallMethodRector' => __DIR__ . '/../..' . '/rules/Unambiguous/Rector/Expression/FluentSettersToStandaloneCallMethodRector.php', 'Rector\\Util\\ArrayChecker' => __DIR__ . '/../..' . '/src/Util/ArrayChecker.php', From 01d68b8ab0836017f4657a9ba537cc08d997a452 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 19:41:02 +0000 Subject: [PATCH 149/169] Updated Rector to commit 1d80900dab1fcf9fe84f89252cee42a90f369cc5 https://github.com/rectorphp/rector-src/commit/1d80900dab1fcf9fe84f89252cee42a90f369cc5 cs --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index fdb927d2c1f..ea08a92ca0f 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 = '96e88e1cde5ce25490b171d495eea71a80e7d8e9'; + public const PACKAGE_VERSION = '1d80900dab1fcf9fe84f89252cee42a90f369cc5'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-08 21:25:31'; + public const RELEASE_DATE = '2026-09-08 21:38:28'; /** * @var int */ From 1c0a42bb1eef7f819aa132a8ba30307ec8504670 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 20:02:07 +0000 Subject: [PATCH 150/169] Updated Rector to commit c55c4aeebee96ac770e8e516f325f7065ffdfc02 https://github.com/rectorphp/rector-src/commit/c55c4aeebee96ac770e8e516f325f7065ffdfc02 [TypeDeclarationDocblocks] Widen empty nested array default to mixed[] in DocblockVarArrayFromPropertyDefaultsRector (#8474) --- ...lockVarArrayFromPropertyDefaultsRector.php | 23 ------------------- src/Application/VersionResolver.php | 4 ++-- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php index f75ee8b6f2b..20c4bb1fafe 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php @@ -5,7 +5,6 @@ use PhpParser\Comment\Doc; use PhpParser\Node; -use PhpParser\Node\ArrayItem; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Identifier; use PhpParser\Node\PropertyItem; @@ -92,10 +91,6 @@ public function refactor(Node $node): ?Node if (!$soleProperty->default instanceof Array_) { continue; } - // an empty nested array default generalizes to never[], which then rejects every real value assigned later - if ($this->hasEmptyNestedArray($soleProperty->default)) { - continue; - } $propertyDefaultType = $this->getType($soleProperty->default); $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); // type is already known @@ -114,24 +109,6 @@ public function refactor(Node $node): ?Node } return $node; } - private function hasEmptyNestedArray(Array_ $array): bool - { - foreach ($array->items as $arrayItem) { - if (!$arrayItem instanceof ArrayItem) { - continue; - } - if (!$arrayItem->value instanceof Array_) { - continue; - } - if ($arrayItem->value->items === []) { - return \true; - } - if ($this->hasEmptyNestedArray($arrayItem->value)) { - return \true; - } - } - return \false; - } private function hasUsefulParentPropertyVarTag(Class_ $class, Property $property, Type $propertyDefaultType): bool { $propertyName = $this->getName($property); diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index ea08a92ca0f..6de20eff8fc 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 = '1d80900dab1fcf9fe84f89252cee42a90f369cc5'; + public const PACKAGE_VERSION = 'c55c4aeebee96ac770e8e516f325f7065ffdfc02'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-08 21:38:28'; + public const RELEASE_DATE = '2026-09-08 21:59:28'; /** * @var int */ From cd16806d90ac74c9d13f7fe23ae83351df76a811 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2026 20:32:15 +0000 Subject: [PATCH 151/169] Updated Rector to commit 63a2f160d277cee79e1e0762be505d2cdb55da7d https://github.com/rectorphp/rector-src/commit/63a2f160d277cee79e1e0762be505d2cdb55da7d [Arguments] Fix ReplaceArgumentDefaultValueRector re-applying already-migrated imported class constant (#8475) --- rules/Arguments/ArgumentDefaultValueReplacer.php | 2 +- .../Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php | 4 ++-- src/Application/VersionResolver.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rules/Arguments/ArgumentDefaultValueReplacer.php b/rules/Arguments/ArgumentDefaultValueReplacer.php index ab67f5ae122..7d856748340 100644 --- a/rules/Arguments/ArgumentDefaultValueReplacer.php +++ b/rules/Arguments/ArgumentDefaultValueReplacer.php @@ -149,7 +149,7 @@ private function processArgs($expr, ReplaceArgumentDefaultValueInterface $replac $argValue = $this->valueResolver->getValue($particularArg->value); if (is_scalar($replaceArgumentDefaultValue->getValueBefore()) && $argValue === $replaceArgumentDefaultValue->getValueBefore()) { $normalizedValueAfter = $this->normalizeValue($replaceArgumentDefaultValue->getValueAfter()); - if ($particularArg->value instanceof ClassConstFetch && $particularArg->value->class instanceof Name && $particularArg->value->class->isSpecialClassName() && $normalizedValueAfter instanceof ClassConstFetch && is_string($replaceArgumentDefaultValue->getValueAfter()) && strpos($replaceArgumentDefaultValue->getValueAfter(), '::') !== \false) { + if ($particularArg->value instanceof ClassConstFetch && $particularArg->value->class instanceof Name && $normalizedValueAfter instanceof ClassConstFetch && is_string($replaceArgumentDefaultValue->getValueAfter()) && strpos($replaceArgumentDefaultValue->getValueAfter(), '::') !== \false) { [$targetClass, $targetConstant] = explode('::', $replaceArgumentDefaultValue->getValueAfter()); $type = $this->nodeTypeResolver->getType($particularArg->value->class); if ($type instanceof FullyQualifiedObjectType && $type->getClassName() === $targetClass && $particularArg->value->name instanceof Identifier && $particularArg->value->name->toString() === $targetConstant) { diff --git a/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php b/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php index 7f11d090d5a..3a74d30bb60 100644 --- a/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php +++ b/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php @@ -76,7 +76,7 @@ public function refactor(Node $node) continue; } $replacedNode = $this->argumentDefaultValueReplacer->processReplaces($currentNode, $replaceArgumentDefaultValue); - if ($replacedNode !== null && $replacedNode !== $currentNode) { + if ($replacedNode !== null) { $currentNode = $replacedNode; $hasChanged = \true; } @@ -103,7 +103,7 @@ private function refactorNew(New_ $new): ?New_ continue; } $replacedNode = $this->argumentDefaultValueReplacer->processReplaces($currentNode, $replaceArgumentDefaultValue); - if ($replacedNode !== null && $replacedNode !== $currentNode) { + if ($replacedNode !== null) { $currentNode = $replacedNode; $hasChanged = \true; } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 6de20eff8fc..4cb03e606c2 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 = 'c55c4aeebee96ac770e8e516f325f7065ffdfc02'; + public const PACKAGE_VERSION = '63a2f160d277cee79e1e0762be505d2cdb55da7d'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-08 21:59:28'; + public const RELEASE_DATE = '2026-09-08 22:29:46'; /** * @var int */ From dc1c0c09706cef81dce4ca4fd64766f7467dcb1d Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 9 Sep 2026 07:27:45 +0000 Subject: [PATCH 152/169] Updated Rector to commit d20c8cfa62ef3dbecdf9fda863acb469d74cd300 https://github.com/rectorphp/rector-src/commit/d20c8cfa62ef3dbecdf9fda863acb469d74cd300 Do not let a trailing comment or an infinite loop hide a terminated block (#8476) --- src/Application/VersionResolver.php | 4 ++-- src/NodeAnalyzer/TerminatedNodeAnalyzer.php | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 4cb03e606c2..7f19a1c7215 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 = '63a2f160d277cee79e1e0762be505d2cdb55da7d'; + public const PACKAGE_VERSION = 'd20c8cfa62ef3dbecdf9fda863acb469d74cd300'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-08 22:29:46'; + public const RELEASE_DATE = '2026-09-09 09:25:30'; /** * @var int */ diff --git a/src/NodeAnalyzer/TerminatedNodeAnalyzer.php b/src/NodeAnalyzer/TerminatedNodeAnalyzer.php index 113b02726b3..d7a77cc8253 100644 --- a/src/NodeAnalyzer/TerminatedNodeAnalyzer.php +++ b/src/NodeAnalyzer/TerminatedNodeAnalyzer.php @@ -228,11 +228,21 @@ private function isTerminatedInLastStmtsIf(If_ $if): bool */ private function isTerminatedInLastStmts(array $stmts): bool { + // a trailing comment is parsed as a Nop, which executes nothing and so + // must not hide the terminating stmt in front of it + while ($stmts !== [] && end($stmts) instanceof Nop) { + array_pop($stmts); + } if ($stmts === []) { return \false; } $lastKey = array_key_last($stmts); $lastNode = $stmts[$lastKey]; + // an infinite loop with no break terminates its block as surely as a + // return does, the same way isAlwaysTerminated() reads it one level up + if ($lastNode instanceof While_ || $lastNode instanceof Do_ || $lastNode instanceof For_) { + return $this->isTerminatedInfiniteLoop($lastNode); + } if ($lastNode instanceof Expression) { return $lastNode->expr instanceof Exit_ || $lastNode->expr instanceof Throw_; } From 2467f0b51f4ef3fa3b69b1f32658424af1406121 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 9 Sep 2026 07:55:21 +0000 Subject: [PATCH 153/169] Updated Rector to commit f5ec53a12484d167ae0d667baa86ed6d3f18b8d4 https://github.com/rectorphp/rector-src/commit/f5ec53a12484d167ae0d667baa86ed6d3f18b8d4 [Php70] Deprecate ListSwapArrayOrderRector, can turn valid code into broken code (#8477) --- config/set/php-version-based.php | 2 - config/set/php70.php | 3 +- .../Assign/ListSwapArrayOrderRector.php | 53 ++----------------- src/Application/VersionResolver.php | 4 +- .../Printer/BetterStandardPrinter.php | 2 +- 5 files changed, 9 insertions(+), 55 deletions(-) diff --git a/config/set/php-version-based.php b/config/set/php-version-based.php index b3f6a4dc7b5..42527689423 100644 --- a/config/set/php-version-based.php +++ b/config/set/php-version-based.php @@ -35,7 +35,6 @@ use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector; use Rector\Php56\Rector\FuncCall\PowToExpRector; use Rector\Php70\Rector\Assign\ListSplitStringRector; -use Rector\Php70\Rector\Assign\ListSwapArrayOrderRector; use Rector\Php70\Rector\Break_\BreakNotInLoopOrSwitchToReturnRector; use Rector\Php70\Rector\ClassMethod\Php4ConstructorRector; use Rector\Php70\Rector\FuncCall\CallUserMethodRector; @@ -190,7 +189,6 @@ MultiDirnameRector::class, ListSplitStringRector::class, EmptyListRector::class, - ListSwapArrayOrderRector::class, CallUserMethodRector::class, EregToPregMatchRector::class, ReduceMultipleDefaultSwitchRector::class, diff --git a/config/set/php70.php b/config/set/php70.php index 7144d951e52..ddbd14759a3 100644 --- a/config/set/php70.php +++ b/config/set/php70.php @@ -5,7 +5,6 @@ use Rector\Config\RectorConfig; use Rector\Php70\Rector\Assign\ListSplitStringRector; -use Rector\Php70\Rector\Assign\ListSwapArrayOrderRector; use Rector\Php70\Rector\Break_\BreakNotInLoopOrSwitchToReturnRector; use Rector\Php70\Rector\ClassMethod\Php4ConstructorRector; use Rector\Php70\Rector\FuncCall\CallUserMethodRector; @@ -23,5 +22,5 @@ use Rector\Php70\Rector\Ternary\TernaryToSpaceshipRector; use Rector\Php70\Rector\Variable\WrapVariableVariableNameInCurlyBracesRector; return static function (RectorConfig $rectorConfig): void { - $rectorConfig->rules([Php4ConstructorRector::class, TernaryToNullCoalescingRector::class, RandomFunctionRector::class, ExceptionHandlerTypehintRector::class, MultiDirnameRector::class, ListSplitStringRector::class, EmptyListRector::class, ListSwapArrayOrderRector::class, CallUserMethodRector::class, EregToPregMatchRector::class, ReduceMultipleDefaultSwitchRector::class, TernaryToSpaceshipRector::class, WrapVariableVariableNameInCurlyBracesRector::class, IfToSpaceshipRector::class, ThisCallOnStaticMethodToStaticCallRector::class, BreakNotInLoopOrSwitchToReturnRector::class, RenameMktimeWithoutArgsToTimeRector::class, IfIssetToCoalescingRector::class]); + $rectorConfig->rules([Php4ConstructorRector::class, TernaryToNullCoalescingRector::class, RandomFunctionRector::class, ExceptionHandlerTypehintRector::class, MultiDirnameRector::class, ListSplitStringRector::class, EmptyListRector::class, CallUserMethodRector::class, EregToPregMatchRector::class, ReduceMultipleDefaultSwitchRector::class, TernaryToSpaceshipRector::class, WrapVariableVariableNameInCurlyBracesRector::class, IfToSpaceshipRector::class, ThisCallOnStaticMethodToStaticCallRector::class, BreakNotInLoopOrSwitchToReturnRector::class, RenameMktimeWithoutArgsToTimeRector::class, IfIssetToCoalescingRector::class]); }; diff --git a/rules/Php70/Rector/Assign/ListSwapArrayOrderRector.php b/rules/Php70/Rector/Assign/ListSwapArrayOrderRector.php index e22359e29cf..2b0c896cd78 100644 --- a/rules/Php70/Rector/Assign/ListSwapArrayOrderRector.php +++ b/rules/Php70/Rector/Assign/ListSwapArrayOrderRector.php @@ -4,31 +4,19 @@ namespace Rector\Php70\Rector\Assign; use PhpParser\Node; -use PhpParser\Node\ArrayItem; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\FuncCall; -use PhpParser\Node\Expr\List_; -use Rector\PhpParser\Printer\BetterStandardPrinter; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\Php70\Rector\Assign\ListSwapArrayOrderRector\ListSwapArrayOrderRectorTest + * @deprecated This rule is deprecated, as it can turn valid code into broken code. The reverse assign order only matters for the same array variable, but the rule cannot reliably tell apart independent assigns, so wrapping with array_reverse() can change correct behavior. */ -final class ListSwapArrayOrderRector extends AbstractRector implements MinPhpVersionInterface +final class ListSwapArrayOrderRector extends AbstractRector implements MinPhpVersionInterface, DeprecatedInterface { - /** - * @readonly - */ - private BetterStandardPrinter $betterStandardPrinter; - public function __construct(BetterStandardPrinter $betterStandardPrinter) - { - $this->betterStandardPrinter = $betterStandardPrinter; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('list() assigns variables in reverse order - relevant in array assign', [new CodeSample('list($a[], $a[]) = [1, 2];', 'list($a[], $a[]) = array_reverse([1, 2]);')]); @@ -45,41 +33,10 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($this->shouldSkipAssign($node)) { - return null; - } - /** @var List_ $list */ - $list = $node->var; - $printedVariables = []; - foreach ($list->items as $arrayItem) { - if (!$arrayItem instanceof ArrayItem) { - continue; - } - if ($arrayItem->value instanceof ArrayDimFetch && !$arrayItem->value->dim instanceof Expr) { - $printedVariables[] = $this->betterStandardPrinter->print($arrayItem->value->var); - } else { - return null; - } - } - // relevant only in 1 variable type - $uniqueVariables = array_unique($printedVariables); - if (count($uniqueVariables) !== 1) { - return null; - } - // wrap with array_reverse, to reflect reverse assign order in left - $node->expr = $this->nodeFactory->createFuncCall('array_reverse', [$node->expr]); - return $node; + throw new ShouldNotHappenException(sprintf('"%s" rule is deprecated, as it can turn valid code into broken code', self::class)); } public function provideMinPhpVersion(): int { return PhpVersionFeature::LIST_SWAP_ORDER; } - private function shouldSkipAssign(Assign $assign): bool - { - if (!$assign->var instanceof List_) { - return \true; - } - // already converted - return $assign->expr instanceof FuncCall && $this->isName($assign->expr, 'array_reverse'); - } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 7f19a1c7215..21246327fd7 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 = 'd20c8cfa62ef3dbecdf9fda863acb469d74cd300'; + public const PACKAGE_VERSION = 'f5ec53a12484d167ae0d667baa86ed6d3f18b8d4'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-09 09:25:30'; + public const RELEASE_DATE = '2026-09-09 07:53:23'; /** * @var int */ diff --git a/src/PhpParser/Printer/BetterStandardPrinter.php b/src/PhpParser/Printer/BetterStandardPrinter.php index 3b75354598f..8a76d8eb1f2 100644 --- a/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/src/PhpParser/Printer/BetterStandardPrinter.php @@ -437,7 +437,7 @@ private function unwrapFileNode(array $stmts): array return $stmts; } /** - * @param Node[] $nodes + * @param array $nodes Null in case of array destructuring */ private function containsNop(array $nodes): bool { From 21b5b53515727a64d460491449fa80be70d186b1 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 9 Sep 2026 12:11:02 +0000 Subject: [PATCH 154/169] Updated Rector to commit 8c28f9c1d9054ad26ba047d76b7eba2666003666 https://github.com/rectorphp/rector-src/commit/8c28f9c1d9054ad26ba047d76b7eba2666003666 [ci] Add Docblock Check CI for @param/@return array types (#8469) --- .../String_/StringClassNameToClassConstantRector.php | 2 +- rules/Php70/Rector/List_/EmptyListRector.php | 2 +- .../TypeDeclaration/NodeAnalyzer/CallTypesResolver.php | 10 +++++++--- .../NodeAnalyzer/ClassMethodParamTypeCompleter.php | 7 +++++-- src/Application/VersionResolver.php | 4 ++-- .../PHPStan/Scope/PHPStanNodeScopeResolver.php | 3 ++- src/PhpParser/NodeTraverser/RectorNodeTraverser.php | 2 +- 7 files changed, 19 insertions(+), 11 deletions(-) diff --git a/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php b/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php index 0c122da5d18..4771a597379 100644 --- a/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php +++ b/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php @@ -91,7 +91,7 @@ public function refactor(Node $node): ?\PhpParser\Node\Expr\ClassConstFetch return new ClassConstFetch($fullyQualified, 'class'); } /** - * @param array $configuration + * @param string[] $configuration */ public function configure(array $configuration): void { diff --git a/rules/Php70/Rector/List_/EmptyListRector.php b/rules/Php70/Rector/List_/EmptyListRector.php index 4d5624933e7..ad4fbbde852 100644 --- a/rules/Php70/Rector/List_/EmptyListRector.php +++ b/rules/Php70/Rector/List_/EmptyListRector.php @@ -41,7 +41,7 @@ public function getNodeTypes(): array /** * @param List_ $node */ - public function refactor(Node $node): ?Node + public function refactor(Node $node): ?List_ { foreach ($node->items as $item) { if ($item instanceof ArrayItem) { diff --git a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php index 66076b43b25..f1e1ab74549 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php +++ b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php @@ -44,7 +44,7 @@ public function __construct(NodeTypeResolver $nodeTypeResolver, TypeFactory $typ } /** * @param MethodCall[]|StaticCall[] $calls - * @return array + * @return array */ public function resolveStrictTypesFromCalls(array $calls): array { @@ -54,6 +54,10 @@ public function resolveStrictTypesFromCalls(array $calls): array if ($this->shouldSkipArg($arg)) { return []; } + // must be int + if (!is_int($position)) { + continue; + } /** @var Arg $arg */ $staticTypesByArgumentPosition[$position][] = $this->resolveStrictArgValueType($arg); } @@ -103,8 +107,8 @@ private function correctSelfType(Type $argValueType): Type return $argValueType; } /** - * @param array $staticTypesByArgumentPosition - * @return array + * @param array $staticTypesByArgumentPosition + * @return array */ private function unionToSingleType(array $staticTypesByArgumentPosition, bool $removeMixedArray = \false): array { diff --git a/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php b/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php index c600ba024ef..613989e4902 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php +++ b/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php @@ -30,7 +30,7 @@ public function __construct(StaticTypeMapper $staticTypeMapper, ClassMethodParam $this->classMethodParamVendorLockResolver = $classMethodParamVendorLockResolver; } /** - * @param array $classParameterTypes + * @param array $classParameterTypes */ public function complete(ClassMethod $classMethod, array $classParameterTypes, int $maxUnionTypes): ?ClassMethod { @@ -62,7 +62,10 @@ public function complete(ClassMethod $classMethod, array $classParameterTypes, i } return null; } - private function shouldSkipArgumentStaticType(ClassMethod $classMethod, Type $argumentStaticType, int $position, int $maxUnionTypes): bool + /** + * @param int|string $position + */ + private function shouldSkipArgumentStaticType(ClassMethod $classMethod, Type $argumentStaticType, $position, int $maxUnionTypes): bool { if ($argumentStaticType instanceof MixedType) { return \true; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 21246327fd7..00efafeca6c 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 = 'f5ec53a12484d167ae0d667baa86ed6d3f18b8d4'; + public const PACKAGE_VERSION = '8c28f9c1d9054ad26ba047d76b7eba2666003666'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-09 07:53:23'; + public const RELEASE_DATE = '2026-09-09 14:08:58'; /** * @var int */ diff --git a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index 9c5e3408004..971c69e64f8 100644 --- a/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -396,6 +396,7 @@ private function processMatch(Match_ $match, MutatingScope $mutatingScope): void */ private function nodeScopeResolverProcessNodes(array $stmts, MutatingScope $mutatingScope, callable $nodeCallback): void { + Assert::allIsInstanceOf($stmts, Stmt::class); try { $this->nodeScopeResolver->processNodes($stmts, $mutatingScope, $nodeCallback); } catch (ParserErrorsException|ParserException|ShouldNotHappenException|UndefinedVariableException $exception) { @@ -519,7 +520,7 @@ private function processProperty(Property $property, MutatingScope $mutatingScop continue; } /** @var Stmt[] $stmts */ - $stmts = $hook->body instanceof Expr ? [new Expression($hook->body)] : [$hook->body]; + $stmts = $hook->body instanceof Expr ? [new Expression($hook->body)] : $hook->body; $this->nodeScopeResolverProcessNodes($stmts, $mutatingScope, $nodeCallback); } } diff --git a/src/PhpParser/NodeTraverser/RectorNodeTraverser.php b/src/PhpParser/NodeTraverser/RectorNodeTraverser.php index 99d658fc13e..5660a72cf05 100644 --- a/src/PhpParser/NodeTraverser/RectorNodeTraverser.php +++ b/src/PhpParser/NodeTraverser/RectorNodeTraverser.php @@ -184,7 +184,7 @@ private function traverseNode(Node $node): void } } /** - * @param Node[] $nodes + * @param array $nodes The null can be in case of empty list(, , ) * @return Node[] */ private function traverseArray(array $nodes): array From 19ace2cb099af740580151bc721a6df03acea4fe Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 9 Sep 2026 22:24:20 +0000 Subject: [PATCH 155/169] Updated Rector to commit bff669d523678cd2805d49af18432e9a2c9ef160 https://github.com/rectorphp/rector-src/commit/bff669d523678cd2805d49af18432e9a2c9ef160 [CI] Fix drupal-rector dev-main smoke test blocked by stopgap conflict (#8479) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 00efafeca6c..77e24c3533d 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 = '8c28f9c1d9054ad26ba047d76b7eba2666003666'; + public const PACKAGE_VERSION = 'bff669d523678cd2805d49af18432e9a2c9ef160'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-09 14:08:58'; + public const RELEASE_DATE = '2026-09-10 00:21:47'; /** * @var int */ From 5ec346829fe58632eb8945a403e728131926306e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 10 Sep 2026 18:34:41 +0000 Subject: [PATCH 156/169] Updated Rector to commit bff669d523678cd2805d49af18432e9a2c9ef160 --- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/composer/installed.json | 8 +- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../config/set/downgrade-php82.php | 5 +- ...radeReflectionMethodHasPrototypeRector.php | 100 ++++++++++++++++++ 7 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/MethodCall/DowngradeReflectionMethodHasPrototypeRector.php diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 3df29b1f0a1..a967d562098 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1558,6 +1558,7 @@ 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeUnionIntersectionRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeUnionIntersectionRector.php', 'Rector\\DowngradePhp82\\Rector\\FuncCall\\DowngradeIteratorCountToArrayRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FuncCall/DowngradeIteratorCountToArrayRector.php', 'Rector\\DowngradePhp82\\Rector\\FunctionLike\\DowngradeStandaloneNullTrueFalseReturnTypeRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php', + 'Rector\\DowngradePhp82\\Rector\\MethodCall\\DowngradeReflectionMethodHasPrototypeRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/MethodCall/DowngradeReflectionMethodHasPrototypeRector.php', 'Rector\\DowngradePhp83\\Rector\\ClassConstFetch\\DowngradeDynamicClassConstFetchRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConstFetch/DowngradeDynamicClassConstFetchRector.php', 'Rector\\DowngradePhp83\\Rector\\ClassConst\\DowngradeTypedClassConstRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php', 'Rector\\DowngradePhp83\\Rector\\Class_\\DowngradeReadonlyAnonymousClassRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/Class_/DowngradeReadonlyAnonymousClassRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index d7e4ca072f4..58d314a6346 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1778,6 +1778,7 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeUnionIntersectionRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeUnionIntersectionRector.php', 'Rector\\DowngradePhp82\\Rector\\FuncCall\\DowngradeIteratorCountToArrayRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FuncCall/DowngradeIteratorCountToArrayRector.php', 'Rector\\DowngradePhp82\\Rector\\FunctionLike\\DowngradeStandaloneNullTrueFalseReturnTypeRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php', + 'Rector\\DowngradePhp82\\Rector\\MethodCall\\DowngradeReflectionMethodHasPrototypeRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/MethodCall/DowngradeReflectionMethodHasPrototypeRector.php', 'Rector\\DowngradePhp83\\Rector\\ClassConstFetch\\DowngradeDynamicClassConstFetchRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConstFetch/DowngradeDynamicClassConstFetchRector.php', 'Rector\\DowngradePhp83\\Rector\\ClassConst\\DowngradeTypedClassConstRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php', 'Rector\\DowngradePhp83\\Rector\\Class_\\DowngradeReadonlyAnonymousClassRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/Class_/DowngradeReadonlyAnonymousClassRector.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 712908d361b..542be4266e4 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1613,12 +1613,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "ad2e1bbf4290aecfa61ecc3426718caa1760321c" + "reference": "f75508770f5817c615fead7157cfa8c7c1816444" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/ad2e1bbf4290aecfa61ecc3426718caa1760321c", - "reference": "ad2e1bbf4290aecfa61ecc3426718caa1760321c", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/f75508770f5817c615fead7157cfa8c7c1816444", + "reference": "f75508770f5817c615fead7157cfa8c7c1816444", "shasum": "" }, "require": { @@ -1642,7 +1642,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-09-08T12:44:43+00:00", + "time": "2026-09-10T18:31:59+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b7ee8277594..52f9924152c 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'ad2e1bbf4290aecfa61ecc3426718caa1760321c', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 bb161c5ae4f..9a173787abf 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main ad2e1bb'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main f755087'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php b/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php index 9932e73becd..3abaa665f61 100644 --- a/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php +++ b/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php @@ -4,12 +4,13 @@ namespace RectorPrefix202609; use Rector\Config\RectorConfig; -use Rector\ValueObject\PhpVersion; use Rector\DowngradePhp82\Rector\Class_\DowngradeReadonlyClassRector; use Rector\DowngradePhp82\Rector\Class_\DowngradeUnionIntersectionRector; use Rector\DowngradePhp82\Rector\FuncCall\DowngradeIteratorCountToArrayRector; use Rector\DowngradePhp82\Rector\FunctionLike\DowngradeStandaloneNullTrueFalseReturnTypeRector; +use Rector\DowngradePhp82\Rector\MethodCall\DowngradeReflectionMethodHasPrototypeRector; +use Rector\ValueObject\PhpVersion; return static function (RectorConfig $rectorConfig): void { $rectorConfig->phpVersion(PhpVersion::PHP_81); - $rectorConfig->rules([DowngradeReadonlyClassRector::class, DowngradeStandaloneNullTrueFalseReturnTypeRector::class, DowngradeIteratorCountToArrayRector::class, DowngradeUnionIntersectionRector::class]); + $rectorConfig->rules([DowngradeReadonlyClassRector::class, DowngradeStandaloneNullTrueFalseReturnTypeRector::class, DowngradeIteratorCountToArrayRector::class, DowngradeUnionIntersectionRector::class, DowngradeReflectionMethodHasPrototypeRector::class]); }; diff --git a/vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/MethodCall/DowngradeReflectionMethodHasPrototypeRector.php b/vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/MethodCall/DowngradeReflectionMethodHasPrototypeRector.php new file mode 100644 index 00000000000..b9f67ebbfb7 --- /dev/null +++ b/vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/MethodCall/DowngradeReflectionMethodHasPrototypeRector.php @@ -0,0 +1,100 @@ +variableNaming = $variableNaming; + } + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Downgrade ReflectionMethod::hasPrototype() by emulating it with getPrototype()', [new CodeSample(<<<'CODE_SAMPLE' +class SomeClass +{ + public function run(ReflectionMethod $reflectionMethod): bool + { + return $reflectionMethod->hasPrototype(); + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + public function run(ReflectionMethod $reflectionMethod): bool + { + return (function (\ReflectionMethod $reflectionMethod2): bool { + try { + $reflectionMethod2->getPrototype(); + return true; + } catch (\ReflectionException) { + return false; + } + })($reflectionMethod); + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes(): array + { + return [MethodCall::class]; + } + /** + * @param MethodCall $node + */ + public function refactor(Node $node): ?Node + { + if ($node->isFirstClassCallable()) { + return null; + } + if (!$this->isName($node->name, 'hasPrototype')) { + return null; + } + if (!$this->isObjectType($node->var, new ObjectType('ReflectionMethod'))) { + return null; + } + $scope = ScopeFetcher::fetch($node); + $parameterName = $this->variableNaming->createCountedValueName('reflectionMethod', $scope); + return new FuncCall($this->createClosure($parameterName), [new Arg($node->var)]); + } + private function createClosure(string $parameterName): Closure + { + $reflectionMethodVariable = new Variable($parameterName); + $tryCatch = new TryCatch([new Expression(new MethodCall($reflectionMethodVariable, 'getPrototype')), new Return_(new ConstFetch(new Name('true')))], [new Catch_([new FullyQualified('ReflectionException')], null, [new Return_(new ConstFetch(new Name('false')))])]); + return new Closure(['params' => [new Param($reflectionMethodVariable, null, new FullyQualified('ReflectionMethod'))], 'returnType' => new Identifier('bool'), 'stmts' => [$tryCatch]]); + } +} From 19bb28b5cc4a9b08fee941b79834b25ac5e5e803 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 11 Sep 2026 09:57:28 +0000 Subject: [PATCH 157/169] Updated Rector to commit 0f6aca49785831efc0ad316421e93d271f042609 https://github.com/rectorphp/rector-src/commit/0f6aca49785831efc0ad316421e93d271f042609 [Php84] Fix ForeachToArrayAnyRector dropping elseif/else branches (#8480) --- rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php | 7 +++++++ src/Application/VersionResolver.php | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php b/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php index 902514fe28e..7e26b8a4fa7 100644 --- a/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php +++ b/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php @@ -10,6 +10,7 @@ use PhpParser\Node\Expr\Variable; use PhpParser\Node\Param; use PhpParser\Node\Stmt\Break_; +use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Foreach_; use PhpParser\Node\Stmt\If_; @@ -210,6 +211,9 @@ private function isValidBooleanAssignmentForeachStructure(Foreach_ $foreach, Var if (!$firstStmt instanceof If_ || count($firstStmt->stmts) !== 2) { return \false; } + if ($firstStmt->elseifs !== [] || $firstStmt->else instanceof Else_) { + return \false; + } $assignmentStmt = $firstStmt->stmts[0]; $breakStmt = $firstStmt->stmts[1]; if (!$assignmentStmt instanceof Expression || !$assignmentStmt->expr instanceof Assign || !$breakStmt instanceof Break_) { @@ -234,6 +238,9 @@ private function isValidEarlyReturnForeachStructure(Foreach_ $foreach): bool return \false; } $ifStmt = $foreach->stmts[0]; + if ($ifStmt->elseifs !== [] || $ifStmt->else instanceof Else_) { + return \false; + } if (count($ifStmt->stmts) !== 1) { return \false; } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 77e24c3533d..9b72330d345 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 = 'bff669d523678cd2805d49af18432e9a2c9ef160'; + public const PACKAGE_VERSION = '0f6aca49785831efc0ad316421e93d271f042609'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-10 00:21:47'; + public const RELEASE_DATE = '2026-09-11 11:55:04'; /** * @var int */ From 342a687d69a5e6517a99e1b7667245492672165d Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 11 Sep 2026 18:11:36 +0000 Subject: [PATCH 158/169] Updated Rector to commit 13a47a435aa1b93503043bedfb45313d2af43efd https://github.com/rectorphp/rector-src/commit/13a47a435aa1b93503043bedfb45313d2af43efd [CI] Remove Auto Fix Issue workflow that runs Claude Code on a schedule (#8481) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 9b72330d345..41562ba44bf 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 = '0f6aca49785831efc0ad316421e93d271f042609'; + public const PACKAGE_VERSION = '13a47a435aa1b93503043bedfb45313d2af43efd'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-11 11:55:04'; + public const RELEASE_DATE = '2026-09-11 20:09:12'; /** * @var int */ From 878fe98b68df25ac20f253eb251c44db9dc33873 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 11 Sep 2026 18:36:50 +0000 Subject: [PATCH 159/169] Updated Rector to commit 15412f07928be9b60f752facb1397ebe25f034f9 https://github.com/rectorphp/rector-src/commit/15412f07928be9b60f752facb1397ebe25f034f9 [CI] Trim wasteful and risky workflows (#8483) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 41562ba44bf..34aebf601d1 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 = '13a47a435aa1b93503043bedfb45313d2af43efd'; + public const PACKAGE_VERSION = '15412f07928be9b60f752facb1397ebe25f034f9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-11 20:09:12'; + public const RELEASE_DATE = '2026-09-11 20:34:42'; /** * @var int */ From 3c05554971369b3ed9366f7eb5c2114c0e6a9b00 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 11 Sep 2026 18:55:55 +0000 Subject: [PATCH 160/169] Updated Rector to commit 15412f07928be9b60f752facb1397ebe25f034f9 --- vendor/composer/installed.json | 8 +-- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../RemoveNamedArgsInDataProviderRector.php | 68 ++----------------- 4 files changed, 13 insertions(+), 67 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 542be4266e4..71e2b76f0af 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1671,12 +1671,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "d1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84" + "reference": "c9cbc660a72a7865c01b52be6c5dbca947c43880" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/d1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84", - "reference": "d1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/c9cbc660a72a7865c01b52be6c5dbca947c43880", + "reference": "c9cbc660a72a7865c01b52be6c5dbca947c43880", "shasum": "" }, "require": { @@ -1702,7 +1702,7 @@ "tomasvotruba\/unused-public": "^2.2", "tracy\/tracy": "^2.12" }, - "time": "2026-09-02T09:04:39+00:00", + "time": "2026-09-11T18:53:04+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 52f9924152c..50a01e010ca 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'd1e3dc130ad4ca9c2fab2b3b6816c6f4fff92e84', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'c9cbc660a72a7865c01b52be6c5dbca947c43880', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 9a173787abf..755bbf27bb3 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main f755087'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main d1e3dc1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main f755087'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c9cbc66'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); private function __construct() { } diff --git a/vendor/rector/rector-phpunit/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php b/vendor/rector/rector-phpunit/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php index 1dd50500527..52c004dc7c1 100644 --- a/vendor/rector/rector-phpunit/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php +++ b/vendor/rector/rector-phpunit/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php @@ -4,34 +4,18 @@ namespace Rector\PHPUnit\PHPUnit100\Rector\Class_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Array_; -use PhpParser\Node\Expr\Yield_; use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\Expression; -use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; -use Rector\PHPUnit\NodeFinder\DataProviderClassMethodFinder; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\PHPUnit\Tests\PHPUnit100\Rector\Class_\RemoveNamedArgsInDataProviderRector\RemoveNamedArgsInDataProviderRectorTest + * @deprecated This rule is deprecated, as named arguments in data providers are on purpose to match test method + * parameters. PHPUnit handles their mapping itself, so there is nothing to remove. */ -final class RemoveNamedArgsInDataProviderRector extends AbstractRector +final class RemoveNamedArgsInDataProviderRector extends AbstractRector implements DeprecatedInterface { - /** - * @readonly - */ - private TestsNodeAnalyzer $testsNodeAnalyzer; - /** - * @readonly - */ - private DataProviderClassMethodFinder $dataProviderClassMethodFinder; - public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, DataProviderClassMethodFinder $dataProviderClassMethodFinder) - { - $this->testsNodeAnalyzer = $testsNodeAnalyzer; - $this->dataProviderClassMethodFinder = $dataProviderClassMethodFinder; - } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Remove named arguments in data provider', [new CodeSample(<<<'CODE_SAMPLE' @@ -80,48 +64,10 @@ public function getNodeTypes(): array return [Class_::class]; } /** - * @param Class_ $node + * @param Class_ $node */ public function refactor(Node $node): ?Node { - if (!$this->testsNodeAnalyzer->isInTestClass($node)) { - return null; - } - $hasChanged = \false; - $dataProviders = $this->dataProviderClassMethodFinder->find($node); - foreach ($dataProviders as $dataProvider) { - /** @var Expression $stmt */ - foreach ($dataProvider->getStmts() ?? [] as $stmt) { - $expr = $stmt->expr; - $arrayChanged = \false; - if ($expr instanceof Yield_) { - if (!$expr->value instanceof Array_) { - return null; - } - $arrayChanged = $this->handleArray($expr->value); - } elseif ($expr instanceof Array_) { - $arrayChanged = $this->handleArray($expr); - } - if ($arrayChanged) { - $hasChanged = \true; - } - } - } - if ($hasChanged) { - return $node; - } - return null; - } - private function handleArray(Array_ $array): bool - { - $hasChanged = \false; - foreach ($array->items as $item) { - if (!$item->key instanceof Expr) { - continue; - } - $item->key = null; - $hasChanged = \true; - } - return $hasChanged; + throw new ShouldNotHappenException(sprintf('"%s" is deprecated, as named arguments in data providers are on purpose to match test method parameters and are handled by PHPUnit itself.', self::class)); } } From e5bdae700a0235a9e23782f613e18e574dfead7c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 11 Sep 2026 18:56:19 +0000 Subject: [PATCH 161/169] Updated Rector to commit 15412f07928be9b60f752facb1397ebe25f034f9 --- vendor/composer/installed.json | 8 ++++---- vendor/composer/installed.php | 2 +- .../rector/extension-installer/src/GeneratedConfig.php | 2 +- .../config/sets/symfony/composer-based.php | 3 +++ .../rector-symfony/config/sets/symfony/configs.php | 3 +-- .../MethodCall/EnableValidationAttributesRector.php | 9 ++++++++- .../WebLinkStringRelationsToConstantsRector.php | 2 +- 7 files changed, 19 insertions(+), 10 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 71e2b76f0af..a5a9fee4141 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "2529e11b25a4c4521626aa7fd024d567d82619fc" + "reference": "4babdb9738571b6481f09c6f7315fb2b1086e9e9" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/2529e11b25a4c4521626aa7fd024d567d82619fc", - "reference": "2529e11b25a4c4521626aa7fd024d567d82619fc", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/4babdb9738571b6481f09c6f7315fb2b1086e9e9", + "reference": "4babdb9738571b6481f09c6f7315fb2b1086e9e9", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-08-29T17:32:13+00:00", + "time": "2026-09-11T18:53:37+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 50a01e010ca..470b99d12f6 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'c9cbc660a72a7865c01b52be6c5dbca947c43880', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2529e11b25a4c4521626aa7fd024d567d82619fc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'c9cbc660a72a7865c01b52be6c5dbca947c43880', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '4babdb9738571b6481f09c6f7315fb2b1086e9e9', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 755bbf27bb3..8d0fe1e1dfd 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main f755087'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c9cbc66'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 2529e11')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main f755087'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c9cbc66'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 4babdb9')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php index c1c81d9edd9..24038cae6f1 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/composer-based.php @@ -45,6 +45,7 @@ use Rector\Symfony\CodeQuality\Rector\Class_\LoadValidatorMetadataToAttributeRector; use Rector\Symfony\CodeQuality\Rector\Class_\SplitAndSecurityAttributeToIsGrantedRector; use Rector\Symfony\CodeQuality\Rector\MethodCall\ParameterBagTypedGetMethodCallRector; +use Rector\Symfony\Configs\Rector\MethodCall\EnableValidationAttributesRector; use Rector\Symfony\JMS\Rector\Class_\AccessTypeAnnotationToAttributeRector; use Rector\Symfony\JMS\Rector\Property\AccessorAnnotationToAttributeRector; use Rector\Symfony\Symfony25\Rector\MethodCall\AddViolationToBuildViolationRector; @@ -255,6 +256,8 @@ SignalableCommandInterfaceReturnTypeRector::class, // symfony/dependency-injection 6.3 ParamAndEnvAttributeRector::class, + // symfony/framework-bundle 6.4 + EnableValidationAttributesRector::class, // symfony/http-foundation 7.2 PushRequestToRequestStackConstructorRector::class, // symfony/console 7.3 diff --git a/vendor/rector/rector-symfony/config/sets/symfony/configs.php b/vendor/rector/rector-symfony/config/sets/symfony/configs.php index c7c0bc1245b..2ad5866f594 100644 --- a/vendor/rector/rector-symfony/config/sets/symfony/configs.php +++ b/vendor/rector/rector-symfony/config/sets/symfony/configs.php @@ -11,7 +11,6 @@ use Rector\Symfony\Configs\Rector\Closure\ServiceSetStringNameToClassNameRector; use Rector\Symfony\Configs\Rector\Closure\ServiceSettersToSettersAutodiscoveryRector; use Rector\Symfony\Configs\Rector\Closure\ServiceTagsToDefaultsAutoconfigureRector; -use Rector\Symfony\Configs\Rector\MethodCall\EnableValidationAttributesRector; return static function (RectorConfig $rectorConfig): void { - $rectorConfig->rules([MergeServiceNameTypeRector::class, ServiceArgsToServiceNamedArgRector::class, ServiceSetStringNameToClassNameRector::class, ServiceSettersToSettersAutodiscoveryRector::class, ServiceTagsToDefaultsAutoconfigureRector::class, RemoveConstructorAutowireServiceRector::class, FromServicePublicToDefaultsPublicRector::class, EnableValidationAttributesRector::class]); + $rectorConfig->rules([MergeServiceNameTypeRector::class, ServiceArgsToServiceNamedArgRector::class, ServiceSetStringNameToClassNameRector::class, ServiceSettersToSettersAutodiscoveryRector::class, ServiceTagsToDefaultsAutoconfigureRector::class, RemoveConstructorAutowireServiceRector::class, FromServicePublicToDefaultsPublicRector::class]); }; diff --git a/vendor/rector/rector-symfony/rules/Configs/Rector/MethodCall/EnableValidationAttributesRector.php b/vendor/rector/rector-symfony/rules/Configs/Rector/MethodCall/EnableValidationAttributesRector.php index 429eade4081..4ad08e3a749 100644 --- a/vendor/rector/rector-symfony/rules/Configs/Rector/MethodCall/EnableValidationAttributesRector.php +++ b/vendor/rector/rector-symfony/rules/Configs/Rector/MethodCall/EnableValidationAttributesRector.php @@ -12,12 +12,14 @@ use PhpParser\Node\Name; use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; +use Rector\VersionBonding\Contract\ComposerPackageConstraintInterface; +use Rector\VersionBonding\ValueObject\ComposerPackageConstraint; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Symfony\Tests\Configs\Rector\MethodCall\EnableValidationAttributesRector\EnableValidationAttributesRectorTest */ -final class EnableValidationAttributesRector extends AbstractRector +final class EnableValidationAttributesRector extends AbstractRector implements ComposerPackageConstraintInterface { /** * @readonly @@ -27,6 +29,11 @@ public function __construct(ValueResolver $valueResolver) { $this->valueResolver = $valueResolver; } + public function provideComposerPackageConstraint(): ComposerPackageConstraint + { + // "enable_attributes" config key added in framework-bundle 6.4, replacing "enable_annotations" + return new ComposerPackageConstraint('symfony/framework-bundle', '>=6.4'); + } public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Enable "framework.validation.enable_attributes" config, to load validation rules from attributes', [new CodeSample(<<<'CODE_SAMPLE' diff --git a/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php index 26fc16a2b4b..32b1ea0c9d6 100644 --- a/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony44/Rector/MethodCall/WebLinkStringRelationsToConstantsRector.php @@ -79,7 +79,7 @@ public function refactor(Node $node): ?Node return null; } $constFetch = $this->createConstantFetch($valueNode->value); - if (!$constFetch) { + if (!$constFetch instanceof Node) { return null; } $args[0]->value = $constFetch; From 21ace779e7c70bf4b62b88cbe86d4b8a5bb6222b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 11 Sep 2026 18:57:31 +0000 Subject: [PATCH 162/169] Updated Rector to commit c6d15cd2c8f8a6684f48a9ab45db34934c3b4a75 https://github.com/rectorphp/rector-src/commit/c6d15cd2c8f8a6684f48a9ab45db34934c3b4a75 Remove RenameDeprecatedMethodCallRector (#8485) --- ...eprecatedMethodCallReplacementResolver.php | 66 ----------------- .../RenameDeprecatedMethodCallRector.php | 73 ------------------- src/Application/VersionResolver.php | 4 +- vendor/composer/autoload_classmap.php | 2 - vendor/composer/autoload_static.php | 2 - 5 files changed, 2 insertions(+), 145 deletions(-) delete mode 100644 rules/Renaming/NodeAnalyzer/DeprecatedMethodCallReplacementResolver.php delete mode 100644 rules/Renaming/Rector/MethodCall/RenameDeprecatedMethodCallRector.php diff --git a/rules/Renaming/NodeAnalyzer/DeprecatedMethodCallReplacementResolver.php b/rules/Renaming/NodeAnalyzer/DeprecatedMethodCallReplacementResolver.php deleted file mode 100644 index ed46c515e7e..00000000000 --- a/rules/Renaming/NodeAnalyzer/DeprecatedMethodCallReplacementResolver.php +++ /dev/null @@ -1,66 +0,0 @@ -\w+)\(\)#i'; - /** - * Resolves a non-deprecated replacement method name suggested by the "@deprecated" docblock - * of the given method, or null when there is no usable suggestion. - */ - public function resolve(MethodReflection $methodReflection): ?string - { - if (!$methodReflection->isDeprecated()->yes()) { - return null; - } - $newMethodName = $this->matchNewMethodName($methodReflection->getDeprecatedDescription()); - if ($newMethodName === null) { - return null; - } - // already the suggested name? nothing to do - if (strtolower($methodReflection->getName()) === strtolower($newMethodName)) { - return null; - } - if (!$this->isExistingNonDeprecatedMethod($methodReflection->getDeclaringClass(), $newMethodName)) { - return null; - } - return $newMethodName; - } - private function matchNewMethodName(?string $deprecatedDescription): ?string - { - if ($deprecatedDescription === null || $deprecatedDescription === '') { - return null; - } - $match = Strings::match($deprecatedDescription, self::RENAME_SUGGESTION_REGEX); - if ($match === null) { - return null; - } - return $match['method']; - } - private function isExistingNonDeprecatedMethod(ClassReflection $classReflection, string $newMethodName): bool - { - if (!$classReflection->hasNativeMethod($newMethodName)) { - return \false; - } - // do not rename onto another deprecated method, to avoid suggesting a dead end - $extendedMethodReflection = $classReflection->getNativeMethod($newMethodName); - return !$extendedMethodReflection->isDeprecated()->yes(); - } -} diff --git a/rules/Renaming/Rector/MethodCall/RenameDeprecatedMethodCallRector.php b/rules/Renaming/Rector/MethodCall/RenameDeprecatedMethodCallRector.php deleted file mode 100644 index 708bac27ab4..00000000000 --- a/rules/Renaming/Rector/MethodCall/RenameDeprecatedMethodCallRector.php +++ /dev/null @@ -1,73 +0,0 @@ -reflectionResolver = $reflectionResolver; - $this->deprecatedMethodCallReplacementResolver = $deprecatedMethodCallReplacementResolver; - } - public function getRuleDefinition(): RuleDefinition - { - return new RuleDefinition('Rename method calls whose target method is "@deprecated" and suggests a replacement method on the same class', [new CodeSample(<<<'CODE_SAMPLE' -$someObject->oldMethod(); -CODE_SAMPLE -, <<<'CODE_SAMPLE' -$someObject->newMethod(); -CODE_SAMPLE -)]); - } - /** - * @return array> - */ - public function getNodeTypes(): array - { - return [MethodCall::class, StaticCall::class]; - } - /** - * @param MethodCall|StaticCall $node - */ - public function refactor(Node $node): ?Node - { - if ($node->isFirstClassCallable()) { - return null; - } - if ($this->getName($node->name) === null) { - return null; - } - $methodReflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($node); - if (!$methodReflection instanceof MethodReflection) { - return null; - } - $newMethodName = $this->deprecatedMethodCallReplacementResolver->resolve($methodReflection); - if ($newMethodName === null) { - return null; - } - $node->name = new Identifier($newMethodName); - return $node; - } -} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 34aebf601d1..e001a05c42f 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 = '15412f07928be9b60f752facb1397ebe25f034f9'; + public const PACKAGE_VERSION = 'c6d15cd2c8f8a6684f48a9ab45db34934c3b4a75'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-11 20:34:42'; + public const RELEASE_DATE = '2026-09-11 20:55:35'; /** * @var int */ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index a967d562098..70ceada6336 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2287,7 +2287,6 @@ 'Rector\\Renaming\\Contract\\MethodCallRenameInterface' => $baseDir . '/rules/Renaming/Contract/MethodCallRenameInterface.php', 'Rector\\Renaming\\Contract\\RenameAnnotationInterface' => $baseDir . '/rules/Renaming/Contract/RenameAnnotationInterface.php', 'Rector\\Renaming\\Contract\\RenameClassConstFetchInterface' => $baseDir . '/rules/Renaming/Contract/RenameClassConstFetchInterface.php', - 'Rector\\Renaming\\NodeAnalyzer\\DeprecatedMethodCallReplacementResolver' => $baseDir . '/rules/Renaming/NodeAnalyzer/DeprecatedMethodCallReplacementResolver.php', 'Rector\\Renaming\\NodeManipulator\\ClassRenamer' => $baseDir . '/rules/Renaming/NodeManipulator/ClassRenamer.php', 'Rector\\Renaming\\NodeManipulator\\SwitchManipulator' => $baseDir . '/rules/Renaming/NodeManipulator/SwitchManipulator.php', 'Rector\\Renaming\\Rector\\Cast\\RenameCastRector' => $baseDir . '/rules/Renaming/Rector/Cast/RenameCastRector.php', @@ -2296,7 +2295,6 @@ 'Rector\\Renaming\\Rector\\Class_\\RenameAttributeRector' => $baseDir . '/rules/Renaming/Rector/Class_/RenameAttributeRector.php', 'Rector\\Renaming\\Rector\\ConstFetch\\RenameConstantRector' => $baseDir . '/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php', 'Rector\\Renaming\\Rector\\FuncCall\\RenameFunctionRector' => $baseDir . '/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php', - 'Rector\\Renaming\\Rector\\MethodCall\\RenameDeprecatedMethodCallRector' => $baseDir . '/rules/Renaming/Rector/MethodCall/RenameDeprecatedMethodCallRector.php', 'Rector\\Renaming\\Rector\\MethodCall\\RenameMethodRector' => $baseDir . '/rules/Renaming/Rector/MethodCall/RenameMethodRector.php', 'Rector\\Renaming\\Rector\\Name\\RenameClassRector' => $baseDir . '/rules/Renaming/Rector/Name/RenameClassRector.php', 'Rector\\Renaming\\Rector\\PropertyFetch\\RenamePropertyRector' => $baseDir . '/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 58d314a6346..aaec85a7b2c 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2507,7 +2507,6 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\Renaming\\Contract\\MethodCallRenameInterface' => __DIR__ . '/../..' . '/rules/Renaming/Contract/MethodCallRenameInterface.php', 'Rector\\Renaming\\Contract\\RenameAnnotationInterface' => __DIR__ . '/../..' . '/rules/Renaming/Contract/RenameAnnotationInterface.php', 'Rector\\Renaming\\Contract\\RenameClassConstFetchInterface' => __DIR__ . '/../..' . '/rules/Renaming/Contract/RenameClassConstFetchInterface.php', - 'Rector\\Renaming\\NodeAnalyzer\\DeprecatedMethodCallReplacementResolver' => __DIR__ . '/../..' . '/rules/Renaming/NodeAnalyzer/DeprecatedMethodCallReplacementResolver.php', 'Rector\\Renaming\\NodeManipulator\\ClassRenamer' => __DIR__ . '/../..' . '/rules/Renaming/NodeManipulator/ClassRenamer.php', 'Rector\\Renaming\\NodeManipulator\\SwitchManipulator' => __DIR__ . '/../..' . '/rules/Renaming/NodeManipulator/SwitchManipulator.php', 'Rector\\Renaming\\Rector\\Cast\\RenameCastRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/Cast/RenameCastRector.php', @@ -2516,7 +2515,6 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\Renaming\\Rector\\Class_\\RenameAttributeRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/Class_/RenameAttributeRector.php', 'Rector\\Renaming\\Rector\\ConstFetch\\RenameConstantRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php', 'Rector\\Renaming\\Rector\\FuncCall\\RenameFunctionRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php', - 'Rector\\Renaming\\Rector\\MethodCall\\RenameDeprecatedMethodCallRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/MethodCall/RenameDeprecatedMethodCallRector.php', 'Rector\\Renaming\\Rector\\MethodCall\\RenameMethodRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/MethodCall/RenameMethodRector.php', 'Rector\\Renaming\\Rector\\Name\\RenameClassRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/Name/RenameClassRector.php', 'Rector\\Renaming\\Rector\\PropertyFetch\\RenamePropertyRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php', From 7d3b83f8a3da9e1e3a47a9a42ac811fcc3cf5895 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 11 Sep 2026 19:00:32 +0000 Subject: [PATCH 163/169] Updated Rector to commit 222bbf2f4e10e311a826a5375b0726c5bd4cf124 https://github.com/rectorphp/rector-src/commit/222bbf2f4e10e311a826a5375b0726c5bd4cf124 Add NarrowBoolDocblockReturnTypeRector to type-declaration-docblocks set (#8484) --- src/Application/VersionResolver.php | 4 ++-- src/Config/Level/TypeDeclarationDocblocksLevel.php | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index e001a05c42f..49515e0628c 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 = 'c6d15cd2c8f8a6684f48a9ab45db34934c3b4a75'; + public const PACKAGE_VERSION = '222bbf2f4e10e311a826a5375b0726c5bd4cf124'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-11 20:55:35'; + public const RELEASE_DATE = '2026-09-11 20:58:01'; /** * @var int */ diff --git a/src/Config/Level/TypeDeclarationDocblocksLevel.php b/src/Config/Level/TypeDeclarationDocblocksLevel.php index 4c4e8ae0ee3..b57e01f7b4d 100644 --- a/src/Config/Level/TypeDeclarationDocblocksLevel.php +++ b/src/Config/Level/TypeDeclarationDocblocksLevel.php @@ -6,6 +6,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\TypeDeclaration\Rector\ClassMethod\AddParamArrayDocblockBasedOnCallableNativeFuncCallRector; use Rector\TypeDeclaration\Rector\ClassMethod\AddReturnDocblockForScalarArrayFromAssignsRector; +use Rector\TypeDeclaration\Rector\ClassMethod\NarrowBoolDocblockReturnTypeRector; use Rector\TypeDeclarationDocblocks\Rector\Class_\AddVarArrayDocblockFromDimFetchAssignRector; use Rector\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector; use Rector\TypeDeclarationDocblocks\Rector\Class_\DocblockVarArrayFromGetterReturnRector; @@ -47,5 +48,6 @@ final class TypeDeclarationDocblocksLevel // return DocblockGetterReturnArrayFromPropertyDocblockVarRector::class, NarrowArrayCollectionUnionReturnDocblockRector::class, + NarrowBoolDocblockReturnTypeRector::class, ]; } From 11f9ea3db3550f496724c3c2a27d0f121b50397b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 12 Sep 2026 09:43:26 +0000 Subject: [PATCH 164/169] Updated Rector to commit 9c56f19713758c6f4cfd534a17bf5c9f91a52bb9 https://github.com/rectorphp/rector-src/commit/9c56f19713758c6f4cfd534a17bf5c9f91a52bb9 [Utils] Add token-based duplicate code detector with CI gate (#8482) --- src/Application/VersionResolver.php | 4 ++-- vendor/composer/autoload_psr4.php | 1 + vendor/composer/autoload_static.php | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 49515e0628c..1cfd0199b8f 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 = '222bbf2f4e10e311a826a5375b0726c5bd4cf124'; + public const PACKAGE_VERSION = '9c56f19713758c6f4cfd534a17bf5c9f91a52bb9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-11 20:58:01'; + public const RELEASE_DATE = '2026-09-12 11:41:09'; /** * @var int */ diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index b490e871aa6..c89015e83f7 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -9,6 +9,7 @@ 'Symplify\\RuleDocGenerator\\' => array($vendorDir . '/symplify/rule-doc-generator-contracts/src'), 'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'), 'Rector\\Utils\\PHPStan\\' => array($baseDir . '/utils/phpstan/src'), + 'Rector\\Utils\\Duplicates\\' => array($baseDir . '/utils/duplicates/src'), 'Rector\\Utils\\' => array($baseDir . '/utils'), 'Rector\\Symfony\\' => array($vendorDir . '/rector/rector-symfony/src', $vendorDir . '/rector/rector-symfony/rules'), 'Rector\\RectorInstaller\\' => array($vendorDir . '/rector/extension-installer/src'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index aaec85a7b2c..99f1495b543 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -23,6 +23,7 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'R' => array ( 'Rector\\Utils\\PHPStan\\' => 21, + 'Rector\\Utils\\Duplicates\\' => 24, 'Rector\\Utils\\' => 13, 'Rector\\Symfony\\' => 15, 'Rector\\RectorInstaller\\' => 23, @@ -77,6 +78,10 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 array ( 0 => __DIR__ . '/../..' . '/utils/phpstan/src', ), + 'Rector\\Utils\\Duplicates\\' => + array ( + 0 => __DIR__ . '/../..' . '/utils/duplicates/src', + ), 'Rector\\Utils\\' => array ( 0 => __DIR__ . '/../..' . '/utils', From a6b4c3e01e2dd458b9c5a5d72525dc870e578474 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 12 Sep 2026 09:44:32 +0000 Subject: [PATCH 165/169] Updated Rector to commit 6d8240575626342682a62f2c6f016f1579cca59e https://github.com/rectorphp/rector-src/commit/6d8240575626342682a62f2c6f016f1579cca59e [Php84] [TypeDeclaration] Extract duplicated rule logic into shared services (#8486) --- .../ForeachToArrayAnyAllFactory.php | 249 ++++++++++++++++++ .../NodeFactory/ForeachToArrayFindFactory.php | 153 +++++++++++ .../Foreach_/ForeachToArrayAllRector.php | 194 +------------- .../Foreach_/ForeachToArrayAnyRector.php | 195 +------------- .../Foreach_/ForeachToArrayFindKeyRector.php | 107 +------- .../Foreach_/ForeachToArrayFindRector.php | 106 +------- .../ArrayCallbackParamTypeResolver.php | 119 +++++++++ .../SetUpAssignedPropertyTyper.php | 159 +++++++++++ ...pedPropertyFromContainerGetSetUpRector.php | 129 +-------- ...edPropertyFromGetRepositorySetUpRector.php | 130 +-------- .../AddArrayAnyAllClosureParamTypeRector.php | 74 +----- ...rrowArrayAnyAllNullableParamTypeRector.php | 76 +----- src/Application/VersionResolver.php | 4 +- vendor/composer/autoload_classmap.php | 4 + vendor/composer/autoload_static.php | 4 + 15 files changed, 730 insertions(+), 973 deletions(-) create mode 100644 rules/Php84/NodeFactory/ForeachToArrayAnyAllFactory.php create mode 100644 rules/Php84/NodeFactory/ForeachToArrayFindFactory.php create mode 100644 rules/TypeDeclaration/NodeAnalyzer/ArrayCallbackParamTypeResolver.php create mode 100644 rules/TypeDeclaration/NodeAnalyzer/SetUpAssignedPropertyTyper.php diff --git a/rules/Php84/NodeFactory/ForeachToArrayAnyAllFactory.php b/rules/Php84/NodeFactory/ForeachToArrayAnyAllFactory.php new file mode 100644 index 00000000000..64ba0634870 --- /dev/null +++ b/rules/Php84/NodeFactory/ForeachToArrayAnyAllFactory.php @@ -0,0 +1,249 @@ +valueResolver = $valueResolver; + $this->stmtsManipulator = $stmtsManipulator; + $this->foreachKeyUsedInConditionalAnalyzer = $foreachKeyUsedInConditionalAnalyzer; + $this->nodeComparator = $nodeComparator; + $this->nodeTypeResolver = $nodeTypeResolver; + $this->nodeFactory = $nodeFactory; + $this->nodeNameResolver = $nodeNameResolver; + } + /** + * @param StmtsAware $node + */ + public function refactorToArrayAnyAll(Node $node, string $functionName, bool $negateCondition, bool $initialBool, bool $rejectElseBranches): ?Node + { + return $this->refactorBooleanAssignmentPattern($node, $functionName, $negateCondition, $initialBool, $rejectElseBranches) ?? $this->refactorEarlyReturnPattern($node, $functionName, $negateCondition, $initialBool, $rejectElseBranches); + } + /** + * @param StmtsAware $node + */ + private function refactorBooleanAssignmentPattern(Node $node, string $functionName, bool $negateCondition, bool $initialBool, bool $rejectElseBranches): ?Node + { + if ($node->stmts === null) { + return null; + } + foreach ($node->stmts as $key => $stmt) { + if (!$stmt instanceof Foreach_) { + continue; + } + $prevStmt = $node->stmts[$key - 1] ?? null; + if (!$prevStmt instanceof Expression) { + continue; + } + if (!$prevStmt->expr instanceof Assign) { + continue; + } + $foreach = $stmt; + $prevAssign = $prevStmt->expr; + if (!$this->isExpectedBool($prevAssign->expr, $initialBool)) { + continue; + } + if (!$prevAssign->var instanceof Variable) { + continue; + } + $assignedVariable = $prevAssign->var; + if (!$this->isValidBooleanAssignmentForeachStructure($foreach, $assignedVariable, $initialBool, $rejectElseBranches)) { + continue; + } + if ($this->stmtsManipulator->isVariableUsedInNextStmt($node, $key + 1, (string) $this->nodeNameResolver->getName($foreach->valueVar))) { + continue; + } + /** @var If_ $firstNodeInsideForeach */ + $firstNodeInsideForeach = $foreach->stmts[0]; + $condition = $firstNodeInsideForeach->cond; + $valueParam = $foreach->valueVar; + if (!$valueParam instanceof Variable) { + continue; + } + $params = [new Param($valueParam)]; + if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { + $params[] = new Param(new Variable((string) $this->nodeNameResolver->getName($foreach->keyVar))); + } + $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $this->applyNegation($condition, $negateCondition)]); + $funcCall = $this->nodeFactory->createFuncCall($functionName, [$foreach->expr, $arrowFunction]); + $newAssign = new Assign($assignedVariable, $funcCall); + $newExpression = new Expression($newAssign); + unset($node->stmts[$key - 1]); + $node->stmts[$key] = $newExpression; + $node->stmts = array_values($node->stmts); + return $node; + } + return null; + } + /** + * @param StmtsAware $node + */ + private function refactorEarlyReturnPattern(Node $node, string $functionName, bool $negateCondition, bool $initialBool, bool $rejectElseBranches): ?Node + { + if ($node->stmts === null) { + return null; + } + foreach ($node->stmts as $key => $stmt) { + if (!$stmt instanceof Foreach_) { + continue; + } + $foreach = $stmt; + $nextStmt = $node->stmts[$key + 1] ?? null; + if (!$nextStmt instanceof Return_) { + continue; + } + if (!$nextStmt->expr instanceof Expr) { + continue; + } + if (!$this->isExpectedBool($nextStmt->expr, $initialBool)) { + continue; + } + if (!$this->isValidEarlyReturnForeachStructure($foreach, $initialBool, $rejectElseBranches)) { + continue; + } + /** @var If_ $firstNodeInsideForeach */ + $firstNodeInsideForeach = $foreach->stmts[0]; + $condition = $firstNodeInsideForeach->cond; + $params = []; + if ($foreach->valueVar instanceof Variable) { + $params[] = new Param($foreach->valueVar); + } + if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { + $params[] = new Param(new Variable((string) $this->nodeNameResolver->getName($foreach->keyVar))); + } + $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $this->applyNegation($condition, $negateCondition)]); + $funcCall = $this->nodeFactory->createFuncCall($functionName, [$foreach->expr, $arrowFunction]); + $node->stmts[$key] = new Return_($funcCall); + unset($node->stmts[$key + 1]); + $node->stmts = array_values($node->stmts); + return $node; + } + return null; + } + private function isValidBooleanAssignmentForeachStructure(Foreach_ $foreach, Variable $assignedVariable, bool $initialBool, bool $rejectElseBranches): bool + { + if (count($foreach->stmts) !== 1) { + return \false; + } + $firstStmt = $foreach->stmts[0]; + if (!$firstStmt instanceof If_ || count($firstStmt->stmts) !== 2) { + return \false; + } + if ($rejectElseBranches && ($firstStmt->elseifs !== [] || $firstStmt->else instanceof Else_)) { + return \false; + } + $assignmentStmt = $firstStmt->stmts[0]; + $breakStmt = $firstStmt->stmts[1]; + if (!$assignmentStmt instanceof Expression || !$assignmentStmt->expr instanceof Assign || !$breakStmt instanceof Break_) { + return \false; + } + $assignment = $assignmentStmt->expr; + if (!$this->nodeComparator->areNodesEqual($assignment->var, $assignedVariable)) { + return \false; + } + if (!$this->isExpectedBool($assignment->expr, !$initialBool)) { + return \false; + } + $type = $this->nodeTypeResolver->getNativeType($foreach->expr); + return $type->isArray()->yes(); + } + private function isValidEarlyReturnForeachStructure(Foreach_ $foreach, bool $initialBool, bool $rejectElseBranches): bool + { + if (count($foreach->stmts) !== 1) { + return \false; + } + if (!$foreach->stmts[0] instanceof If_) { + return \false; + } + $ifStmt = $foreach->stmts[0]; + if ($rejectElseBranches && ($ifStmt->elseifs !== [] || $ifStmt->else instanceof Else_)) { + return \false; + } + if (count($ifStmt->stmts) !== 1) { + return \false; + } + if (!$ifStmt->stmts[0] instanceof Return_) { + return \false; + } + $returnStmt = $ifStmt->stmts[0]; + if (!$returnStmt->expr instanceof Expr) { + return \false; + } + if (!$this->isExpectedBool($returnStmt->expr, !$initialBool)) { + return \false; + } + if (!$foreach->valueVar instanceof Variable) { + return \false; + } + $type = $this->nodeTypeResolver->getNativeType($foreach->expr); + return $type->isArray()->yes(); + } + private function isExpectedBool(Expr $expr, bool $expected): bool + { + if ($expected) { + return $this->valueResolver->isTrue($expr); + } + return $this->valueResolver->isFalse($expr); + } + private function applyNegation(Expr $expr, bool $negate): Expr + { + if (!$negate) { + return $expr; + } + return $expr instanceof BooleanNot ? $expr->expr : new BooleanNot($expr); + } +} diff --git a/rules/Php84/NodeFactory/ForeachToArrayFindFactory.php b/rules/Php84/NodeFactory/ForeachToArrayFindFactory.php new file mode 100644 index 00000000000..a6cd5dcee03 --- /dev/null +++ b/rules/Php84/NodeFactory/ForeachToArrayFindFactory.php @@ -0,0 +1,153 @@ +valueResolver = $valueResolver; + $this->stmtsManipulator = $stmtsManipulator; + $this->foreachKeyUsedInConditionalAnalyzer = $foreachKeyUsedInConditionalAnalyzer; + $this->nodeComparator = $nodeComparator; + $this->nodeTypeResolver = $nodeTypeResolver; + $this->nodeFactory = $nodeFactory; + $this->nodeNameResolver = $nodeNameResolver; + } + /** + * @param StmtsAware $node + */ + public function createArrayFindAssign(Node $node, string $functionName, bool $compareKey): ?Node + { + if ($node->stmts === null) { + return null; + } + foreach ($node->stmts as $key => $stmt) { + if (!$stmt instanceof Foreach_) { + continue; + } + $prevStmt = $node->stmts[$key - 1] ?? null; + if (!$prevStmt instanceof Expression) { + continue; + } + if (!$prevStmt->expr instanceof Assign) { + continue; + } + $foreach = $stmt; + $prevAssign = $prevStmt->expr; + if (!$this->valueResolver->isNull($prevAssign->expr)) { + continue; + } + if (!$prevAssign->var instanceof Variable) { + continue; + } + $assignedVariable = $prevAssign->var; + if (!$this->isValidForeachStructure($foreach, $assignedVariable, $compareKey)) { + continue; + } + if ($this->stmtsManipulator->isVariableUsedInNextStmt($node, $key + 1, (string) $this->nodeNameResolver->getName($foreach->valueVar))) { + continue; + } + /** @var If_ $firstNodeInsideForeach */ + $firstNodeInsideForeach = $foreach->stmts[0]; + $condition = $firstNodeInsideForeach->cond; + $valueParam = $foreach->valueVar; + if (!$valueParam instanceof Variable) { + continue; + } + $params = [new Param($valueParam)]; + if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { + $params[] = new Param(new Variable((string) $this->nodeNameResolver->getName($foreach->keyVar))); + } + $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $condition]); + $funcCall = $this->nodeFactory->createFuncCall($functionName, [$foreach->expr, $arrowFunction]); + $newAssign = new Assign($assignedVariable, $funcCall); + $newExpression = new Expression($newAssign); + unset($node->stmts[$key - 1]); + $node->stmts[$key] = $newExpression; + $node->stmts = array_values($node->stmts); + return $node; + } + return null; + } + private function isValidForeachStructure(Foreach_ $foreach, Variable $assignedVariable, bool $compareKey): bool + { + if (count($foreach->stmts) !== 1) { + return \false; + } + $comparedExpr = $compareKey ? $foreach->keyVar : $foreach->valueVar; + if (!$comparedExpr instanceof Expr) { + return \false; + } + $firstStmt = $foreach->stmts[0]; + if (!$firstStmt instanceof If_ || count($firstStmt->stmts) !== 2) { + return \false; + } + $assignmentStmt = $firstStmt->stmts[0]; + $breakStmt = $firstStmt->stmts[1]; + if (!$assignmentStmt instanceof Expression || !$assignmentStmt->expr instanceof Assign || !$breakStmt instanceof Break_) { + return \false; + } + $assignment = $assignmentStmt->expr; + if (!$this->nodeComparator->areNodesEqual($assignment->var, $assignedVariable)) { + return \false; + } + if (!$this->nodeComparator->areNodesEqual($assignment->expr, $comparedExpr)) { + return \false; + } + if (!$foreach->valueVar instanceof Variable) { + return \false; + } + $type = $this->nodeTypeResolver->getNativeType($foreach->expr); + return $type->isArray()->yes(); + } +} diff --git a/rules/Php84/Rector/Foreach_/ForeachToArrayAllRector.php b/rules/Php84/Rector/Foreach_/ForeachToArrayAllRector.php index f81146f1918..108415bb1d2 100644 --- a/rules/Php84/Rector/Foreach_/ForeachToArrayAllRector.php +++ b/rules/Php84/Rector/Foreach_/ForeachToArrayAllRector.php @@ -4,21 +4,8 @@ namespace Rector\Php84\Rector\Foreach_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\ArrowFunction; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\BooleanNot; -use PhpParser\Node\Expr\Variable; -use PhpParser\Node\Param; -use PhpParser\Node\Stmt\Break_; -use PhpParser\Node\Stmt\Expression; -use PhpParser\Node\Stmt\Foreach_; -use PhpParser\Node\Stmt\If_; -use PhpParser\Node\Stmt\Return_; -use Rector\NodeManipulator\StmtsManipulator; -use Rector\Php84\NodeAnalyzer\ForeachKeyUsedInConditionalAnalyzer; +use Rector\Php84\NodeFactory\ForeachToArrayAnyAllFactory; use Rector\PhpParser\Enum\NodeGroup; -use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\ValueObject\PolyfillPackage; @@ -34,20 +21,10 @@ final class ForeachToArrayAllRector extends AbstractRector implements MinPhpVers /** * @readonly */ - private ValueResolver $valueResolver; - /** - * @readonly - */ - private StmtsManipulator $stmtsManipulator; - /** - * @readonly - */ - private ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer; - public function __construct(ValueResolver $valueResolver, StmtsManipulator $stmtsManipulator, ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer) + private ForeachToArrayAnyAllFactory $foreachToArrayAnyAllFactory; + public function __construct(ForeachToArrayAnyAllFactory $foreachToArrayAnyAllFactory) { - $this->valueResolver = $valueResolver; - $this->stmtsManipulator = $stmtsManipulator; - $this->foreachKeyUsedInConditionalAnalyzer = $foreachKeyUsedInConditionalAnalyzer; + $this->foreachToArrayAnyAllFactory = $foreachToArrayAnyAllFactory; } public function getRuleDefinition(): RuleDefinition { @@ -88,10 +65,7 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node->stmts === null) { - return null; - } - return $this->refactorBooleanAssignmentPattern($node) ?? $this->refactorEarlyReturnPattern($node); + return $this->foreachToArrayAnyAllFactory->refactorToArrayAnyAll($node, 'array_all', \true, \true, \false); } public function provideMinPhpVersion(): int { @@ -101,162 +75,4 @@ public function providePolyfillPackage(): string { return PolyfillPackage::PHP_84; } - /** - * @param StmtsAware $stmtsAware - */ - private function refactorBooleanAssignmentPattern(Node $stmtsAware): ?Node - { - if ($stmtsAware->stmts === null) { - return null; - } - foreach ($stmtsAware->stmts as $key => $stmt) { - if (!$stmt instanceof Foreach_) { - continue; - } - $prevStmt = $stmtsAware->stmts[$key - 1] ?? null; - if (!$prevStmt instanceof Expression) { - continue; - } - if (!$prevStmt->expr instanceof Assign) { - continue; - } - $foreach = $stmt; - $prevAssign = $prevStmt->expr; - if (!$this->valueResolver->isTrue($prevAssign->expr)) { - continue; - } - if (!$prevAssign->var instanceof Variable) { - continue; - } - $assignedVariable = $prevAssign->var; - if (!$this->isValidBooleanAssignmentForeachStructure($foreach, $assignedVariable)) { - continue; - } - if ($this->stmtsManipulator->isVariableUsedInNextStmt($stmtsAware, $key + 1, (string) $this->getName($foreach->valueVar))) { - continue; - } - /** @var If_ $firstNodeInsideForeach */ - $firstNodeInsideForeach = $foreach->stmts[0]; - $condition = $firstNodeInsideForeach->cond; - $valueParam = $foreach->valueVar; - if (!$valueParam instanceof Variable) { - continue; - } - $params = [new Param($valueParam)]; - if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { - $params[] = new Param(new Variable((string) $this->getName($foreach->keyVar))); - } - $negatedCondition = $condition instanceof BooleanNot ? $condition->expr : new BooleanNot($condition); - $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $negatedCondition]); - $funcCall = $this->nodeFactory->createFuncCall('array_all', [$foreach->expr, $arrowFunction]); - $newAssign = new Assign($assignedVariable, $funcCall); - $newExpression = new Expression($newAssign); - unset($stmtsAware->stmts[$key - 1]); - $stmtsAware->stmts[$key] = $newExpression; - $stmtsAware->stmts = array_values($stmtsAware->stmts); - return $stmtsAware; - } - return null; - } - /** - * @param StmtsAware $stmtsAware - */ - private function refactorEarlyReturnPattern(Node $stmtsAware): ?Node - { - if ($stmtsAware->stmts === null) { - return null; - } - foreach ($stmtsAware->stmts as $key => $stmt) { - if (!$stmt instanceof Foreach_) { - continue; - } - $foreach = $stmt; - $nextStmt = $stmtsAware->stmts[$key + 1] ?? null; - if (!$nextStmt instanceof Return_) { - continue; - } - if (!$nextStmt->expr instanceof Expr) { - continue; - } - if (!$this->valueResolver->isTrue($nextStmt->expr)) { - continue; - } - if (!$this->isValidEarlyReturnForeachStructure($foreach)) { - continue; - } - /** @var If_ $firstNodeInsideForeach */ - $firstNodeInsideForeach = $foreach->stmts[0]; - $condition = $firstNodeInsideForeach->cond; - $params = []; - if ($foreach->valueVar instanceof Variable) { - $params[] = new Param($foreach->valueVar); - } - if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { - $params[] = new Param(new Variable((string) $this->getName($foreach->keyVar))); - } - $negatedCondition = $condition instanceof BooleanNot ? $condition->expr : new BooleanNot($condition); - $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $negatedCondition]); - $funcCall = $this->nodeFactory->createFuncCall('array_all', [$foreach->expr, $arrowFunction]); - $stmtsAware->stmts[$key] = new Return_($funcCall); - unset($stmtsAware->stmts[$key + 1]); - $stmtsAware->stmts = array_values($stmtsAware->stmts); - return $stmtsAware; - } - return null; - } - private function isValidEarlyReturnForeachStructure(Foreach_ $foreach): bool - { - if (count($foreach->stmts) !== 1) { - return \false; - } - if (!$foreach->stmts[0] instanceof If_) { - return \false; - } - $ifStmt = $foreach->stmts[0]; - if (count($ifStmt->stmts) !== 1) { - return \false; - } - if (!$ifStmt->stmts[0] instanceof Return_) { - return \false; - } - $returnStmt = $ifStmt->stmts[0]; - if (!$returnStmt->expr instanceof Expr) { - return \false; - } - if (!$this->valueResolver->isFalse($returnStmt->expr)) { - return \false; - } - if (!$foreach->valueVar instanceof Variable) { - return \false; - } - $type = $this->nodeTypeResolver->getNativeType($foreach->expr); - return $type->isArray()->yes(); - } - private function isValidBooleanAssignmentForeachStructure(Foreach_ $foreach, Variable $assignedVariable): bool - { - if (count($foreach->stmts) !== 1) { - return \false; - } - $firstStmt = $foreach->stmts[0]; - if (!$firstStmt instanceof If_ || count($firstStmt->stmts) !== 2) { - return \false; - } - $assignmentStmt = $firstStmt->stmts[0]; - $breakStmt = $firstStmt->stmts[1]; - if (!$assignmentStmt instanceof Expression || !$assignmentStmt->expr instanceof Assign || !$breakStmt instanceof Break_) { - return \false; - } - $assignment = $assignmentStmt->expr; - if (!$this->nodeComparator->areNodesEqual($assignment->var, $assignedVariable)) { - return \false; - } - if (!$this->valueResolver->isFalse($assignment->expr)) { - return \false; - } - if (!$foreach->valueVar instanceof Variable) { - return \false; - } - $type = $this->nodeTypeResolver->getNativeType($foreach->expr); - return $type->isArray()->yes(); - } } diff --git a/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php b/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php index 7e26b8a4fa7..3b2b711a0ef 100644 --- a/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php +++ b/rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php @@ -4,21 +4,8 @@ namespace Rector\Php84\Rector\Foreach_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\ArrowFunction; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\Variable; -use PhpParser\Node\Param; -use PhpParser\Node\Stmt\Break_; -use PhpParser\Node\Stmt\Else_; -use PhpParser\Node\Stmt\Expression; -use PhpParser\Node\Stmt\Foreach_; -use PhpParser\Node\Stmt\If_; -use PhpParser\Node\Stmt\Return_; -use Rector\NodeManipulator\StmtsManipulator; -use Rector\Php84\NodeAnalyzer\ForeachKeyUsedInConditionalAnalyzer; +use Rector\Php84\NodeFactory\ForeachToArrayAnyAllFactory; use Rector\PhpParser\Enum\NodeGroup; -use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\ValueObject\PolyfillPackage; @@ -34,20 +21,10 @@ final class ForeachToArrayAnyRector extends AbstractRector implements MinPhpVers /** * @readonly */ - private ValueResolver $valueResolver; - /** - * @readonly - */ - private ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer; - /** - * @readonly - */ - private StmtsManipulator $stmtsManipulator; - public function __construct(ValueResolver $valueResolver, ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer, StmtsManipulator $stmtsManipulator) + private ForeachToArrayAnyAllFactory $foreachToArrayAnyAllFactory; + public function __construct(ForeachToArrayAnyAllFactory $foreachToArrayAnyAllFactory) { - $this->valueResolver = $valueResolver; - $this->foreachKeyUsedInConditionalAnalyzer = $foreachKeyUsedInConditionalAnalyzer; - $this->stmtsManipulator = $stmtsManipulator; + $this->foreachToArrayAnyAllFactory = $foreachToArrayAnyAllFactory; } public function getRuleDefinition(): RuleDefinition { @@ -88,10 +65,7 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node->stmts === null) { - return null; - } - return $this->refactorBooleanAssignmentPattern($node) ?? $this->refactorEarlyReturnPattern($node); + return $this->foreachToArrayAnyAllFactory->refactorToArrayAnyAll($node, 'array_any', \false, \false, \true); } public function provideMinPhpVersion(): int { @@ -101,163 +75,4 @@ public function providePolyfillPackage(): string { return PolyfillPackage::PHP_84; } - /** - * @param StmtsAware $stmtsAware - */ - private function refactorBooleanAssignmentPattern(Node $stmtsAware): ?Node - { - if ($stmtsAware->stmts === null) { - return null; - } - foreach ($stmtsAware->stmts as $key => $stmt) { - if (!$stmt instanceof Foreach_) { - continue; - } - $prevStmt = $stmtsAware->stmts[$key - 1] ?? null; - if (!$prevStmt instanceof Expression) { - continue; - } - if (!$prevStmt->expr instanceof Assign) { - continue; - } - $foreach = $stmt; - $prevAssign = $prevStmt->expr; - if (!$this->valueResolver->isFalse($prevAssign->expr)) { - continue; - } - if (!$prevAssign->var instanceof Variable) { - continue; - } - $assignedVariable = $prevAssign->var; - if (!$this->isValidBooleanAssignmentForeachStructure($foreach, $assignedVariable)) { - continue; - } - if ($this->stmtsManipulator->isVariableUsedInNextStmt($stmtsAware, $key + 1, (string) $this->getName($foreach->valueVar))) { - continue; - } - /** @var If_ $firstNodeInsideForeach */ - $firstNodeInsideForeach = $foreach->stmts[0]; - $condition = $firstNodeInsideForeach->cond; - $valueParam = $foreach->valueVar; - if (!$valueParam instanceof Variable) { - continue; - } - $params = [new Param($valueParam)]; - if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { - $params[] = new Param(new Variable((string) $this->getName($foreach->keyVar))); - } - $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $condition]); - $funcCall = $this->nodeFactory->createFuncCall('array_any', [$foreach->expr, $arrowFunction]); - $newAssign = new Assign($assignedVariable, $funcCall); - $newExpression = new Expression($newAssign); - unset($stmtsAware->stmts[$key - 1]); - $stmtsAware->stmts[$key] = $newExpression; - $stmtsAware->stmts = array_values($stmtsAware->stmts); - return $stmtsAware; - } - return null; - } - /** - * @param StmtsAware $stmtsAware - */ - private function refactorEarlyReturnPattern(Node $stmtsAware): ?Node - { - if ($stmtsAware->stmts === null) { - return null; - } - foreach ($stmtsAware->stmts as $key => $stmt) { - if (!$stmt instanceof Foreach_) { - continue; - } - $foreach = $stmt; - $nextStmt = $stmtsAware->stmts[$key + 1] ?? null; - if (!$nextStmt instanceof Return_) { - continue; - } - if (!$nextStmt->expr instanceof Expr) { - continue; - } - if (!$this->valueResolver->isFalse($nextStmt->expr)) { - continue; - } - if (!$this->isValidEarlyReturnForeachStructure($foreach)) { - continue; - } - /** @var If_ $firstNodeInsideForeach */ - $firstNodeInsideForeach = $foreach->stmts[0]; - $condition = $firstNodeInsideForeach->cond; - $params = []; - if ($foreach->valueVar instanceof Variable) { - $params[] = new Param($foreach->valueVar); - } - if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { - $params[] = new Param(new Variable((string) $this->getName($foreach->keyVar))); - } - $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $condition]); - $funcCall = $this->nodeFactory->createFuncCall('array_any', [$foreach->expr, $arrowFunction]); - $stmtsAware->stmts[$key] = new Return_($funcCall); - unset($stmtsAware->stmts[$key + 1]); - $stmtsAware->stmts = array_values($stmtsAware->stmts); - return $stmtsAware; - } - return null; - } - private function isValidBooleanAssignmentForeachStructure(Foreach_ $foreach, Variable $assignedVariable): bool - { - if (count($foreach->stmts) !== 1) { - return \false; - } - $firstStmt = $foreach->stmts[0]; - if (!$firstStmt instanceof If_ || count($firstStmt->stmts) !== 2) { - return \false; - } - if ($firstStmt->elseifs !== [] || $firstStmt->else instanceof Else_) { - return \false; - } - $assignmentStmt = $firstStmt->stmts[0]; - $breakStmt = $firstStmt->stmts[1]; - if (!$assignmentStmt instanceof Expression || !$assignmentStmt->expr instanceof Assign || !$breakStmt instanceof Break_) { - return \false; - } - $assignment = $assignmentStmt->expr; - if (!$this->nodeComparator->areNodesEqual($assignment->var, $assignedVariable)) { - return \false; - } - if (!$this->valueResolver->isTrue($assignment->expr)) { - return \false; - } - $type = $this->nodeTypeResolver->getNativeType($foreach->expr); - return $type->isArray()->yes(); - } - private function isValidEarlyReturnForeachStructure(Foreach_ $foreach): bool - { - if (count($foreach->stmts) !== 1) { - return \false; - } - if (!$foreach->stmts[0] instanceof If_) { - return \false; - } - $ifStmt = $foreach->stmts[0]; - if ($ifStmt->elseifs !== [] || $ifStmt->else instanceof Else_) { - return \false; - } - if (count($ifStmt->stmts) !== 1) { - return \false; - } - if (!$ifStmt->stmts[0] instanceof Return_) { - return \false; - } - $returnStmt = $ifStmt->stmts[0]; - if (!$returnStmt->expr instanceof Expr) { - return \false; - } - if (!$this->valueResolver->isTrue($returnStmt->expr)) { - return \false; - } - if (!$foreach->valueVar instanceof Variable) { - return \false; - } - $type = $this->nodeTypeResolver->getNativeType($foreach->expr); - return $type->isArray()->yes(); - } } diff --git a/rules/Php84/Rector/Foreach_/ForeachToArrayFindKeyRector.php b/rules/Php84/Rector/Foreach_/ForeachToArrayFindKeyRector.php index 660dbdb5495..0abc1c4bfb2 100644 --- a/rules/Php84/Rector/Foreach_/ForeachToArrayFindKeyRector.php +++ b/rules/Php84/Rector/Foreach_/ForeachToArrayFindKeyRector.php @@ -4,19 +4,8 @@ namespace Rector\Php84\Rector\Foreach_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\ArrowFunction; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\Variable; -use PhpParser\Node\Param; -use PhpParser\Node\Stmt\Break_; -use PhpParser\Node\Stmt\Expression; -use PhpParser\Node\Stmt\Foreach_; -use PhpParser\Node\Stmt\If_; -use Rector\NodeManipulator\StmtsManipulator; -use Rector\Php84\NodeAnalyzer\ForeachKeyUsedInConditionalAnalyzer; +use Rector\Php84\NodeFactory\ForeachToArrayFindFactory; use Rector\PhpParser\Enum\NodeGroup; -use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\ValueObject\PolyfillPackage; @@ -32,20 +21,10 @@ final class ForeachToArrayFindKeyRector extends AbstractRector implements MinPhp /** * @readonly */ - private ValueResolver $valueResolver; - /** - * @readonly - */ - private StmtsManipulator $stmtsManipulator; - /** - * @readonly - */ - private ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer; - public function __construct(ValueResolver $valueResolver, StmtsManipulator $stmtsManipulator, ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer) + private ForeachToArrayFindFactory $foreachToArrayFindFactory; + public function __construct(ForeachToArrayFindFactory $foreachToArrayFindFactory) { - $this->valueResolver = $valueResolver; - $this->stmtsManipulator = $stmtsManipulator; - $this->foreachKeyUsedInConditionalAnalyzer = $foreachKeyUsedInConditionalAnalyzer; + $this->foreachToArrayFindFactory = $foreachToArrayFindFactory; } public function getRuleDefinition(): RuleDefinition { @@ -79,56 +58,7 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node->stmts === null) { - return null; - } - foreach ($node->stmts as $key => $stmt) { - if (!$stmt instanceof Foreach_) { - continue; - } - $prevStmt = $node->stmts[$key - 1] ?? null; - if (!$prevStmt instanceof Expression) { - continue; - } - if (!$prevStmt->expr instanceof Assign) { - continue; - } - $foreach = $stmt; - $prevAssign = $prevStmt->expr; - if (!$this->valueResolver->isNull($prevAssign->expr)) { - continue; - } - if (!$prevAssign->var instanceof Variable) { - continue; - } - $assignedVariable = $prevAssign->var; - if (!$this->isValidForeachStructure($foreach, $assignedVariable)) { - continue; - } - if ($this->stmtsManipulator->isVariableUsedInNextStmt($node, $key + 1, (string) $this->getName($foreach->valueVar))) { - continue; - } - /** @var If_ $firstNodeInsideForeach */ - $firstNodeInsideForeach = $foreach->stmts[0]; - $condition = $firstNodeInsideForeach->cond; - $valueParam = $foreach->valueVar; - if (!$valueParam instanceof Variable) { - continue; - } - $params = [new Param($valueParam)]; - if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { - $params[] = new Param(new Variable((string) $this->getName($foreach->keyVar))); - } - $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $condition]); - $funcCall = $this->nodeFactory->createFuncCall('array_find_key', [$foreach->expr, $arrowFunction]); - $newAssign = new Assign($assignedVariable, $funcCall); - $newExpression = new Expression($newAssign); - unset($node->stmts[$key - 1]); - $node->stmts[$key] = $newExpression; - $node->stmts = array_values($node->stmts); - return $node; - } - return null; + return $this->foreachToArrayFindFactory->createArrayFindAssign($node, 'array_find_key', \true); } public function provideMinPhpVersion(): int { @@ -138,31 +68,4 @@ public function providePolyfillPackage(): string { return PolyfillPackage::PHP_84; } - private function isValidForeachStructure(Foreach_ $foreach, Variable $assignedVariable): bool - { - if (!$foreach->keyVar instanceof Expr || count($foreach->stmts) !== 1) { - return \false; - } - $firstStmt = $foreach->stmts[0]; - if (!$firstStmt instanceof If_ || count($firstStmt->stmts) !== 2) { - return \false; - } - $assignmentStmt = $firstStmt->stmts[0]; - $breakStmt = $firstStmt->stmts[1]; - if (!$assignmentStmt instanceof Expression || !$assignmentStmt->expr instanceof Assign || !$breakStmt instanceof Break_) { - return \false; - } - $assignment = $assignmentStmt->expr; - if (!$this->nodeComparator->areNodesEqual($assignment->var, $assignedVariable)) { - return \false; - } - if (!$this->nodeComparator->areNodesEqual($assignment->expr, $foreach->keyVar)) { - return \false; - } - if (!$foreach->valueVar instanceof Variable) { - return \false; - } - $type = $this->nodeTypeResolver->getNativeType($foreach->expr); - return $type->isArray()->yes(); - } } diff --git a/rules/Php84/Rector/Foreach_/ForeachToArrayFindRector.php b/rules/Php84/Rector/Foreach_/ForeachToArrayFindRector.php index fc20d528720..e878b6bec31 100644 --- a/rules/Php84/Rector/Foreach_/ForeachToArrayFindRector.php +++ b/rules/Php84/Rector/Foreach_/ForeachToArrayFindRector.php @@ -4,18 +4,8 @@ namespace Rector\Php84\Rector\Foreach_; use PhpParser\Node; -use PhpParser\Node\Expr\ArrowFunction; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\Variable; -use PhpParser\Node\Param; -use PhpParser\Node\Stmt\Break_; -use PhpParser\Node\Stmt\Expression; -use PhpParser\Node\Stmt\Foreach_; -use PhpParser\Node\Stmt\If_; -use Rector\NodeManipulator\StmtsManipulator; -use Rector\Php84\NodeAnalyzer\ForeachKeyUsedInConditionalAnalyzer; +use Rector\Php84\NodeFactory\ForeachToArrayFindFactory; use Rector\PhpParser\Enum\NodeGroup; -use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\ValueObject\PolyfillPackage; @@ -31,20 +21,10 @@ final class ForeachToArrayFindRector extends AbstractRector implements MinPhpVer /** * @readonly */ - private ValueResolver $valueResolver; - /** - * @readonly - */ - private StmtsManipulator $stmtsManipulator; - /** - * @readonly - */ - private ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer; - public function __construct(ValueResolver $valueResolver, StmtsManipulator $stmtsManipulator, ForeachKeyUsedInConditionalAnalyzer $foreachKeyUsedInConditionalAnalyzer) + private ForeachToArrayFindFactory $foreachToArrayFindFactory; + public function __construct(ForeachToArrayFindFactory $foreachToArrayFindFactory) { - $this->valueResolver = $valueResolver; - $this->stmtsManipulator = $stmtsManipulator; - $this->foreachKeyUsedInConditionalAnalyzer = $foreachKeyUsedInConditionalAnalyzer; + $this->foreachToArrayFindFactory = $foreachToArrayFindFactory; } public function getRuleDefinition(): RuleDefinition { @@ -74,56 +54,7 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node->stmts === null) { - return null; - } - foreach ($node->stmts as $key => $stmt) { - if (!$stmt instanceof Foreach_) { - continue; - } - $prevStmt = $node->stmts[$key - 1] ?? null; - if (!$prevStmt instanceof Expression) { - continue; - } - if (!$prevStmt->expr instanceof Assign) { - continue; - } - $foreach = $stmt; - $prevAssign = $prevStmt->expr; - if (!$this->valueResolver->isNull($prevAssign->expr)) { - continue; - } - if (!$prevAssign->var instanceof Variable) { - continue; - } - $assignedVariable = $prevAssign->var; - if (!$this->isValidForeachStructure($foreach, $assignedVariable)) { - continue; - } - if ($this->stmtsManipulator->isVariableUsedInNextStmt($node, $key + 1, (string) $this->getName($foreach->valueVar))) { - continue; - } - /** @var If_ $firstNodeInsideForeach */ - $firstNodeInsideForeach = $foreach->stmts[0]; - $condition = $firstNodeInsideForeach->cond; - $valueParam = $foreach->valueVar; - if (!$valueParam instanceof Variable) { - continue; - } - $params = [new Param($valueParam)]; - if ($foreach->keyVar instanceof Variable && $this->foreachKeyUsedInConditionalAnalyzer->isUsed($foreach->keyVar, $condition)) { - $params[] = new Param(new Variable((string) $this->getName($foreach->keyVar))); - } - $arrowFunction = new ArrowFunction(['params' => $params, 'expr' => $condition]); - $funcCall = $this->nodeFactory->createFuncCall('array_find', [$foreach->expr, $arrowFunction]); - $newAssign = new Assign($assignedVariable, $funcCall); - $newExpression = new Expression($newAssign); - unset($node->stmts[$key - 1]); - $node->stmts[$key] = $newExpression; - $node->stmts = array_values($node->stmts); - return $node; - } - return null; + return $this->foreachToArrayFindFactory->createArrayFindAssign($node, 'array_find', \false); } public function provideMinPhpVersion(): int { @@ -133,31 +64,4 @@ public function providePolyfillPackage(): string { return PolyfillPackage::PHP_84; } - private function isValidForeachStructure(Foreach_ $foreach, Variable $assignedVariable): bool - { - if (count($foreach->stmts) !== 1) { - return \false; - } - $firstStmt = $foreach->stmts[0]; - if (!$firstStmt instanceof If_ || count($firstStmt->stmts) !== 2) { - return \false; - } - $assignmentStmt = $firstStmt->stmts[0]; - $breakStmt = $firstStmt->stmts[1]; - if (!$assignmentStmt instanceof Expression || !$assignmentStmt->expr instanceof Assign || !$breakStmt instanceof Break_) { - return \false; - } - $assignment = $assignmentStmt->expr; - if (!$this->nodeComparator->areNodesEqual($assignment->var, $assignedVariable)) { - return \false; - } - if (!$this->nodeComparator->areNodesEqual($assignment->expr, $foreach->valueVar)) { - return \false; - } - if (!$foreach->valueVar instanceof Variable) { - return \false; - } - $type = $this->nodeTypeResolver->getNativeType($foreach->expr); - return $type->isArray()->yes(); - } } diff --git a/rules/TypeDeclaration/NodeAnalyzer/ArrayCallbackParamTypeResolver.php b/rules/TypeDeclaration/NodeAnalyzer/ArrayCallbackParamTypeResolver.php new file mode 100644 index 00000000000..f23ac34bf67 --- /dev/null +++ b/rules/TypeDeclaration/NodeAnalyzer/ArrayCallbackParamTypeResolver.php @@ -0,0 +1,119 @@ +nodeNameResolver = $nodeNameResolver; + $this->nodeTypeResolver = $nodeTypeResolver; + $this->staticTypeMapper = $staticTypeMapper; + } + /** + * Sets the first callback param type of an array_any()/array_all()/array_find()/array_find_key() call to the + * array item type. With $narrowNullable, only a nullable param is narrowed; otherwise only an untyped param is + * filled in. + * + * @param string[] $functionNames + */ + public function refactorFirstParamType(FuncCall $funcCall, array $functionNames, bool $narrowNullable): ?Node + { + if ($funcCall->isFirstClassCallable()) { + return null; + } + if (!$this->nodeNameResolver->isNames($funcCall, $functionNames)) { + return null; + } + $arrayArg = $funcCall->getArg('array', 0); + $callbackArg = $funcCall->getArg('callback', 1); + if (!$arrayArg instanceof Arg || !$callbackArg instanceof Arg) { + return null; + } + $callbackExpr = $callbackArg->value; + if (!$callbackExpr instanceof ArrowFunction && !$callbackExpr instanceof Closure) { + return null; + } + $valueParam = $callbackExpr->getParams()[0] ?? null; + if (!$valueParam instanceof Param) { + return null; + } + if ($narrowNullable) { + // only narrow a param that currently allows null + if (!$valueParam->type instanceof NullableType) { + return null; + } + } elseif ($valueParam->type instanceof Node) { + // only fill in a param that has no type yet + return null; + } + $itemType = $this->resolveArrayItemType($this->nodeTypeResolver->getType($arrayArg->value)); + if (!$itemType instanceof Type) { + return null; + } + if ($itemType instanceof MixedType) { + return null; + } + // nothing to narrow when the item type is itself nullable or unknown + if ($narrowNullable && !$itemType->isNull()->no()) { + return null; + } + $paramTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($itemType, TypeKind::PARAM); + if (!$paramTypeNode instanceof Node) { + return null; + } + $valueParam->type = $paramTypeNode; + return $funcCall; + } + private function resolveArrayItemType(Type $arrayType): ?Type + { + if ($arrayType instanceof ConstantArrayType || $arrayType instanceof ArrayType) { + return $arrayType->getItemType(); + } + if ($arrayType instanceof IntersectionType) { + foreach ($arrayType->getTypes() as $subType) { + if ($subType instanceof AccessoryArrayListType) { + continue; + } + if (!$subType instanceof ArrayType) { + continue; + } + return $subType->getItemType(); + } + } + return null; + } +} diff --git a/rules/TypeDeclaration/NodeAnalyzer/SetUpAssignedPropertyTyper.php b/rules/TypeDeclaration/NodeAnalyzer/SetUpAssignedPropertyTyper.php new file mode 100644 index 00000000000..d7091be32f6 --- /dev/null +++ b/rules/TypeDeclaration/NodeAnalyzer/SetUpAssignedPropertyTyper.php @@ -0,0 +1,159 @@ +testsNodeAnalyzer = $testsNodeAnalyzer; + $this->phpDocInfoFactory = $phpDocInfoFactory; + $this->staticTypeMapper = $staticTypeMapper; + $this->docBlockUpdater = $docBlockUpdater; + $this->betterNodeFinder = $betterNodeFinder; + $this->reflectionProvider = $reflectionProvider; + $this->nodeNameResolver = $nodeNameResolver; + } + /** + * @param callable(Expr): bool $isTargetAssignExpr + */ + public function refactorClass(Class_ $class, callable $isTargetAssignExpr): ?Class_ + { + if (!$this->testsNodeAnalyzer->isInTestClass($class)) { + return null; + } + $setUpClassMethod = $class->getMethod(MethodName::SET_UP); + if (!$setUpClassMethod instanceof ClassMethod) { + return null; + } + $hasChanged = \false; + foreach ($class->getProperties() as $property) { + // type is already set + if ($property->type instanceof Node) { + continue; + } + if (!$property->isPrivate()) { + continue; + } + if ($property->isStatic()) { + continue; + } + // exactly one property + if (count($property->props) !== 1) { + continue; + } + $propertyName = $this->nodeNameResolver->getName($property->props[0]); + if (!$this->isAssignedInSetUp($setUpClassMethod, $propertyName, $isTargetAssignExpr)) { + continue; + } + $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNode($property); + if (!$propertyPhpDocInfo instanceof PhpDocInfo) { + continue; + } + $varType = $propertyPhpDocInfo->getVarType(); + if (!$varType instanceof ObjectType) { + continue; + } + $propertyTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($varType, TypeKind::PROPERTY); + if (!$propertyTypeNode instanceof Name) { + continue; + } + // must be an existing object type + if (!$this->reflectionProvider->hasClass($propertyTypeNode->toString())) { + continue; + } + $property->type = $propertyTypeNode; + $this->removeVarTag($propertyPhpDocInfo, $property); + $hasChanged = \true; + } + if ($hasChanged) { + return $class; + } + return null; + } + /** + * @param callable(Expr): bool $isTargetAssignExpr + */ + private function isAssignedInSetUp(ClassMethod $setUpClassMethod, ?string $propertyName, callable $isTargetAssignExpr): bool + { + /** @var Assign[] $assigns */ + $assigns = $this->betterNodeFinder->findInstanceOf($setUpClassMethod, Assign::class); + foreach ($assigns as $assign) { + if (!$assign->var instanceof PropertyFetch) { + continue; + } + $propertyFetch = $assign->var; + if (!$this->nodeNameResolver->isName($propertyFetch->var, 'this')) { + continue; + } + if (!$this->nodeNameResolver->isName($propertyFetch, (string) $propertyName)) { + continue; + } + if ($isTargetAssignExpr($assign->expr)) { + return \true; + } + } + return \false; + } + private function removeVarTag(PhpDocInfo $propertyPhpDocInfo, Property $property): void + { + $varTagValueNode = $propertyPhpDocInfo->getVarTagValueNode(); + if (!$varTagValueNode instanceof VarTagValueNode) { + return; + } + $propertyPhpDocInfo->removeByType(VarTagValueNode::class); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($property); + } +} diff --git a/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromContainerGetSetUpRector.php b/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromContainerGetSetUpRector.php index 77b86a69cde..144651cda30 100644 --- a/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromContainerGetSetUpRector.php +++ b/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromContainerGetSetUpRector.php @@ -5,27 +5,13 @@ use PhpParser\Node; use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\Variable; -use PhpParser\Node\Name; use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\ClassMethod; -use PhpParser\Node\Stmt\Property; -use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; -use PHPStan\Reflection\ReflectionProvider; -use PHPStan\Type\ObjectType; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\Comments\NodeDocBlock\DocBlockUpdater; -use Rector\PhpParser\Node\BetterNodeFinder; -use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; -use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; use Rector\Rector\AbstractRector; -use Rector\StaticTypeMapper\StaticTypeMapper; -use Rector\ValueObject\MethodName; +use Rector\TypeDeclaration\NodeAnalyzer\SetUpAssignedPropertyTyper; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -38,35 +24,10 @@ final class TypedPropertyFromContainerGetSetUpRector extends AbstractRector impl /** * @readonly */ - private TestsNodeAnalyzer $testsNodeAnalyzer; - /** - * @readonly - */ - private PhpDocInfoFactory $phpDocInfoFactory; - /** - * @readonly - */ - private StaticTypeMapper $staticTypeMapper; - /** - * @readonly - */ - private DocBlockUpdater $docBlockUpdater; - /** - * @readonly - */ - private BetterNodeFinder $betterNodeFinder; - /** - * @readonly - */ - private ReflectionProvider $reflectionProvider; - public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, DocBlockUpdater $docBlockUpdater, BetterNodeFinder $betterNodeFinder, ReflectionProvider $reflectionProvider) + private SetUpAssignedPropertyTyper $setUpAssignedPropertyTyper; + public function __construct(SetUpAssignedPropertyTyper $setUpAssignedPropertyTyper) { - $this->testsNodeAnalyzer = $testsNodeAnalyzer; - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->staticTypeMapper = $staticTypeMapper; - $this->docBlockUpdater = $docBlockUpdater; - $this->betterNodeFinder = $betterNodeFinder; - $this->reflectionProvider = $reflectionProvider; + $this->setUpAssignedPropertyTyper = $setUpAssignedPropertyTyper; } public function getRuleDefinition(): RuleDefinition { @@ -113,83 +74,12 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if (!$this->testsNodeAnalyzer->isInTestClass($node)) { - return null; - } - $setUpClassMethod = $node->getMethod(MethodName::SET_UP); - if (!$setUpClassMethod instanceof ClassMethod) { - return null; - } - $hasChanged = \false; - foreach ($node->getProperties() as $property) { - // type is already set - if ($property->type instanceof Node) { - continue; - } - if (!$property->isPrivate()) { - continue; - } - if ($property->isStatic()) { - continue; - } - // exactly one property - if (count($property->props) !== 1) { - continue; - } - $propertyName = $this->getName($property->props[0]); - if (!$this->isAssignedViaContainerGetInSetUp($setUpClassMethod, $propertyName)) { - continue; - } - $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNode($property); - if (!$propertyPhpDocInfo instanceof PhpDocInfo) { - continue; - } - $varType = $propertyPhpDocInfo->getVarType(); - if (!$varType instanceof ObjectType) { - continue; - } - $propertyTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($varType, TypeKind::PROPERTY); - if (!$propertyTypeNode instanceof Name) { - continue; - } - // must be an existing object type - if (!$this->reflectionProvider->hasClass($propertyTypeNode->toString())) { - continue; - } - $property->type = $propertyTypeNode; - $this->removeVarTag($propertyPhpDocInfo, $property); - $hasChanged = \true; - } - if ($hasChanged) { - return $node; - } - return null; + return $this->setUpAssignedPropertyTyper->refactorClass($node, fn(Expr $expr): bool => $this->isContainerGetCall($expr)); } public function provideMinPhpVersion(): int { return PhpVersionFeature::TYPED_PROPERTIES; } - private function isAssignedViaContainerGetInSetUp(ClassMethod $setUpClassMethod, string $propertyName): bool - { - /** @var Assign[] $assigns */ - $assigns = $this->betterNodeFinder->findInstanceOf($setUpClassMethod, Assign::class); - foreach ($assigns as $assign) { - if (!$assign->var instanceof PropertyFetch) { - continue; - } - $propertyFetch = $assign->var; - if (!$this->isName($propertyFetch->var, 'this')) { - continue; - } - if (!$this->isName($propertyFetch, $propertyName)) { - continue; - } - if ($this->isContainerGetCall($assign->expr)) { - return \true; - } - } - return \false; - } private function isContainerGetCall(Expr $expr): bool { if (!$expr instanceof MethodCall) { @@ -210,13 +100,4 @@ private function isContainerGetCall(Expr $expr): bool // $this->get(...) return $caller instanceof Variable && $this->isName($caller, 'this'); } - private function removeVarTag(PhpDocInfo $propertyPhpDocInfo, Property $property): void - { - $varTagValueNode = $propertyPhpDocInfo->getVarTagValueNode(); - if (!$varTagValueNode instanceof VarTagValueNode) { - return; - } - $propertyPhpDocInfo->removeByType(VarTagValueNode::class); - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($property); - } } diff --git a/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromGetRepositorySetUpRector.php b/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromGetRepositorySetUpRector.php index 1b4752643ca..840e2aceba0 100644 --- a/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromGetRepositorySetUpRector.php +++ b/rules/TypeDeclaration/Rector/Class_/TypedPropertyFromGetRepositorySetUpRector.php @@ -5,25 +5,10 @@ use PhpParser\Node; use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\MethodCall; -use PhpParser\Node\Expr\PropertyFetch; -use PhpParser\Node\Name; use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\ClassMethod; -use PhpParser\Node\Stmt\Property; -use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; -use PHPStan\Reflection\ReflectionProvider; -use PHPStan\Type\ObjectType; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; -use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; -use Rector\Comments\NodeDocBlock\DocBlockUpdater; -use Rector\PhpParser\Node\BetterNodeFinder; -use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; -use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; use Rector\Rector\AbstractRector; -use Rector\StaticTypeMapper\StaticTypeMapper; -use Rector\ValueObject\MethodName; +use Rector\TypeDeclaration\NodeAnalyzer\SetUpAssignedPropertyTyper; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -36,35 +21,10 @@ final class TypedPropertyFromGetRepositorySetUpRector extends AbstractRector imp /** * @readonly */ - private TestsNodeAnalyzer $testsNodeAnalyzer; - /** - * @readonly - */ - private PhpDocInfoFactory $phpDocInfoFactory; - /** - * @readonly - */ - private StaticTypeMapper $staticTypeMapper; - /** - * @readonly - */ - private DocBlockUpdater $docBlockUpdater; - /** - * @readonly - */ - private BetterNodeFinder $betterNodeFinder; - /** - * @readonly - */ - private ReflectionProvider $reflectionProvider; - public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, DocBlockUpdater $docBlockUpdater, BetterNodeFinder $betterNodeFinder, ReflectionProvider $reflectionProvider) + private SetUpAssignedPropertyTyper $setUpAssignedPropertyTyper; + public function __construct(SetUpAssignedPropertyTyper $setUpAssignedPropertyTyper) { - $this->testsNodeAnalyzer = $testsNodeAnalyzer; - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->staticTypeMapper = $staticTypeMapper; - $this->docBlockUpdater = $docBlockUpdater; - $this->betterNodeFinder = $betterNodeFinder; - $this->reflectionProvider = $reflectionProvider; + $this->setUpAssignedPropertyTyper = $setUpAssignedPropertyTyper; } public function getRuleDefinition(): RuleDefinition { @@ -111,83 +71,12 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if (!$this->testsNodeAnalyzer->isInTestClass($node)) { - return null; - } - $setUpClassMethod = $node->getMethod(MethodName::SET_UP); - if (!$setUpClassMethod instanceof ClassMethod) { - return null; - } - $hasChanged = \false; - foreach ($node->getProperties() as $property) { - // type is already set - if ($property->type instanceof Node) { - continue; - } - if (!$property->isPrivate()) { - continue; - } - if ($property->isStatic()) { - continue; - } - // exactly one property - if (count($property->props) !== 1) { - continue; - } - $propertyName = $this->getName($property->props[0]); - if (!$this->isAssignedViaGetRepositoryInSetUp($setUpClassMethod, $propertyName)) { - continue; - } - $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNode($property); - if (!$propertyPhpDocInfo instanceof PhpDocInfo) { - continue; - } - $varType = $propertyPhpDocInfo->getVarType(); - if (!$varType instanceof ObjectType) { - continue; - } - $propertyTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($varType, TypeKind::PROPERTY); - if (!$propertyTypeNode instanceof Name) { - continue; - } - // must be an existing object type - if (!$this->reflectionProvider->hasClass($propertyTypeNode->toString())) { - continue; - } - $property->type = $propertyTypeNode; - $this->removeVarTag($propertyPhpDocInfo, $property); - $hasChanged = \true; - } - if ($hasChanged) { - return $node; - } - return null; + return $this->setUpAssignedPropertyTyper->refactorClass($node, fn(Expr $expr): bool => $this->isGetRepositoryCall($expr)); } public function provideMinPhpVersion(): int { return PhpVersionFeature::TYPED_PROPERTIES; } - private function isAssignedViaGetRepositoryInSetUp(ClassMethod $setUpClassMethod, string $propertyName): bool - { - /** @var Assign[] $assigns */ - $assigns = $this->betterNodeFinder->findInstanceOf($setUpClassMethod, Assign::class); - foreach ($assigns as $assign) { - if (!$assign->var instanceof PropertyFetch) { - continue; - } - $propertyFetch = $assign->var; - if (!$this->isName($propertyFetch->var, 'this')) { - continue; - } - if (!$this->isName($propertyFetch, $propertyName)) { - continue; - } - if ($this->isGetRepositoryCall($assign->expr)) { - return \true; - } - } - return \false; - } private function isGetRepositoryCall(Expr $expr): bool { if (!$expr instanceof MethodCall) { @@ -195,13 +84,4 @@ private function isGetRepositoryCall(Expr $expr): bool } return $this->isName($expr->name, 'getRepository'); } - private function removeVarTag(PhpDocInfo $propertyPhpDocInfo, Property $property): void - { - $varTagValueNode = $propertyPhpDocInfo->getVarTagValueNode(); - if (!$varTagValueNode instanceof VarTagValueNode) { - return; - } - $propertyPhpDocInfo->removeByType(VarTagValueNode::class); - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($property); - } } diff --git a/rules/TypeDeclaration/Rector/FuncCall/AddArrayAnyAllClosureParamTypeRector.php b/rules/TypeDeclaration/Rector/FuncCall/AddArrayAnyAllClosureParamTypeRector.php index 90c49f41363..fc86a40f470 100644 --- a/rules/TypeDeclaration/Rector/FuncCall/AddArrayAnyAllClosureParamTypeRector.php +++ b/rules/TypeDeclaration/Rector/FuncCall/AddArrayAnyAllClosureParamTypeRector.php @@ -4,20 +4,9 @@ namespace Rector\TypeDeclaration\Rector\FuncCall; use PhpParser\Node; -use PhpParser\Node\Arg; -use PhpParser\Node\Expr\ArrowFunction; -use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\FuncCall; -use PhpParser\Node\Param; -use PHPStan\Type\Accessory\AccessoryArrayListType; -use PHPStan\Type\ArrayType; -use PHPStan\Type\Constant\ConstantArrayType; -use PHPStan\Type\IntersectionType; -use PHPStan\Type\MixedType; -use PHPStan\Type\Type; -use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Rector\AbstractRector; -use Rector\StaticTypeMapper\StaticTypeMapper; +use Rector\TypeDeclaration\NodeAnalyzer\ArrayCallbackParamTypeResolver; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -30,14 +19,14 @@ final class AddArrayAnyAllClosureParamTypeRector extends AbstractRector implemen /** * @readonly */ - private StaticTypeMapper $staticTypeMapper; + private ArrayCallbackParamTypeResolver $arrayCallbackParamTypeResolver; /** * @var string[] */ private const FUNCTION_NAMES = ['array_any', 'array_all']; - public function __construct(StaticTypeMapper $staticTypeMapper) + public function __construct(ArrayCallbackParamTypeResolver $arrayCallbackParamTypeResolver) { - $this->staticTypeMapper = $staticTypeMapper; + $this->arrayCallbackParamTypeResolver = $arrayCallbackParamTypeResolver; } public function getRuleDefinition(): RuleDefinition { @@ -63,63 +52,10 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node->isFirstClassCallable()) { - return null; - } - if (!$this->isNames($node, self::FUNCTION_NAMES)) { - return null; - } - $arrayArg = $node->getArg('array', 0); - $callbackArg = $node->getArg('callback', 1); - if (!$arrayArg instanceof Arg || !$callbackArg instanceof Arg) { - return null; - } - $callbackExpr = $callbackArg->value; - if (!$callbackExpr instanceof ArrowFunction && !$callbackExpr instanceof Closure) { - return null; - } - $valueParam = $callbackExpr->getParams()[0] ?? null; - if (!$valueParam instanceof Param) { - return null; - } - // only fill in a param that has no type yet - if ($valueParam->type instanceof Node) { - return null; - } - $itemType = $this->resolveArrayItemType($this->getType($arrayArg->value)); - if (!$itemType instanceof Type) { - return null; - } - if ($itemType instanceof MixedType) { - return null; - } - $paramTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($itemType, TypeKind::PARAM); - if (!$paramTypeNode instanceof Node) { - return null; - } - $valueParam->type = $paramTypeNode; - return $node; + return $this->arrayCallbackParamTypeResolver->refactorFirstParamType($node, self::FUNCTION_NAMES, \false); } public function provideMinPhpVersion(): int { return PhpVersionFeature::ARRAY_ANY; } - private function resolveArrayItemType(Type $arrayType): ?Type - { - if ($arrayType instanceof ConstantArrayType || $arrayType instanceof ArrayType) { - return $arrayType->getItemType(); - } - if ($arrayType instanceof IntersectionType) { - foreach ($arrayType->getTypes() as $subType) { - if ($subType instanceof AccessoryArrayListType) { - continue; - } - if (!$subType instanceof ArrayType) { - continue; - } - return $subType->getItemType(); - } - } - return null; - } } diff --git a/rules/TypeDeclaration/Rector/FuncCall/NarrowArrayAnyAllNullableParamTypeRector.php b/rules/TypeDeclaration/Rector/FuncCall/NarrowArrayAnyAllNullableParamTypeRector.php index 61cd455c6be..8930e1327ba 100644 --- a/rules/TypeDeclaration/Rector/FuncCall/NarrowArrayAnyAllNullableParamTypeRector.php +++ b/rules/TypeDeclaration/Rector/FuncCall/NarrowArrayAnyAllNullableParamTypeRector.php @@ -4,21 +4,9 @@ namespace Rector\TypeDeclaration\Rector\FuncCall; use PhpParser\Node; -use PhpParser\Node\Arg; -use PhpParser\Node\Expr\ArrowFunction; -use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\FuncCall; -use PhpParser\Node\NullableType; -use PhpParser\Node\Param; -use PHPStan\Type\Accessory\AccessoryArrayListType; -use PHPStan\Type\ArrayType; -use PHPStan\Type\Constant\ConstantArrayType; -use PHPStan\Type\IntersectionType; -use PHPStan\Type\MixedType; -use PHPStan\Type\Type; -use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Rector\AbstractRector; -use Rector\StaticTypeMapper\StaticTypeMapper; +use Rector\TypeDeclaration\NodeAnalyzer\ArrayCallbackParamTypeResolver; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -31,14 +19,14 @@ final class NarrowArrayAnyAllNullableParamTypeRector extends AbstractRector impl /** * @readonly */ - private StaticTypeMapper $staticTypeMapper; + private ArrayCallbackParamTypeResolver $arrayCallbackParamTypeResolver; /** * @var string[] */ private const FUNCTION_NAMES = ['array_any', 'array_all', 'array_find', 'array_find_key']; - public function __construct(StaticTypeMapper $staticTypeMapper) + public function __construct(ArrayCallbackParamTypeResolver $arrayCallbackParamTypeResolver) { - $this->staticTypeMapper = $staticTypeMapper; + $this->arrayCallbackParamTypeResolver = $arrayCallbackParamTypeResolver; } public function getRuleDefinition(): RuleDefinition { @@ -64,64 +52,10 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($node->isFirstClassCallable()) { - return null; - } - if (!$this->isNames($node, self::FUNCTION_NAMES)) { - return null; - } - $arrayArg = $node->getArg('array', 0); - $callbackArg = $node->getArg('callback', 1); - if (!$arrayArg instanceof Arg || !$callbackArg instanceof Arg) { - return null; - } - $callbackExpr = $callbackArg->value; - if (!$callbackExpr instanceof ArrowFunction && !$callbackExpr instanceof Closure) { - return null; - } - $valueParam = $callbackExpr->getParams()[0] ?? null; - if (!$valueParam instanceof Param) { - return null; - } - // only narrow a param that currently allows null - if (!$valueParam->type instanceof NullableType) { - return null; - } - $itemType = $this->resolveArrayItemType($this->getType($arrayArg->value)); - if (!$itemType instanceof Type) { - return null; - } - // nothing to narrow when the item type is itself nullable or unknown - if ($itemType instanceof MixedType || !$itemType->isNull()->no()) { - return null; - } - $paramTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($itemType, TypeKind::PARAM); - if (!$paramTypeNode instanceof Node) { - return null; - } - $valueParam->type = $paramTypeNode; - return $node; + return $this->arrayCallbackParamTypeResolver->refactorFirstParamType($node, self::FUNCTION_NAMES, \true); } public function provideMinPhpVersion(): int { return PhpVersionFeature::ARRAY_ANY; } - private function resolveArrayItemType(Type $arrayType): ?Type - { - if ($arrayType instanceof ConstantArrayType || $arrayType instanceof ArrayType) { - return $arrayType->getItemType(); - } - if ($arrayType instanceof IntersectionType) { - foreach ($arrayType->getTypes() as $subType) { - if ($subType instanceof AccessoryArrayListType) { - continue; - } - if (!$subType instanceof ArrayType) { - continue; - } - return $subType->getItemType(); - } - } - return null; - } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 1cfd0199b8f..1003999c9cf 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 = '9c56f19713758c6f4cfd534a17bf5c9f91a52bb9'; + public const PACKAGE_VERSION = '6d8240575626342682a62f2c6f016f1579cca59e'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-12 11:41:09'; + public const RELEASE_DATE = '2026-09-12 11:41:59'; /** * @var int */ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 70ceada6336..8bc04b89383 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2151,6 +2151,8 @@ 'Rector\\Php83\\Rector\\FuncCall\\DynamicClassConstFetchRector' => $baseDir . '/rules/Php83/Rector/FuncCall/DynamicClassConstFetchRector.php', 'Rector\\Php83\\Rector\\FuncCall\\RemoveGetClassGetParentClassNoArgsRector' => $baseDir . '/rules/Php83/Rector/FuncCall/RemoveGetClassGetParentClassNoArgsRector.php', 'Rector\\Php84\\NodeAnalyzer\\ForeachKeyUsedInConditionalAnalyzer' => $baseDir . '/rules/Php84/NodeAnalyzer/ForeachKeyUsedInConditionalAnalyzer.php', + 'Rector\\Php84\\NodeFactory\\ForeachToArrayAnyAllFactory' => $baseDir . '/rules/Php84/NodeFactory/ForeachToArrayAnyAllFactory.php', + 'Rector\\Php84\\NodeFactory\\ForeachToArrayFindFactory' => $baseDir . '/rules/Php84/NodeFactory/ForeachToArrayFindFactory.php', 'Rector\\Php84\\Rector\\Class_\\DeprecatedAnnotationToDeprecatedAttributeRector' => $baseDir . '/rules/Php84/Rector/Class_/DeprecatedAnnotationToDeprecatedAttributeRector.php', 'Rector\\Php84\\Rector\\Class_\\PropertyHookRector' => $baseDir . '/rules/Php84/Rector/Class_/PropertyHookRector.php', 'Rector\\Php84\\Rector\\Foreach_\\ForeachToArrayAllRector' => $baseDir . '/rules/Php84/Rector/Foreach_/ForeachToArrayAllRector.php', @@ -2659,6 +2661,7 @@ 'Rector\\TypeDeclaration\\Guard\\ParamTypeAddGuard' => $baseDir . '/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php', 'Rector\\TypeDeclaration\\Guard\\PropertyTypeOverrideGuard' => $baseDir . '/rules/TypeDeclaration/Guard/PropertyTypeOverrideGuard.php', 'Rector\\TypeDeclaration\\Matcher\\PropertyAssignMatcher' => $baseDir . '/rules/TypeDeclaration/Matcher/PropertyAssignMatcher.php', + 'Rector\\TypeDeclaration\\NodeAnalyzer\\ArrayCallbackParamTypeResolver' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ArrayCallbackParamTypeResolver.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\AutowiredClassMethodOrPropertyAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\CallTypesResolver' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\CallerParamMatcher' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php', @@ -2672,6 +2675,7 @@ 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnFilter\\ExclusiveNativeCallLikeReturnMatcher' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnFilter/ExclusiveNativeCallLikeReturnMatcher.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\StrictNativeFunctionReturnTypeAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/StrictNativeFunctionReturnTypeAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\StrictReturnNewAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/StrictReturnNewAnalyzer.php', + 'Rector\\TypeDeclaration\\NodeAnalyzer\\SetUpAssignedPropertyTyper' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/SetUpAssignedPropertyTyper.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\StrictReturnNewArrayResolver' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\StrictTypeSafetyChecker' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/StrictTypeSafetyChecker.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\TypeNodeUnwrapper' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/TypeNodeUnwrapper.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 99f1495b543..10be3e23d6e 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2376,6 +2376,8 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\Php83\\Rector\\FuncCall\\DynamicClassConstFetchRector' => __DIR__ . '/../..' . '/rules/Php83/Rector/FuncCall/DynamicClassConstFetchRector.php', 'Rector\\Php83\\Rector\\FuncCall\\RemoveGetClassGetParentClassNoArgsRector' => __DIR__ . '/../..' . '/rules/Php83/Rector/FuncCall/RemoveGetClassGetParentClassNoArgsRector.php', 'Rector\\Php84\\NodeAnalyzer\\ForeachKeyUsedInConditionalAnalyzer' => __DIR__ . '/../..' . '/rules/Php84/NodeAnalyzer/ForeachKeyUsedInConditionalAnalyzer.php', + 'Rector\\Php84\\NodeFactory\\ForeachToArrayAnyAllFactory' => __DIR__ . '/../..' . '/rules/Php84/NodeFactory/ForeachToArrayAnyAllFactory.php', + 'Rector\\Php84\\NodeFactory\\ForeachToArrayFindFactory' => __DIR__ . '/../..' . '/rules/Php84/NodeFactory/ForeachToArrayFindFactory.php', 'Rector\\Php84\\Rector\\Class_\\DeprecatedAnnotationToDeprecatedAttributeRector' => __DIR__ . '/../..' . '/rules/Php84/Rector/Class_/DeprecatedAnnotationToDeprecatedAttributeRector.php', 'Rector\\Php84\\Rector\\Class_\\PropertyHookRector' => __DIR__ . '/../..' . '/rules/Php84/Rector/Class_/PropertyHookRector.php', 'Rector\\Php84\\Rector\\Foreach_\\ForeachToArrayAllRector' => __DIR__ . '/../..' . '/rules/Php84/Rector/Foreach_/ForeachToArrayAllRector.php', @@ -2884,6 +2886,7 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\TypeDeclaration\\Guard\\ParamTypeAddGuard' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php', 'Rector\\TypeDeclaration\\Guard\\PropertyTypeOverrideGuard' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Guard/PropertyTypeOverrideGuard.php', 'Rector\\TypeDeclaration\\Matcher\\PropertyAssignMatcher' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Matcher/PropertyAssignMatcher.php', + 'Rector\\TypeDeclaration\\NodeAnalyzer\\ArrayCallbackParamTypeResolver' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ArrayCallbackParamTypeResolver.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\AutowiredClassMethodOrPropertyAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\CallTypesResolver' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\CallerParamMatcher' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php', @@ -2897,6 +2900,7 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnFilter\\ExclusiveNativeCallLikeReturnMatcher' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnFilter/ExclusiveNativeCallLikeReturnMatcher.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\StrictNativeFunctionReturnTypeAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/StrictNativeFunctionReturnTypeAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\StrictReturnNewAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/StrictReturnNewAnalyzer.php', + 'Rector\\TypeDeclaration\\NodeAnalyzer\\SetUpAssignedPropertyTyper' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/SetUpAssignedPropertyTyper.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\StrictReturnNewArrayResolver' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/StrictReturnNewArrayResolver.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\StrictTypeSafetyChecker' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/StrictTypeSafetyChecker.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\TypeNodeUnwrapper' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/TypeNodeUnwrapper.php', From a2c6be368e885bf63649a75a5a1c5f8561f69364 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 12 Sep 2026 09:47:57 +0000 Subject: [PATCH 166/169] Updated Rector to commit 71a969fbd931a4f206a504d981e2aa7543dd2351 https://github.com/rectorphp/rector-src/commit/71a969fbd931a4f206a504d981e2aa7543dd2351 [CI] Tighten duplicated code gate from 400 to 150 tokens (#8487) --- src/Application/VersionResolver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 1003999c9cf..978cd391890 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 = '6d8240575626342682a62f2c6f016f1579cca59e'; + public const PACKAGE_VERSION = '71a969fbd931a4f206a504d981e2aa7543dd2351'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-12 11:41:59'; + public const RELEASE_DATE = '2026-09-12 11:45:27'; /** * @var int */ From 9d41ae756bf1d3d04934f2fe18e2ea41c38d0baf Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 13 Sep 2026 06:44:08 +0000 Subject: [PATCH 167/169] Updated Rector to commit 71a969fbd931a4f206a504d981e2aa7543dd2351 --- vendor/composer/installed.json | 8 +++---- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- .../ConsoleExecuteReturnIntRector.php | 24 ++++++++++--------- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index a5a9fee4141..b3256170c0e 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1731,12 +1731,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "4babdb9738571b6481f09c6f7315fb2b1086e9e9" + "reference": "3b5d6251c7a6561e30170f58d1e5d29e8a16b6e1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/4babdb9738571b6481f09c6f7315fb2b1086e9e9", - "reference": "4babdb9738571b6481f09c6f7315fb2b1086e9e9", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/3b5d6251c7a6561e30170f58d1e5d29e8a16b6e1", + "reference": "3b5d6251c7a6561e30170f58d1e5d29e8a16b6e1", "shasum": "" }, "require": { @@ -1768,7 +1768,7 @@ "tracy\/tracy": "^2.12", "twig\/twig": "^3.21" }, - "time": "2026-09-11T18:53:37+00:00", + "time": "2026-09-13T06:41:52+00:00", "default-branch": true, "type": "rector-extension", "installation-source": "dist", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 470b99d12f6..a386e21854a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.13.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'c9cbc660a72a7865c01b52be6c5dbca947c43880', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '4babdb9738571b6481f09c6f7315fb2b1086e9e9', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.14.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'c9cbc660a72a7865c01b52be6c5dbca947c43880', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '3b5d6251c7a6561e30170f58d1e5d29e8a16b6e1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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 8d0fe1e1dfd..0da37b52c1b 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main f755087'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c9cbc66'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 4babdb9')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main bacd0fd'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main f755087'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main c9cbc66'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 3b5d625')); private function __construct() { } diff --git a/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php b/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php index 20a656e28f2..10910f22f00 100644 --- a/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php +++ b/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php @@ -129,7 +129,9 @@ private function addReturn0ToExecuteClassMethod(ClassMethod $classMethod): void if ($node->expr instanceof Ternary && $this->isIntegerTernaryIfElse($node->expr)) { return null; } - $this->setReturnTo0InsteadOfNull($node); + if ($this->isSuccessfulRefactorReturn($node)) { + $this->hasChanged = \true; + } return null; }); $this->processReturn0ToMethod($classMethod); @@ -171,36 +173,36 @@ private function processReturn0ToMethod(ClassMethod $classMethod): void return; } $classMethod->stmts[] = $return; + $this->hasChanged = \true; } - private function setReturnTo0InsteadOfNull(Return_ $return): void + private function isSuccessfulRefactorReturn(Return_ $return): bool { if (!$return->expr instanceof Expr) { $return->expr = new \PhpParser\Node\Scalar\Int_(0); - return; + return \true; } if ($this->valueResolver->isNull($return->expr)) { $return->expr = new \PhpParser\Node\Scalar\Int_(0); - return; + return \true; } // false means the command failed, that is the 1 exit code if ($this->valueResolver->isFalse($return->expr)) { $return->expr = new \PhpParser\Node\Scalar\Int_(1); - return; + return \true; } if ($return->expr instanceof Coalesce && $this->valueResolver->isNull($return->expr->right)) { $return->expr->right = new \PhpParser\Node\Scalar\Int_(0); - return; + return \true; } - if ($return->expr instanceof Ternary) { - $hasChanged = $this->isSuccessfulRefactorTernaryReturn($return->expr); - if ($hasChanged) { - return; - } + if ($return->expr instanceof Ternary && $this->isSuccessfulRefactorTernaryReturn($return->expr)) { + return \true; } $staticType = $this->getType($return->expr); if (!$staticType->isInteger()->yes()) { $return->expr = new Int_($return->expr); + return \true; } + return \false; } private function isSuccessfulRefactorTernaryReturn(Ternary $ternary): bool { From 668bc2253d016d08d8e12c7f69edfe92145b3334 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 13 Sep 2026 19:39:16 +0000 Subject: [PATCH 168/169] Updated Rector to commit 85a5406bd628b1eb1d53c529e53ef33b873e1fb9 https://github.com/rectorphp/rector-src/commit/85a5406bd628b1eb1d53c529e53ef33b873e1fb9 Bump PHPStan to ^2.2.14, PHP-Parser to ^5.9 and regenerate preload (#8491) --- composer.json | 2 +- preload.php | 1 + .../ClassMethod/ArgumentRemoverRector.php | 3 +- .../NodeAnalyzer/CallTypesResolver.php | 5 +- src/Application/VersionResolver.php | 4 +- src/NodeAnalyzer/CompactFuncCallAnalyzer.php | 7 +-- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_real.php | 10 ++-- vendor/composer/autoload_static.php | 9 ++-- vendor/composer/installed.json | 14 ++--- vendor/composer/installed.php | 2 +- .../Internal/PrintableNewAnonClassNode.php | 4 +- .../Lexer/TokenEmulator/VoidCastEmulator.php | 4 +- .../lib/PhpParser/Node/ArgPlaceholder.php | 35 ++++++++++++ .../lib/PhpParser/Node/Expr/CallLike.php | 42 +++++++++++---- .../lib/PhpParser/Node/Expr/FuncCall.php | 4 +- .../lib/PhpParser/Node/Expr/MethodCall.php | 5 +- .../lib/PhpParser/Node/Expr/New_.php | 5 +- .../Node/Expr/NullsafeMethodCall.php | 5 +- .../lib/PhpParser/Node/Expr/StaticCall.php | 5 +- .../lib/PhpParser/Node/Scalar/Float_.php | 9 ++-- .../lib/PhpParser/Node/Scalar/String_.php | 5 +- .../php-parser/lib/PhpParser/Parser/Php7.php | 54 +++++++++---------- .../php-parser/lib/PhpParser/Parser/Php8.php | 54 +++++++++---------- .../lib/PhpParser/ParserAbstract.php | 4 +- .../lib/PhpParser/PrettyPrinter/Standard.php | 4 ++ .../lib/PhpParser/PrettyPrinterAbstract.php | 24 +++++---- vendor/scoper-autoload.php | 2 +- 29 files changed, 201 insertions(+), 124 deletions(-) create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/ArgPlaceholder.php diff --git a/composer.json b/composer.json index 8fd229e9bac..253fc01cdc8 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ ], "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.2.12" + "phpstan/phpstan": "^2.2.14" }, "autoload": { "files": [ diff --git a/preload.php b/preload.php index af71c9533a0..b0e5eeaa067 100644 --- a/preload.php +++ b/preload.php @@ -99,6 +99,7 @@ function isPHPStanTestPreloaded(): bool require_once __DIR__ . '/vendor/nikic/php-parser/lib/PhpParser/Modifiers.php'; require_once __DIR__ . '/vendor/nikic/php-parser/lib/PhpParser/NameContext.php'; require_once __DIR__ . '/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php'; +require_once __DIR__ . '/vendor/nikic/php-parser/lib/PhpParser/Node/ArgPlaceholder.php'; require_once __DIR__ . '/vendor/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php'; require_once __DIR__ . '/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php'; require_once __DIR__ . '/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php'; diff --git a/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php b/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php index db64d47d3a4..732126aa21e 100644 --- a/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php +++ b/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Stmt\ClassMethod; @@ -130,7 +131,7 @@ private function removeByName($node, int $position, string $name): void } /** * @param mixed[] $values - * @param \PhpParser\Node\Arg|\PhpParser\Node\VariadicPlaceholder $arg + * @param \PhpParser\Node\Arg|\PhpParser\Node\ArgPlaceholder|\PhpParser\Node\VariadicPlaceholder $arg */ private function isArgumentValueMatch($arg, array $values): bool { diff --git a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php index f1e1ab74549..768723b5acb 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php +++ b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php @@ -4,6 +4,7 @@ namespace Rector\TypeDeclaration\NodeAnalyzer; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\MethodCall; @@ -179,11 +180,11 @@ private function normalizeType(Type $argValueType) /** * There is first class callable usage, or argument unpack, or named expr * simply returns array marks as unknown as can be anything and in any position - * @param \PhpParser\Node\Arg|\PhpParser\Node\VariadicPlaceholder $arg + * @param \PhpParser\Node\Arg|\PhpParser\Node\ArgPlaceholder|\PhpParser\Node\VariadicPlaceholder $arg */ private function shouldSkipArg($arg): bool { - if ($arg instanceof VariadicPlaceholder) { + if (!$arg instanceof Arg) { return \true; } return $arg->unpack; diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 978cd391890..d2adf406d22 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 = '71a969fbd931a4f206a504d981e2aa7543dd2351'; + public const PACKAGE_VERSION = '85a5406bd628b1eb1d53c529e53ef33b873e1fb9'; /** * @api * @var string */ - public const RELEASE_DATE = '2026-09-12 11:45:27'; + public const RELEASE_DATE = '2026-09-14 02:37:09'; /** * @var int */ diff --git a/src/NodeAnalyzer/CompactFuncCallAnalyzer.php b/src/NodeAnalyzer/CompactFuncCallAnalyzer.php index 5ca5b4b337a..e1d8ecf0ccd 100644 --- a/src/NodeAnalyzer/CompactFuncCallAnalyzer.php +++ b/src/NodeAnalyzer/CompactFuncCallAnalyzer.php @@ -4,6 +4,7 @@ namespace Rector\NodeAnalyzer; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\ArrayItem; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\FuncCall; @@ -32,7 +33,7 @@ public function isInCompact(FuncCall $funcCall, Variable $variable): bool return $this->isInArgOrArrayItemNodes($funcCall->args, $variable->name); } /** - * @param array $nodes + * @param array $nodes */ private function isInArgOrArrayItemNodes(array $nodes, string $variableName): bool { @@ -57,13 +58,13 @@ private function isInArgOrArrayItemNodes(array $nodes, string $variableName): bo return \false; } /** - * @param \PhpParser\Node\Arg|\PhpParser\Node\VariadicPlaceholder|\PhpParser\Node\ArrayItem|null $node + * @param \PhpParser\Node\Arg|\PhpParser\Node\ArgPlaceholder|\PhpParser\Node\VariadicPlaceholder|\PhpParser\Node\ArrayItem|null $node */ private function shouldSkip($node): bool { if ($node === null) { return \true; } - return $node instanceof VariadicPlaceholder; + return !$node instanceof Arg && !$node instanceof ArrayItem; } } diff --git a/vendor/autoload.php b/vendor/autoload.php index 1e686120cd1..c6548a21826 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277::getLoader(); +return ComposerAutoloaderInit45619ed68c5a66bf26cf1b24fc24f27a::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 8bc04b89383..56e4ff5fa5a 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -166,6 +166,7 @@ 'PhpParser\\NodeVisitor\\NodeConnectingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php', 'PhpParser\\NodeVisitor\\ParentConnectingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php', 'PhpParser\\Node\\Arg' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', + 'PhpParser\\Node\\ArgPlaceholder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ArgPlaceholder.php', 'PhpParser\\Node\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php', 'PhpParser\\Node\\Attribute' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Attribute.php', 'PhpParser\\Node\\AttributeGroup' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 765dc86e756..4369796153e 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277 +class ComposerAutoloaderInit45619ed68c5a66bf26cf1b24fc24f27a { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit45619ed68c5a66bf26cf1b24fc24f27a', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit45619ed68c5a66bf26cf1b24fc24f27a', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit45619ed68c5a66bf26cf1b24fc24f27a::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit45619ed68c5a66bf26cf1b24fc24f27a::$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 10be3e23d6e..a0e39685edf 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 +class ComposerStaticInit45619ed68c5a66bf26cf1b24fc24f27a { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -391,6 +391,7 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 'PhpParser\\NodeVisitor\\NodeConnectingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php', 'PhpParser\\NodeVisitor\\ParentConnectingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php', 'PhpParser\\Node\\Arg' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', + 'PhpParser\\Node\\ArgPlaceholder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ArgPlaceholder.php', 'PhpParser\\Node\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php', 'PhpParser\\Node\\Attribute' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Attribute.php', 'PhpParser\\Node\\AttributeGroup' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php', @@ -3084,9 +3085,9 @@ class ComposerStaticInit1574d9721774d0e974b8eb7abd23a277 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit1574d9721774d0e974b8eb7abd23a277::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit45619ed68c5a66bf26cf1b24fc24f27a::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit45619ed68c5a66bf26cf1b24fc24f27a::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit45619ed68c5a66bf26cf1b24fc24f27a::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index b3256170c0e..ec52ba3581b 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -651,17 +651,17 @@ }, { "name": "nikic\/php-parser", - "version": "v5.8.0", - "version_normalized": "5.8.0.0", + "version": "v5.9.0", + "version_normalized": "5.9.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/nikic\/PHP-Parser.git", - "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", - "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/9e33da9553fe7786f0962b35f4e4ecf01be89def", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", "shasum": "" }, "require": { @@ -673,7 +673,7 @@ "ircmaxell\/php-yacc": "^0.0.7", "phpunit\/phpunit": "^9.0" }, - "time": "2026-07-04T14:30:18+00:00", + "time": "2026-09-13T18:51:52+00:00", "bin": [ "bin\/php-parse" ], @@ -705,7 +705,7 @@ ], "support": { "issues": "https:\/\/github.com\/nikic\/PHP-Parser\/issues", - "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v5.8.0" + "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v5.9.0" }, "install-path": "..\/nikic\/php-parser" }, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index a386e21854a..e855968f03d 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202609; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.8.0', 'version' => '5.8.0.0', 'reference' => '044a6a392ff8ad0d61f14370a5fbbd0a0107152f', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.14.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'c9cbc660a72a7865c01b52be6c5dbca947c43880', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '3b5d6251c7a6561e30170f58d1e5d29e8a16b6e1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', '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(), '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.4.0', 'version' => '3.4.0.0', 'reference' => 'd5a341b3fb61f3001970940afb1d332968a183ed', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.4', 'version' => '3.4.4.0', 'reference' => '198166618906cb2de69b95d7d47e5fa8aa1b2b95', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '6d6c96277ea252fc1304627204c3d5e6e15faa3b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'entropy/entropy' => array('pretty_version' => '0.4.13', 'version' => '0.4.13.0', 'reference' => 'b2c703a93350f49ce67d150bb8560e886be01027', 'type' => 'library', 'install_path' => __DIR__ . '/../entropy/entropy', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'db9508f7b1474469d9d3c53b86f817e344732678', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.1.5', 'version' => '4.1.5.0', 'reference' => 'b043439dbdf954e6c28b5ea7e34b0100f83165e0', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v5.9.0', 'version' => '5.9.0.0', 'reference' => '9e33da9553fe7786f0962b35f4e4ecf01be89def', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '2.3.5', 'version' => '2.3.5.0', 'reference' => '148cefffaf0233e4c08cc13db8a195a56dd6dfe9', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '2.2.14.0')), '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/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', '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')), '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.7', 'version' => '0.6.7.0', 'reference' => '970f0e71945556422ee4570ccbabaedc3cf04ad3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '7562c05391f42701c1fccf189c8225fece1cd7c3', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'reference' => 'ba276bda6083df7e0050fd9b33f66ad7a4ac747a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '23444f53a813a3296c1368bb104793ce8d88f04a', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.17.0', 'version' => '1.17.0.0', 'reference' => 'ef5b17b81f6f60504c539313f94f2d826c5faa08', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', '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 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bacd0fd462cd1e346d33548bdef9a2d0cccc3aa6', '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' => 'f75508770f5817c615fead7157cfa8c7c1816444', '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' => 'c9cbc660a72a7865c01b52be6c5dbca947c43880', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '3b5d6251c7a6561e30170f58d1e5d29e8a16b6e1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '9.0.1', 'version' => '9.0.1.0', 'reference' => 'a2df6626c1baf31d5a88674882a3072f151b5a26', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.45', 'version' => '6.4.45.0', 'reference' => '3b8473e0d14157f2d22b0a0d7259ad23483d1e6d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.7.1', 'version' => '3.7.1.0', 'reference' => 'f3202fa1b5097b0af062dc978b32ecf63404e31d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v8.1.6', 'version' => '8.1.6.0', 'reference' => '7599ebb855fede59413ddb7f15198d67bfcae7ba', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v8.1.5', 'version' => '8.1.5.0', 'reference' => '8d7acede2b2ae07605783d1c43e49b5767036474', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.41.0', 'version' => '1.41.0.0', 'reference' => 'bb899c1db0aa8127dc3afe8cda4a67eb24915f8d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/service-contracts' => array('pretty_version' => 'v3.7.3', 'version' => '3.7.3.0', 'reference' => '15e6a07ec2a2c75ceb1b21dd98105ee8456d2257', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v7.4.15', 'version' => '7.4.15.0', 'reference' => 'e394af32256bf9e7bf80849d95e589167c10097b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tomasvotruba/class-leak' => array('pretty_version' => '2.2.4', 'version' => '2.2.4.0', 'reference' => 'bc56eb6d4940e250f959a5a5ee7dcb2f064c2725', 'type' => 'library', 'install_path' => __DIR__ . '/../tomasvotruba/class-leak', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'reference' => '2ccb7c2e821038c03a3e6e1700c570c158c55f70', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php index a433d6b9f77..5b0357700e9 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php @@ -21,7 +21,7 @@ class PrintableNewAnonClassNode extends Expr public array $attrGroups; /** @var int Modifiers */ public int $flags; - /** @var (Node\Arg|Node\VariadicPlaceholder)[] Arguments */ + /** @var (Node\Arg|Node\VariadicPlaceholder|Node\ArgPlaceholder)[] Arguments */ public array $args; /** @var null|Node\Name Name of extended class */ public ?Node\Name $extends; @@ -31,7 +31,7 @@ class PrintableNewAnonClassNode extends Expr public array $stmts; /** * @param Node\AttributeGroup[] $attrGroups PHP attribute groups - * @param (Node\Arg|Node\VariadicPlaceholder)[] $args Arguments + * @param (Node\Arg|Node\VariadicPlaceholder|Node\ArgPlaceholder)[] $args Arguments * @param Node\Name|null $extends Name of extended class * @param Node\Name[] $implements Names of implemented interfaces * @param Node\Stmt[] $stmts Statements diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/VoidCastEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/VoidCastEmulator.php index 1d8f74614b2..dd078a62ba0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/VoidCastEmulator.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/VoidCastEmulator.php @@ -25,7 +25,7 @@ public function emulate(string $code, array $tokens): array $numTokens = 1; $text = '('; $j = $i + 1; - if ($j < $c && $tokens[$j]->id === \T_WHITESPACE && preg_match('/[ \t]+/', $tokens[$j]->text)) { + if ($j < $c && $tokens[$j]->id === \T_WHITESPACE && preg_match('/\A[ \t]+\z/', $tokens[$j]->text)) { $text .= $tokens[$j]->text; $numTokens++; $j++; @@ -36,7 +36,7 @@ public function emulate(string $code, array $tokens): array $text .= $tokens[$j]->text; $numTokens++; $k = $j + 1; - if ($k < $c && $tokens[$k]->id === \T_WHITESPACE && preg_match('/[ \t]+/', $tokens[$k]->text)) { + if ($k < $c && $tokens[$k]->id === \T_WHITESPACE && preg_match('/\A[ \t]+\z/', $tokens[$k]->text)) { $text .= $tokens[$k]->text; $numTokens++; $k++; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/ArgPlaceholder.php b/vendor/nikic/php-parser/lib/PhpParser/Node/ArgPlaceholder.php new file mode 100644 index 00000000000..15c114ed286 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/ArgPlaceholder.php @@ -0,0 +1,35 @@ + $attributes Additional attributes + */ + public function __construct(?\PhpParser\Node\Identifier $name = null, array $attributes = []) + { + $this->attributes = $attributes; + $this->name = $name; + } + public function getSubNodeNames(): array + { + return ['name']; + } + public function getType(): string + { + return 'ArgPlaceholder'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php index de8b98837eb..71efbe68741 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php @@ -4,15 +4,16 @@ namespace PhpParser\Node\Expr; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\Expr; use PhpParser\Node\VariadicPlaceholder; abstract class CallLike extends Expr { /** - * Return raw arguments, which may be actual Args, or VariadicPlaceholders for first-class - * callables. + * Return raw arguments, which may be actual Args, VariadicPlaceholders for first-class + * callables, or ArgPlaceholders for partial function application. * - * @return array + * @return array */ abstract public function getRawArgs(): array; /** @@ -24,29 +25,48 @@ public function isFirstClassCallable(): bool return count($rawArgs) === 1 && current($rawArgs) instanceof VariadicPlaceholder; } /** - * Assert that this is not a first-class callable and return only ordinary Args. + * Returns whether this call expression is a partial function application, i.e. whether its + * argument list contains one or more "?" placeholders or a "..." placeholder. First-class + * callables are a special case of partial function application, so this also returns true + * for them. + */ + public function isPartialFunctionApplication(): bool + { + foreach ($this->getRawArgs() as $arg) { + if ($arg instanceof VariadicPlaceholder || $arg instanceof ArgPlaceholder) { + return \true; + } + } + return \false; + } + /** + * Assert that this is not a partial function application (which includes first-class + * callables) and return only ordinary Args. * * @return Arg[] */ public function getArgs(): array { - assert(!$this->isFirstClassCallable()); + assert(!$this->isPartialFunctionApplication()); return $this->getRawArgs(); } /** * Retrieves a specific argument from the raw arguments. * * Returns the named argument that matches the given `$name`, or the - * positional (unnamed) argument that exists at the given `$position`, - * otherwise, returns `null` for first-class callables or if no match is found. + * positional (unnamed) argument that exists at the given `$position`. + * Returns `null` if no match is found, or when a "..." placeholder is + * encountered, as argument positions are no longer known past that point. + * A "?" placeholder occupies its argument position, but is never returned, + * as it is not an actual argument. */ public function getArg(string $name, int $position): ?Arg { - if ($this->isFirstClassCallable()) { - return null; - } foreach ($this->getRawArgs() as $i => $arg) { - if ($arg->unpack) { + if ($arg instanceof VariadicPlaceholder) { + return null; + } + if ($arg instanceof ArgPlaceholder || $arg->unpack) { continue; } if ($arg->name !== null && $arg->name->toString() === $name || $arg->name === null && $i === $position) { diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php index ac73e1e52ea..0451bac411e 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php @@ -9,13 +9,13 @@ class FuncCall extends \PhpParser\Node\Expr\CallLike { /** @var Node\Name|Expr Function name */ public Node $name; - /** @var array Arguments */ + /** @var array Arguments */ public array $args; /** * Constructs a function call node. * * @param Node\Name|Expr $name Function name - * @param array $args Arguments + * @param array $args Arguments * @param array $attributes Additional attributes */ public function __construct(Node $name, array $args = [], array $attributes = []) diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php index a1ee3416bc1..a2e1db3ea41 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; use PhpParser\Node\VariadicPlaceholder; @@ -14,14 +15,14 @@ class MethodCall extends \PhpParser\Node\Expr\CallLike public Expr $var; /** @var Identifier|Expr Method name */ public Node $name; - /** @var array Arguments */ + /** @var array Arguments */ public array $args; /** * Constructs a function call node. * * @param Expr $var Variable holding object * @param string|Identifier|Expr $name Method name - * @param array $args Arguments + * @param array $args Arguments * @param array $attributes Additional attributes */ public function __construct(Expr $var, $name, array $args = [], array $attributes = []) diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php index e44adf82dba..da30511eb58 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php @@ -5,19 +5,20 @@ use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\Expr; use PhpParser\Node\VariadicPlaceholder; class New_ extends \PhpParser\Node\Expr\CallLike { /** @var Node\Name|Expr|Node\Stmt\Class_ Class name */ public Node $class; - /** @var array Arguments */ + /** @var array Arguments */ public array $args; /** * Constructs a function call node. * * @param Node\Name|Expr|Node\Stmt\Class_ $class Class name (or class node for anonymous classes) - * @param array $args Arguments + * @param array $args Arguments * @param array $attributes Additional attributes */ public function __construct(Node $class, array $args = [], array $attributes = []) diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php index 974cec58cdc..0c0fd095227 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; use PhpParser\Node\VariadicPlaceholder; @@ -14,14 +15,14 @@ class NullsafeMethodCall extends \PhpParser\Node\Expr\CallLike public Expr $var; /** @var Identifier|Expr Method name */ public Node $name; - /** @var array Arguments */ + /** @var array Arguments */ public array $args; /** * Constructs a nullsafe method call node. * * @param Expr $var Variable holding object * @param string|Identifier|Expr $name Method name - * @param array $args Arguments + * @param array $args Arguments * @param array $attributes Additional attributes */ public function __construct(Expr $var, $name, array $args = [], array $attributes = []) diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php index 9b12f0c738f..4b120263f41 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\ArgPlaceholder; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; use PhpParser\Node\VariadicPlaceholder; @@ -14,14 +15,14 @@ class StaticCall extends \PhpParser\Node\Expr\CallLike public Node $class; /** @var Identifier|Expr Method name */ public Node $name; - /** @var array Arguments */ + /** @var array Arguments */ public array $args; /** * Constructs a static method call node. * * @param Node\Name|Expr $class Class name * @param string|Identifier|Expr $name Method name - * @param array $args Arguments + * @param array $args Arguments * @param array $attributes Additional attributes */ public function __construct(Node $class, $name, array $args = [], array $attributes = []) diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php index fe65edaab87..915834bb596 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php @@ -48,17 +48,20 @@ public static function parse(string $str): float if ('0' === $str[0]) { // hex if ('x' === $str[1] || 'X' === $str[1]) { - return hexdec($str); + // PHP 8.6 warns when hexdec() produces a float. + return @hexdec($str); } // bin if ('b' === $str[1] || 'B' === $str[1]) { - return bindec($str); + // PHP 8.6 warns when bindec() produces a float. + return @bindec($str); } // oct, but only if the string does not contain any of '.eE'. if (\false === strpbrk($str, '.eE')) { // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit // (8 or 9) so that only the digits before that are used. - return octdec((string) substr($str, 0, strcspn($str, '89'))); + // PHP 8.6 warns when octdec() produces a float. + return @octdec((string) substr($str, 0, strcspn($str, '89'))); } } // dec diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php index f01e86b52d7..fca8dab30cc 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php @@ -93,7 +93,8 @@ public static function parseEscapeSequences(string $str, ?string $quote, bool $p return chr(hexdec((string) substr($str, 1))); } if ('u' === $str[0]) { - $dec = hexdec($matches[2]); + // PHP 8.6 warns when hexdec() produces a float. + $dec = @hexdec($matches[2]); // If it overflowed to float, treat as INT_MAX, it will throw an error anyway. return self::codePointToUtf8(\is_int($dec) ? $dec : \PHP_INT_MAX); } else { @@ -119,7 +120,7 @@ private static function codePointToUtf8(int $num): string if ($num <= 0xffff) { return chr(($num >> 12) + 0xe0) . chr(($num >> 6 & 0x3f) + 0x80) . chr(($num & 0x3f) + 0x80); } - if ($num <= 0x1fffff) { + if ($num <= 0x10ffff) { return chr(($num >> 18) + 0xf0) . chr(($num >> 12 & 0x3f) + 0x80) . chr(($num >> 6 & 0x3f) + 0x80) . chr(($num & 0x3f) + 0x80); } throw new Error('Invalid UTF-8 codepoint escape sequence: Codepoint too large'); diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index 430c313025f..00843e5571e 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -164,26 +164,26 @@ class Php7 extends \PhpParser\ParserAbstract public const T_NAME_RELATIVE = 399; public const T_ATTRIBUTE = 400; protected int $tokenToSymbolMapSize = 401; - protected int $actionTableSize = 1578; - protected int $gotoTableSize = 698; + protected int $actionTableSize = 1620; + protected int $gotoTableSize = 696; protected int $invalidSymbol = 173; protected int $errorSymbol = 1; protected int $defaultAction = -32766; protected int $unexpectedTokenRule = 32767; - protected int $YY2TBLSTATE = 445; - protected int $numNonLeafStates = 754; + protected int $YY2TBLSTATE = 444; + protected int $numNonLeafStates = 751; protected array $symbolToName = array("EOF", "error", "T_VOID_CAST", "T_THROW", "T_INCLUDE", "T_INCLUDE_ONCE", "T_EVAL", "T_REQUIRE", "T_REQUIRE_ONCE", "','", "T_LOGICAL_OR", "T_LOGICAL_XOR", "T_LOGICAL_AND", "T_PRINT", "T_YIELD", "T_DOUBLE_ARROW", "T_YIELD_FROM", "'='", "T_PLUS_EQUAL", "T_MINUS_EQUAL", "T_MUL_EQUAL", "T_DIV_EQUAL", "T_CONCAT_EQUAL", "T_MOD_EQUAL", "T_AND_EQUAL", "T_OR_EQUAL", "T_XOR_EQUAL", "T_SL_EQUAL", "T_SR_EQUAL", "T_POW_EQUAL", "T_COALESCE_EQUAL", "'?'", "':'", "T_COALESCE", "T_BOOLEAN_OR", "T_BOOLEAN_AND", "'|'", "'^'", "T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", "T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", "T_IS_EQUAL", "T_IS_NOT_EQUAL", "T_IS_IDENTICAL", "T_IS_NOT_IDENTICAL", "T_SPACESHIP", "'<'", "T_IS_SMALLER_OR_EQUAL", "'>'", "T_IS_GREATER_OR_EQUAL", "T_SL", "T_SR", "'+'", "'-'", "'.'", "'*'", "'/'", "'%'", "'!'", "T_INSTANCEOF", "'~'", "T_INC", "T_DEC", "T_INT_CAST", "T_DOUBLE_CAST", "T_STRING_CAST", "T_ARRAY_CAST", "T_OBJECT_CAST", "T_BOOL_CAST", "T_UNSET_CAST", "'@'", "T_POW", "'['", "T_NEW", "T_CLONE", "T_EXIT", "T_IF", "T_ELSEIF", "T_ELSE", "T_ENDIF", "T_LNUMBER", "T_DNUMBER", "T_STRING", "T_STRING_VARNAME", "T_VARIABLE", "T_NUM_STRING", "T_INLINE_HTML", "T_ENCAPSED_AND_WHITESPACE", "T_CONSTANT_ENCAPSED_STRING", "T_ECHO", "T_DO", "T_WHILE", "T_ENDWHILE", "T_FOR", "T_ENDFOR", "T_FOREACH", "T_ENDFOREACH", "T_DECLARE", "T_ENDDECLARE", "T_AS", "T_SWITCH", "T_MATCH", "T_ENDSWITCH", "T_CASE", "T_DEFAULT", "T_BREAK", "T_CONTINUE", "T_GOTO", "T_FUNCTION", "T_FN", "T_CONST", "T_RETURN", "T_TRY", "T_CATCH", "T_FINALLY", "T_USE", "T_INSTEADOF", "T_GLOBAL", "T_STATIC", "T_ABSTRACT", "T_FINAL", "T_PRIVATE", "T_PROTECTED", "T_PUBLIC", "T_READONLY", "T_PUBLIC_SET", "T_PROTECTED_SET", "T_PRIVATE_SET", "T_VAR", "T_UNSET", "T_ISSET", "T_EMPTY", "T_HALT_COMPILER", "T_CLASS", "T_TRAIT", "T_INTERFACE", "T_ENUM", "T_EXTENDS", "T_IMPLEMENTS", "T_OBJECT_OPERATOR", "T_NULLSAFE_OBJECT_OPERATOR", "T_LIST", "T_ARRAY", "T_CALLABLE", "T_CLASS_C", "T_TRAIT_C", "T_METHOD_C", "T_FUNC_C", "T_PROPERTY_C", "T_LINE", "T_FILE", "T_START_HEREDOC", "T_END_HEREDOC", "T_DOLLAR_OPEN_CURLY_BRACES", "T_CURLY_OPEN", "T_PAAMAYIM_NEKUDOTAYIM", "T_NAMESPACE", "T_NS_C", "T_DIR", "T_NS_SEPARATOR", "T_ELLIPSIS", "T_NAME_FULLY_QUALIFIED", "T_NAME_QUALIFIED", "T_NAME_RELATIVE", "T_ATTRIBUTE", "';'", "']'", "'('", "')'", "'{'", "'}'", "'`'", "'\"'", "'\$'"); protected array $tokenToSymbol = array(0, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 57, 171, 173, 172, 56, 173, 173, 166, 167, 54, 51, 9, 52, 53, 55, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 32, 164, 45, 17, 47, 31, 69, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 71, 173, 165, 37, 173, 170, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 168, 36, 169, 59, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 46, 48, 49, 50, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163); - protected array $action = array(133, 134, 135, 575, 136, 137, 1049, 766, 767, 768, 138, 41, 850, -341, 495, 1390, -32766, -32766, -32766, 1008, 841, 1145, 1146, 1147, 1141, 1140, 1139, 1148, 1142, 1143, 1144, -32766, -32766, -32766, -195, 760, 759, -32766, -194, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, 0, -32766, 3, 4, 769, 1145, 1146, 1147, 1141, 1140, 1139, 1148, 1142, 1143, 1144, 388, 389, 448, 272, 53, 391, 773, 774, 775, 776, 433, 5, 434, 571, 337, 39, 254, 29, 298, 830, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 806, 576, 807, 808, 809, 810, 798, 799, 353, 354, 801, 802, 787, 788, 789, 791, 792, 793, 364, 833, 834, 835, 836, 837, 577, -382, 306, -382, 794, 795, 578, 579, 244, 818, 816, 817, 829, 813, 814, 1313, 38, 580, 581, 812, 582, 583, 584, 585, 1325, 586, 587, 481, 482, -628, 496, 1009, 815, 588, 589, 140, 139, -628, 133, 134, 135, 575, 136, 137, 1085, 766, 767, 768, 138, 41, -32766, -341, 1046, 1041, 1040, 1039, 1045, 1042, 1043, 1044, -32766, -32766, -32766, -32767, -32767, -32767, -32767, 106, 107, 108, 109, 110, -195, 760, 759, 1058, -194, -32766, -32766, -32766, 149, -32766, 852, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 936, 303, 257, 769, -32766, -32766, -32766, 850, -32766, 297, -32766, -32766, -32766, -32766, -32766, 1371, 1355, 272, 53, 391, 773, 774, 775, 776, -625, -32766, 434, -32766, -32766, -32766, -32766, 730, -625, 830, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 806, 576, 807, 808, 809, 810, 798, 799, 353, 354, 801, 802, 787, 788, 789, 791, 792, 793, 364, 833, 834, 835, 836, 837, 577, -579, -275, 317, 794, 795, 578, 579, -577, 818, 816, 817, 829, 813, 814, 957, 926, 580, 581, 812, 582, 583, 584, 585, 144, 586, 587, 841, 336, -32766, -32766, -32766, 815, 588, 589, -628, 139, -628, 133, 134, 135, 575, 136, 137, 1082, 766, 767, 768, 138, 41, -32766, 1375, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 1374, 629, 388, 389, -32766, -32766, -32766, -32766, -32766, -579, -579, 1081, 433, 321, 760, 759, -577, -577, -32766, 1293, -32766, -32766, 111, 112, 113, -579, 282, 843, 851, 623, 1400, 936, -577, 1401, 769, 333, 938, -585, 114, -579, 725, 294, 298, 1119, -584, 349, -577, 752, 272, 53, 391, 773, 774, 775, 776, 145, 86, 434, 306, 336, 336, -625, 731, -625, 830, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 806, 576, 807, 808, 809, 810, 798, 799, 353, 354, 801, 802, 787, 788, 789, 791, 792, 793, 364, 833, 834, 835, 836, 837, 577, -576, 850, -578, 794, 795, 578, 579, 845, 818, 816, 817, 829, 813, 814, 727, 926, 580, 581, 812, 582, 583, 584, 585, 740, 586, 587, 243, 1055, -32766, -32766, -85, 815, 588, 589, 878, 152, 879, 133, 134, 135, 575, 136, 137, 1087, 766, 767, 768, 138, 41, 350, 961, 960, 1058, 1058, 1058, -32766, -32766, -32766, 841, -32766, 131, 977, 978, 400, 1055, 10, 979, -576, -576, -578, -578, 378, 760, 759, 936, 973, 290, 297, 297, -32766, 846, 936, 154, -576, 79, -578, 382, 849, 936, 1058, 336, 878, 769, 879, 938, -583, -85, -576, 725, -578, 959, 108, 109, 110, 1058, 732, 272, 53, 391, 773, 774, 775, 776, 290, 155, 434, 470, 471, 472, 735, 760, 759, 830, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 806, 576, 807, 808, 809, 810, 798, 799, 353, 354, 801, 802, 787, 788, 789, 791, 792, 793, 364, 833, 834, 835, 836, 837, 577, 926, 434, 847, 794, 795, 578, 579, 926, 818, 816, 817, 829, 813, 814, 926, 398, 580, 581, 812, 582, 583, 584, 585, 452, 586, 587, 157, 87, 88, 89, 453, 815, 588, 589, 454, 152, 790, 761, 762, 763, 764, 765, 158, 766, 767, 768, 803, 804, 40, 27, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 1134, 282, 1055, 455, -32766, 994, 1288, 1287, 1289, 725, 390, 389, 938, 114, 856, 1120, 725, 769, 159, 938, 433, 672, 23, 725, 1118, 691, 692, 1058, -32766, 153, 416, 770, 771, 772, 773, 774, 775, 776, -78, -619, 839, -619, -581, 386, 387, 392, 393, 830, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 806, 828, 807, 808, 809, 810, 798, 799, 800, 827, 801, 802, 787, 788, 789, 791, 792, 793, 832, 833, 834, 835, 836, 837, 838, 161, 663, 664, 794, 795, 796, 797, 36, 818, 816, 817, 829, 813, 814, -58, -57, 805, 811, 812, 819, 820, 822, 821, -87, 823, 824, -581, -581, 128, 129, 141, 815, 826, 825, 54, 55, 56, 57, 527, 58, 59, 142, -110, 148, 162, 60, 61, -110, 62, -110, 936, 163, 164, 165, 313, 166, -581, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, 1293, -84, 953, -78, -73, -72, -71, -70, -69, -68, -67, -66, -65, 742, -46, 63, 64, -18, -575, 1286, 146, 65, 51, 66, 251, 252, 67, 68, 69, 70, 71, 72, 73, 74, 281, 31, 273, 47, 450, 528, 291, -357, 741, 1319, 1320, 529, 744, 850, 935, 151, 295, 1317, 45, 22, 530, 1284, 531, -309, 532, -305, 533, 286, 936, 534, 535, 287, 926, 292, 48, 49, 456, 385, 384, 293, 50, 536, 342, 296, 282, 1057, 376, 348, 850, 299, 300, -575, -575, 1279, 114, 307, 308, 701, 538, 539, 540, 150, 841, -32766, 1288, 1287, 1289, -575, 850, 294, 542, 543, 1402, 1305, 1306, 1307, 1308, 1310, 1302, 1303, 305, -575, 716, -110, -110, 130, 1309, 1304, -110, 593, 1288, 1287, 1289, 306, 13, 673, 75, -110, 1152, 678, 331, 332, 336, -154, -154, -154, -32766, 718, 694, -4, 936, 938, 926, 314, 478, 725, 506, 1324, -154, 705, -154, 679, -154, 695, -154, 974, 1326, -541, 306, 312, 311, 79, 849, 661, 383, 43, 320, 336, 37, 1252, 0, 0, 52, 0, 0, 977, 978, 0, 760, 759, 537, -32766, 0, 0, 0, 706, 0, 0, 912, 973, -110, -110, -110, 35, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, -531, 11, 707, 708, 31, 274, 30, 380, 955, 599, -613, 306, 627, 0, 938, 0, 850, 926, 725, -154, 1317, 1288, 1287, 1289, 44, -612, 749, 290, 750, 1194, 1196, 869, 309, 310, 917, 1018, 995, 1002, 992, 383, -575, 446, 1003, 915, 990, 1123, 304, 1126, 381, 1127, 977, 978, 1124, 1125, 1131, 537, 1279, 1314, 861, 330, 760, 759, 132, 541, 973, -110, -110, -110, 1341, 1359, 1393, 1293, 666, 542, 543, -611, 1305, 1306, 1307, 1308, 1310, 1302, 1303, -585, -584, -583, -582, 21, -525, 1309, 1304, 1, 32, 760, 759, 33, 938, -32766, -278, 77, 725, -4, -16, 1286, 332, 336, 42, -575, -575, 46, -32766, -32766, -32766, 76, -32766, 80, -32766, 81, -32766, 82, 83, -32766, 84, -575, 85, 147, -32766, -32766, -32766, 156, -32766, 160, -32766, -32766, 249, 379, 1286, -575, -32766, 430, 31, 273, 338, -32766, -32766, -32766, 365, -32766, 366, -32766, -32766, -32766, 850, 850, -32766, 367, 1317, 368, 369, -32766, -32766, -32766, 370, 371, 372, -32766, -32766, 373, 374, 375, 377, -32766, 430, 447, 570, 31, 274, -276, -275, 15, 16, 78, 17, -32766, 18, 20, 414, 850, -110, -110, 497, 1317, 1279, -110, 498, 505, 508, 509, 510, 511, 515, 516, -110, 517, 525, 604, 711, 1088, 1084, 1234, 543, -32766, 1305, 1306, 1307, 1308, 1310, 1302, 1303, 1315, 1086, 1083, -50, 1064, 1274, 1309, 1304, 1279, 1060, -280, -102, 14, 19, 306, 24, 77, 79, 415, 303, 413, 332, 336, 336, 618, 624, 543, 652, 1305, 1306, 1307, 1308, 1310, 1302, 1303, 717, 143, 1238, 1292, 1235, 1372, 1309, 1304, 726, 729, 733, -32766, 734, 736, 737, 738, 77, 1286, 419, 739, 743, 332, 336, 728, -32766, -32766, -32766, 746, -32766, 913, -32766, 1397, -32766, 1399, 872, -32766, 871, 967, 1010, 1398, -32766, -32766, -32766, 966, -32766, 964, -32766, -32766, 965, 968, 1286, 1267, -32766, 430, 946, 956, 944, -32766, -32766, -32766, 1000, -32766, 1001, -32766, -32766, -32766, 650, 1396, -32766, 1353, 1342, 1360, 1369, -32766, -32766, -32766, 1318, -32766, 336, -32766, -32766, 936, 0, 1286, 0, -32766, 430, 0, 0, 0, -32766, -32766, -32766, 0, -32766, 0, -32766, -32766, -32766, 0, 0, -32766, 0, 0, 936, 0, -32766, -32766, -32766, 0, -32766, 0, -32766, -32766, 0, 0, 1286, 0, -32766, 430, 0, 0, 0, -32766, -32766, -32766, 0, -32766, 0, -32766, -32766, -32766, 0, 0, -32766, 0, 0, 0, 501, -32766, -32766, -32766, 0, -32766, 0, -32766, -32766, 0, 0, 1286, 606, -32766, 430, 0, 0, 0, -32766, -32766, -32766, 0, -32766, 0, -32766, -32766, -32766, 926, 0, -32766, 2, 0, 0, 0, -32766, -32766, -32766, 0, 0, 0, -32766, -32766, 0, -253, -253, -253, -32766, 430, 0, 383, 926, 0, 0, 0, 0, 0, 0, 0, -32766, 0, 977, 978, 0, 0, 0, 537, -252, -252, -252, 0, 0, 0, 383, 912, 973, -110, -110, -110, 0, 0, 0, 0, 0, 977, 978, 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 912, 973, -110, -110, -110, -32766, 0, 0, 0, 0, 938, 1286, 0, 0, 725, -253, 0, 0, -32766, -32766, -32766, 0, -32766, 0, -32766, 0, -32766, 0, 0, -32766, 0, 0, 0, 938, -32766, -32766, -32766, 725, -252, 0, -32766, -32766, 0, 0, 0, 0, -32766, 430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32766); - protected array $actionCheck = array(3, 4, 5, 6, 7, 8, 1, 10, 11, 12, 13, 14, 83, 9, 32, 86, 10, 11, 12, 32, 81, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 10, 11, 12, 9, 38, 39, 31, 9, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, 31, 9, 9, 58, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 107, 108, 109, 72, 73, 74, 75, 76, 77, 78, 117, 9, 81, 86, 71, 152, 153, 9, 31, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 107, 163, 109, 127, 128, 129, 130, 15, 132, 133, 134, 135, 136, 137, 1, 9, 140, 141, 142, 143, 144, 145, 146, 151, 148, 149, 138, 139, 1, 168, 164, 155, 156, 157, 9, 159, 9, 3, 4, 5, 6, 7, 8, 167, 10, 11, 12, 13, 14, 117, 167, 119, 120, 121, 122, 123, 124, 125, 126, 10, 11, 12, 45, 46, 47, 48, 49, 50, 51, 52, 53, 167, 38, 39, 142, 167, 10, 11, 12, 9, 31, 1, 33, 34, 35, 36, 37, 38, 39, 1, 167, 9, 58, 10, 11, 12, 83, 31, 166, 33, 34, 35, 36, 37, 1, 1, 72, 73, 74, 75, 76, 77, 78, 1, 31, 81, 33, 34, 35, 36, 32, 9, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 71, 167, 9, 127, 128, 129, 130, 71, 132, 133, 134, 135, 136, 137, 1, 85, 140, 141, 142, 143, 144, 145, 146, 168, 148, 149, 81, 172, 10, 11, 12, 155, 156, 157, 165, 159, 167, 3, 4, 5, 6, 7, 8, 167, 10, 11, 12, 13, 14, 31, 1, 33, 34, 35, 10, 10, 11, 12, 9, 52, 107, 108, 10, 11, 12, 10, 11, 138, 139, 1, 117, 9, 38, 39, 138, 139, 31, 1, 33, 34, 54, 55, 56, 154, 58, 81, 164, 1, 81, 1, 154, 84, 58, 9, 164, 166, 70, 168, 168, 31, 31, 164, 166, 9, 168, 168, 72, 73, 74, 75, 76, 77, 78, 168, 168, 81, 163, 172, 172, 165, 32, 167, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 71, 83, 71, 127, 128, 129, 130, 161, 132, 133, 134, 135, 136, 137, 168, 85, 140, 141, 142, 143, 144, 145, 146, 168, 148, 149, 98, 117, 117, 117, 32, 155, 156, 157, 107, 159, 109, 3, 4, 5, 6, 7, 8, 167, 10, 11, 12, 13, 14, 9, 73, 74, 142, 142, 142, 10, 11, 12, 81, 141, 15, 118, 119, 107, 117, 109, 123, 138, 139, 138, 139, 9, 38, 39, 1, 132, 166, 166, 166, 117, 81, 1, 15, 154, 166, 154, 9, 160, 1, 142, 172, 107, 58, 109, 164, 166, 98, 168, 168, 168, 123, 51, 52, 53, 142, 32, 72, 73, 74, 75, 76, 77, 78, 166, 15, 81, 133, 134, 135, 32, 38, 39, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 85, 81, 161, 127, 128, 129, 130, 85, 132, 133, 134, 135, 136, 137, 85, 9, 140, 141, 142, 143, 144, 145, 146, 9, 148, 149, 15, 10, 11, 12, 9, 155, 156, 157, 9, 159, 3, 4, 5, 6, 7, 8, 15, 10, 11, 12, 13, 14, 31, 102, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 127, 58, 117, 9, 117, 164, 160, 161, 162, 168, 107, 108, 164, 70, 9, 169, 168, 58, 15, 164, 117, 76, 77, 168, 1, 76, 77, 142, 141, 102, 103, 72, 73, 74, 75, 76, 77, 78, 17, 165, 81, 167, 71, 107, 108, 107, 108, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 15, 112, 113, 127, 128, 129, 130, 15, 132, 133, 134, 135, 136, 137, 17, 17, 140, 141, 142, 143, 144, 145, 146, 32, 148, 149, 138, 139, 17, 17, 17, 155, 156, 157, 2, 3, 4, 5, 6, 7, 8, 17, 102, 17, 17, 13, 14, 107, 16, 109, 1, 17, 17, 17, 114, 17, 168, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 1, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 51, 52, 32, 71, 81, 32, 57, 71, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 32, 71, 72, 73, 74, 75, 32, 169, 32, 79, 80, 81, 32, 83, 32, 32, 38, 87, 88, 89, 90, 117, 92, 36, 94, 36, 96, 36, 1, 99, 100, 36, 85, 36, 104, 105, 106, 107, 108, 36, 110, 111, 36, 38, 58, 141, 116, 117, 83, 38, 38, 138, 139, 123, 70, 138, 139, 78, 128, 129, 130, 71, 81, 86, 160, 161, 162, 154, 83, 31, 140, 141, 84, 143, 144, 145, 146, 147, 148, 149, 150, 168, 81, 118, 119, 168, 156, 157, 123, 90, 160, 161, 162, 163, 98, 91, 166, 132, 83, 97, 170, 171, 172, 76, 77, 78, 141, 93, 95, 0, 1, 164, 85, 115, 98, 168, 98, 151, 91, 81, 93, 101, 95, 101, 97, 132, 151, 154, 163, 137, 136, 166, 160, 114, 107, 164, 136, 172, 168, 170, -1, -1, 71, -1, -1, 118, 119, -1, 38, 39, 123, 141, -1, -1, -1, 117, -1, -1, 131, 132, 133, 134, 135, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 154, 154, 141, 142, 71, 72, 154, 154, 159, 158, 166, 163, 158, -1, 164, -1, 83, 85, 168, 169, 87, 160, 161, 162, 164, 166, 164, 166, 164, 60, 61, 164, 138, 139, 164, 164, 164, 164, 164, 107, 71, 109, 164, 164, 164, 164, 114, 164, 154, 164, 118, 119, 164, 164, 164, 123, 123, 165, 165, 168, 38, 39, 168, 131, 132, 133, 134, 135, 165, 165, 165, 1, 165, 140, 141, 166, 143, 144, 145, 146, 147, 148, 149, 166, 166, 166, 166, 155, 166, 156, 157, 166, 166, 38, 39, 166, 164, 75, 167, 166, 168, 169, 32, 81, 171, 172, 166, 138, 139, 166, 88, 89, 90, 166, 92, 166, 94, 166, 96, 166, 166, 99, 166, 154, 166, 166, 104, 105, 106, 166, 75, 166, 110, 111, 166, 168, 81, 168, 116, 117, 71, 72, 166, 88, 89, 90, 166, 92, 166, 94, 128, 96, 83, 83, 99, 166, 87, 166, 166, 104, 105, 106, 166, 166, 166, 110, 111, 166, 166, 166, 166, 116, 117, 166, 166, 71, 72, 167, 167, 167, 167, 159, 167, 128, 167, 167, 167, 83, 118, 119, 167, 87, 123, 123, 167, 167, 167, 167, 167, 167, 167, 167, 132, 167, 167, 167, 167, 167, 167, 167, 141, 141, 143, 144, 145, 146, 147, 148, 149, 167, 167, 167, 32, 167, 167, 156, 157, 123, 167, 167, 167, 167, 167, 163, 167, 166, 166, 169, 167, 167, 171, 172, 172, 167, 167, 141, 167, 143, 144, 145, 146, 147, 148, 149, 167, 32, 167, 167, 167, 167, 156, 157, 168, 168, 168, 75, 168, 168, 168, 168, 166, 81, 169, 168, 168, 171, 172, 168, 88, 89, 90, 169, 92, 169, 94, 169, 96, 169, 169, 99, 169, 169, 169, 169, 104, 105, 106, 169, 75, 169, 110, 111, 169, 169, 81, 169, 116, 117, 169, 169, 169, 88, 89, 90, 169, 92, 169, 94, 128, 96, 169, 169, 99, 169, 169, 169, 169, 104, 105, 106, 171, 75, 172, 110, 111, 1, -1, 81, -1, 116, 117, -1, -1, -1, 88, 89, 90, -1, 92, -1, 94, 128, 96, -1, -1, 99, -1, -1, 1, -1, 104, 105, 106, -1, 75, -1, 110, 111, -1, -1, 81, -1, 116, 117, -1, -1, -1, 88, 89, 90, -1, 92, -1, 94, 128, 96, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, -1, 75, -1, 110, 111, -1, -1, 81, 82, 116, 117, -1, -1, -1, 88, 89, 90, -1, 92, -1, 94, 128, 96, 85, -1, 99, 166, -1, -1, -1, 104, 105, 106, -1, -1, -1, 110, 111, -1, 101, 102, 103, 116, 117, -1, 107, 85, -1, -1, -1, -1, -1, -1, -1, 128, -1, 118, 119, -1, -1, -1, 123, 101, 102, 103, -1, -1, -1, 107, 131, 132, 133, 134, 135, -1, -1, -1, -1, -1, 118, 119, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, 75, -1, -1, -1, -1, 164, 81, -1, -1, 168, 169, -1, -1, 88, 89, 90, -1, 92, -1, 94, -1, 96, -1, -1, 99, -1, -1, -1, 164, 104, 105, 106, 168, 169, -1, 110, 111, -1, -1, -1, -1, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128); - protected array $actionBase = array(0, 155, -3, 313, 471, 471, 881, 963, 1365, 1388, 892, 134, 515, -61, 367, 524, 524, 801, 524, 209, 510, 283, 517, 517, 517, 920, 855, 628, 628, 855, 628, 1053, 1053, 1053, 1053, 1086, 1086, 1320, 1320, 1353, 1254, 1221, 1449, 1449, 1449, 1449, 1449, 1287, 1449, 1449, 1449, 1449, 1449, 1287, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 201, -13, 44, 365, 744, 1102, 1120, 1107, 1121, 1096, 1095, 1103, 1108, 1122, 1183, 1185, 837, 1186, 1187, 1182, 1188, 1110, 938, 1098, 1118, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 323, 482, 334, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 964, 964, 21, 21, 21, 324, 1135, 1100, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 297, 204, 1000, 187, 170, 170, 6, 6, 6, 6, 6, 692, 53, 1101, 819, 819, 138, 138, 138, 138, 542, 14, 347, 355, -41, 348, 232, 384, 384, 487, 487, 554, 554, 349, 349, 554, 554, 554, 399, 399, 399, 399, 208, 215, 366, 364, -7, 864, 224, 224, 224, 224, 864, 864, 864, 864, 829, 1190, 864, 1011, 1027, 864, 864, 368, 767, 767, 925, 305, 305, 305, 767, 421, -71, -71, 421, 380, -71, 225, 286, 556, 847, 572, 543, 556, 640, 771, 233, 148, 826, 605, 826, 1094, 831, 831, 802, 792, 921, 1140, 1123, 874, 1176, 876, 1178, 420, 9, 791, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1191, 519, 1094, 436, 1191, 1191, 1191, 519, 519, 519, 519, 519, 519, 519, 519, 805, 519, 519, 641, 436, 614, 618, 436, 860, 519, 877, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, -18, 201, 201, -13, 292, 292, 201, 216, 5, 292, 292, 292, 292, 201, 201, 201, 201, 605, 840, 882, 607, 435, 885, 29, 840, 840, 840, 4, 113, 25, 841, 843, 393, 835, 835, 835, 869, 956, 956, 835, 839, 835, 869, 835, 835, 956, 956, 879, 956, 146, 609, 373, 514, 616, 956, 272, 835, 835, 835, 835, 854, 956, 45, 68, 620, 835, 203, 191, 835, 835, 854, 848, 828, 846, 956, 956, 956, 854, 499, 846, 846, 846, 893, 895, 873, 822, 363, 341, 674, 127, 783, 822, 822, 835, 601, 873, 822, 873, 822, 880, 822, 822, 822, 873, 822, 839, 477, 822, 779, 786, 663, 74, 822, 51, 978, 980, 743, 982, 971, 984, 1038, 985, 987, 1125, 953, 999, 974, 989, 1039, 960, 957, 836, 763, 764, 878, 827, 951, 838, 838, 838, 948, 949, 838, 838, 838, 838, 838, 838, 838, 838, 763, 923, 884, 853, 1013, 765, 776, 1069, 820, 1145, 823, 1011, 978, 987, 789, 974, 989, 960, 957, 800, 799, 797, 798, 796, 795, 793, 794, 808, 1071, 1072, 990, 825, 778, 1049, 1020, 1143, 922, 1022, 1023, 1050, 1073, 898, 1083, 1147, 844, 1149, 1150, 924, 1028, 1126, 838, 940, 875, 934, 1027, 950, 763, 935, 1084, 1085, 1043, 824, 1054, 1058, 998, 870, 842, 936, 1152, 1029, 1032, 1033, 1127, 1129, 891, 1044, 962, 1059, 872, 1099, 1060, 1061, 1062, 1063, 1130, 1153, 1131, 890, 1132, 901, 858, 1041, 856, 1154, 504, 851, 857, 866, 1035, 536, 1007, 1136, 1134, 1155, 1064, 1065, 1067, 1159, 1161, 994, 902, 1046, 867, 1048, 1042, 903, 904, 606, 865, 1087, 845, 849, 859, 622, 672, 1164, 1165, 1167, 996, 830, 833, 905, 909, 1088, 832, 1092, 1170, 737, 910, 1171, 1070, 787, 788, 690, 750, 749, 790, 868, 1137, 883, 852, 850, 1034, 788, 834, 911, 1172, 912, 914, 916, 1068, 919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 784, 784, 784, 784, 784, 784, 784, 784, 628, 628, 628, 628, 784, 784, 784, 784, 784, 784, 784, 628, 784, 784, 784, 628, 628, 0, 0, 628, 0, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 758, 758, 612, 612, 612, 612, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 612, 612, 0, 612, 612, 612, 612, 612, 612, 612, 612, 879, 758, 758, 758, 758, 305, 305, 305, 305, -96, -96, 758, 758, 380, 758, 380, 758, 758, 305, 305, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 0, 0, 0, 436, -71, 758, 839, 839, 839, 839, 758, 758, 758, 758, -71, -71, 758, 414, 414, 758, 758, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 436, 0, 0, 839, 839, 758, 380, 879, 328, 758, 0, 0, 0, 0, 436, 839, 436, 519, -71, -71, 519, 519, 292, 201, 328, 596, 596, 596, 596, 0, 0, 605, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 839, 0, 879, 0, 839, 839, 839, 0, 0, 0, 0, 0, 0, 0, 0, 956, 0, 0, 0, 0, 0, 0, 0, 839, 0, 956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 838, 870, 0, 0, 870, 0, 838, 838, 838, 0, 0, 0, 865, 832); - protected array $actionDefault = array(3, 32767, 32767, 32767, 102, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 100, 32767, 631, 631, 631, 631, 32767, 32767, 257, 102, 32767, 32767, 500, 415, 415, 415, 32767, 32767, 32767, 573, 573, 573, 573, 573, 17, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 500, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 36, 7, 8, 10, 11, 49, 338, 100, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 624, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 403, 494, 504, 482, 483, 485, 486, 414, 574, 630, 344, 627, 342, 413, 146, 354, 343, 245, 261, 505, 262, 506, 509, 510, 218, 400, 150, 151, 446, 501, 448, 499, 503, 447, 420, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 418, 419, 502, 32767, 32767, 479, 478, 477, 444, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 445, 449, 417, 452, 450, 451, 468, 469, 466, 467, 470, 32767, 323, 32767, 32767, 32767, 471, 472, 473, 474, 381, 379, 32767, 32767, 111, 323, 111, 32767, 32767, 459, 460, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 517, 567, 476, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 100, 569, 441, 443, 537, 454, 455, 453, 421, 32767, 542, 32767, 102, 32767, 544, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 568, 32767, 575, 575, 32767, 530, 100, 196, 32767, 543, 196, 196, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 638, 530, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 32767, 196, 110, 32767, 32767, 32767, 100, 196, 196, 196, 196, 196, 196, 196, 196, 545, 196, 196, 191, 32767, 271, 273, 102, 592, 196, 547, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 530, 464, 139, 32767, 532, 139, 575, 456, 457, 458, 575, 575, 575, 319, 296, 32767, 32767, 32767, 32767, 32767, 545, 545, 100, 100, 100, 100, 32767, 32767, 32767, 32767, 111, 516, 99, 99, 99, 99, 99, 103, 101, 32767, 32767, 32767, 32767, 226, 32767, 101, 101, 99, 32767, 101, 101, 32767, 32767, 226, 228, 215, 230, 32767, 596, 597, 226, 101, 230, 230, 230, 250, 250, 519, 325, 101, 99, 101, 101, 198, 325, 325, 32767, 101, 519, 325, 519, 325, 200, 325, 325, 325, 519, 325, 32767, 101, 325, 217, 403, 99, 99, 325, 32767, 32767, 32767, 532, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 225, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 562, 32767, 580, 594, 462, 463, 465, 579, 577, 487, 488, 489, 490, 491, 492, 493, 496, 626, 32767, 536, 32767, 32767, 32767, 353, 32767, 636, 32767, 32767, 32767, 9, 74, 525, 42, 43, 51, 57, 551, 552, 553, 554, 548, 549, 555, 550, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 637, 32767, 575, 32767, 32767, 32767, 32767, 461, 557, 602, 32767, 32767, 576, 629, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 139, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 562, 32767, 137, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 558, 32767, 32767, 32767, 575, 32767, 32767, 32767, 32767, 321, 318, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 575, 32767, 32767, 32767, 32767, 32767, 298, 32767, 315, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 399, 532, 301, 303, 304, 32767, 32767, 32767, 32767, 375, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 153, 153, 3, 3, 356, 153, 153, 153, 356, 356, 153, 356, 356, 356, 153, 153, 153, 153, 153, 153, 283, 186, 265, 268, 250, 250, 153, 367, 153); - protected array $goto = array(202, 169, 202, 202, 202, 1056, 842, 712, 359, 670, 671, 598, 688, 689, 690, 748, 653, 655, 591, 929, 675, 930, 1090, 721, 699, 702, 1028, 710, 719, 1024, 171, 171, 171, 171, 226, 203, 199, 199, 181, 183, 221, 199, 199, 199, 199, 199, 1180, 200, 200, 200, 200, 200, 1180, 193, 194, 195, 196, 197, 198, 223, 221, 224, 550, 551, 431, 552, 555, 556, 557, 558, 559, 560, 561, 562, 172, 173, 174, 201, 175, 176, 177, 170, 178, 179, 180, 182, 220, 222, 225, 245, 248, 259, 260, 262, 263, 264, 265, 266, 267, 268, 269, 275, 276, 277, 278, 288, 289, 326, 327, 328, 437, 438, 439, 613, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 184, 242, 185, 194, 195, 196, 197, 198, 223, 204, 205, 206, 207, 246, 186, 187, 208, 188, 209, 205, 189, 247, 204, 168, 210, 211, 190, 212, 213, 214, 191, 215, 216, 192, 217, 218, 219, 285, 283, 285, 285, 870, 1089, 1091, 1094, 615, 255, 255, 255, 255, 255, 441, 677, 614, 1130, 884, 867, 436, 329, 323, 324, 345, 608, 440, 346, 442, 654, 724, 492, 521, 715, 896, 1128, 993, 883, 494, 253, 253, 253, 253, 250, 256, 489, 1361, 1362, 1386, 1386, 925, 920, 921, 934, 876, 922, 873, 923, 924, 874, 877, 363, 928, 881, 480, 480, 868, 880, 1386, 848, 474, 363, 363, 480, 1117, 1112, 1113, 1114, 1229, 351, 362, 362, 362, 362, 1389, 1389, 429, 363, 363, 1017, 902, 363, 989, 1403, 747, 360, 361, 566, 1026, 1021, 1056, 1285, 1285, 1285, 569, 352, 351, 363, 363, 605, 1056, 1285, 848, 1056, 848, 1056, 1056, 1137, 1138, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 357, 1261, 962, 637, 674, 1285, 1262, 1265, 963, 1266, 1285, 1285, 1285, 1285, 1376, 435, 1285, 628, 402, 1285, 1285, 1368, 1368, 1368, 1368, 1347, 574, 567, 1062, 1061, 1059, 1059, 958, 958, 697, 970, 1014, 942, 1051, 1067, 1068, 943, 565, 565, 565, 603, 513, 522, 514, 863, 676, 863, 565, 709, 520, 1176, 318, 567, 574, 600, 601, 319, 611, 617, 844, 633, 634, 1080, 8, 709, 9, 449, 709, 28, 1065, 1066, 467, 335, 316, 569, 698, 987, 987, 987, 987, 1363, 1364, 467, 639, 639, 981, 988, 609, 631, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1335, 1335, 863, 469, 682, 469, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 347, 258, 258, 626, 640, 643, 644, 645, 646, 667, 668, 669, 723, 632, 460, 860, 460, 460, 460, 1358, 1358, 1358, 553, 553, 1278, 985, 420, 720, 553, 1358, 553, 553, 553, 553, 553, 553, 553, 553, 451, 889, 568, 595, 568, 647, 649, 651, 568, 976, 595, 411, 405, 473, 886, 1276, 1370, 1370, 1370, 1370, 909, 866, 909, 909, 1036, 483, 612, 484, 485, 751, 563, 563, 563, 563, 894, 619, 1101, 1394, 1395, 412, 1332, 1332, 898, 490, 1151, 1354, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 279, 1105, 334, 334, 334, 998, 892, 0, 1280, 1047, 0, 0, 863, 0, 0, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 0, 0, 460, 1103, 554, 554, 0, 1356, 1356, 1103, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 621, 622, 417, 418, 947, 1166, 0, 686, 0, 687, 0, 422, 423, 424, 0, 700, 1033, 0, 425, 1281, 1282, 0, 1268, 355, 888, 0, 680, 1012, 858, 0, 0, 0, 882, 443, 0, 1268, 0, 897, 885, 1100, 1104, 0, 0, 0, 1275, 0, 443, 0, 1283, 1344, 1345, 996, 0, 0, 1063, 1063, 0, 0, 0, 681, 1074, 1070, 1071, 404, 407, 616, 620, 0, 0, 0, 0, 0, 0, 0, 986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1149, 901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1031, 1031); - protected array $gotoCheck = array(42, 42, 42, 42, 42, 73, 6, 73, 97, 86, 86, 48, 86, 86, 86, 48, 48, 48, 127, 65, 48, 65, 131, 9, 48, 48, 48, 48, 48, 48, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 23, 23, 23, 23, 15, 130, 130, 130, 134, 5, 5, 5, 5, 5, 66, 66, 8, 8, 35, 26, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 8, 84, 8, 8, 35, 8, 49, 35, 84, 5, 5, 5, 5, 5, 5, 185, 185, 185, 191, 191, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 15, 15, 157, 157, 27, 15, 191, 12, 159, 14, 14, 157, 15, 15, 15, 15, 159, 177, 24, 24, 24, 24, 191, 191, 43, 14, 14, 50, 45, 14, 50, 14, 50, 97, 97, 50, 50, 50, 73, 73, 73, 73, 14, 177, 177, 14, 14, 181, 73, 73, 12, 73, 12, 73, 73, 148, 148, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 188, 79, 79, 56, 56, 73, 79, 79, 79, 79, 73, 73, 73, 73, 190, 13, 73, 13, 62, 73, 73, 9, 9, 9, 9, 14, 76, 76, 119, 119, 89, 89, 9, 9, 89, 89, 103, 73, 89, 89, 89, 73, 19, 19, 19, 104, 163, 14, 163, 22, 64, 22, 19, 7, 163, 158, 76, 76, 76, 76, 76, 76, 76, 76, 7, 76, 76, 115, 46, 7, 46, 113, 7, 76, 120, 120, 19, 178, 178, 14, 117, 19, 19, 19, 19, 187, 187, 19, 108, 108, 19, 19, 2, 2, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 179, 179, 22, 83, 121, 83, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 29, 5, 5, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 23, 18, 23, 23, 23, 134, 134, 134, 165, 165, 14, 93, 93, 93, 165, 134, 165, 165, 165, 165, 165, 165, 165, 165, 83, 39, 9, 9, 9, 85, 85, 85, 9, 92, 9, 28, 9, 9, 37, 169, 134, 134, 134, 134, 25, 25, 25, 25, 110, 9, 9, 9, 9, 99, 107, 107, 107, 107, 9, 107, 133, 9, 9, 31, 180, 180, 41, 160, 151, 134, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 24, 136, 24, 24, 24, 96, 9, -1, 20, 114, -1, -1, 22, -1, -1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, -1, -1, 23, 134, 182, 182, -1, 134, 134, 134, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 17, 17, 82, 82, 17, 17, -1, 82, -1, 82, -1, 82, 82, 82, -1, 82, 17, -1, 82, 20, 20, -1, 20, 82, 17, -1, 17, 17, 20, -1, -1, -1, 17, 118, -1, 20, -1, 16, 16, 16, 16, -1, -1, -1, 17, -1, 118, -1, 20, 20, 20, 16, -1, -1, 118, 118, -1, -1, -1, 118, 118, 118, 118, 59, 59, 59, 59, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, 107); - protected array $gotoBase = array(0, 0, -339, 0, 0, 174, -7, 339, 171, 10, 0, 0, -69, -36, -78, -186, 130, 81, 114, 66, 117, 0, 62, 160, 240, 468, 178, 225, 118, 112, 0, 45, 0, 0, 0, -195, 0, 119, 0, 122, 0, 44, -1, 226, 0, 227, -387, 0, -715, 182, 241, 0, 0, 0, 0, 0, 256, 0, 0, 570, 0, 0, 269, 0, 102, 3, -63, 0, 0, 0, 0, 0, 0, -5, 0, 0, -31, 0, 0, -120, 110, 53, 54, 120, -286, -33, -724, 0, 0, 40, 0, 0, 124, 129, 0, 0, 61, -488, 0, 67, 0, 0, 0, 294, 295, 0, 0, 453, 141, 0, 100, 0, 0, 83, -3, 82, 0, 86, 318, 38, 78, 107, 0, 0, 0, 0, 0, 16, 0, 0, 168, 20, 0, 108, 163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 43, 0, 0, 0, 0, 0, 193, 101, -38, 46, 0, 0, -166, 0, 195, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, -60, 42, 157, 251, 243, 297, 0, 0, -97, 0, 1, 263, 0, 276, -101, 0, 0); - protected array $gotoDefault = array(-32768, 526, 755, 7, 756, 951, 831, 840, 590, 544, 722, 356, 641, 432, 1352, 927, 1165, 610, 859, 1294, 1300, 468, 862, 340, 745, 939, 910, 911, 408, 395, 875, 406, 665, 642, 507, 895, 464, 887, 499, 890, 463, 899, 167, 428, 524, 903, 6, 906, 572, 937, 991, 396, 914, 397, 693, 916, 594, 918, 919, 403, 409, 410, 1170, 602, 638, 931, 261, 596, 932, 394, 933, 941, 399, 401, 703, 479, 518, 512, 421, 1132, 597, 625, 662, 457, 486, 636, 648, 635, 493, 444, 426, 339, 975, 983, 500, 477, 997, 358, 1005, 753, 1178, 656, 502, 1013, 657, 1020, 1023, 545, 546, 491, 1035, 271, 1038, 503, 1048, 26, 683, 1053, 1054, 684, 658, 1076, 659, 685, 660, 1078, 476, 592, 1179, 475, 1093, 1099, 465, 1102, 1340, 466, 1106, 270, 1109, 284, 427, 445, 1115, 1116, 12, 1122, 713, 714, 25, 280, 523, 1150, 704, -32768, -32768, -32768, -32768, 462, 1177, 461, 1249, 1251, 573, 504, 1269, 301, 1272, 696, 519, 1277, 458, 1343, 459, 547, 487, 325, 548, 1387, 315, 343, 322, 564, 302, 344, 549, 488, 1349, 1357, 341, 34, 1377, 1388, 607, 630); - protected array $ruleToNonTerminal = array(0, 1, 3, 3, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 25, 25, 50, 69, 69, 72, 72, 71, 70, 70, 63, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 80, 80, 26, 26, 27, 27, 27, 27, 27, 88, 88, 90, 90, 83, 83, 91, 91, 92, 92, 92, 84, 84, 87, 87, 85, 85, 93, 94, 94, 57, 57, 65, 65, 68, 68, 68, 67, 95, 95, 96, 58, 58, 58, 58, 97, 97, 98, 98, 99, 99, 100, 101, 101, 102, 102, 103, 103, 55, 55, 51, 51, 105, 53, 53, 106, 52, 52, 54, 54, 64, 64, 64, 64, 81, 81, 109, 109, 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, 110, 110, 110, 115, 115, 115, 115, 89, 89, 118, 118, 118, 119, 119, 116, 116, 120, 120, 122, 122, 123, 123, 117, 124, 124, 121, 125, 125, 125, 125, 113, 113, 82, 82, 82, 20, 20, 20, 128, 128, 128, 128, 129, 129, 129, 127, 126, 126, 131, 131, 131, 130, 130, 60, 132, 132, 133, 61, 135, 135, 136, 136, 137, 137, 86, 138, 138, 138, 138, 138, 138, 138, 143, 143, 144, 144, 145, 145, 145, 145, 145, 146, 147, 147, 142, 142, 139, 139, 141, 141, 149, 149, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 140, 150, 150, 152, 151, 151, 153, 153, 114, 154, 154, 156, 156, 156, 155, 155, 62, 104, 157, 157, 56, 56, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 164, 165, 165, 166, 158, 158, 163, 163, 167, 168, 168, 169, 170, 171, 171, 171, 171, 19, 19, 73, 73, 73, 73, 159, 159, 159, 159, 173, 173, 162, 162, 162, 160, 160, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 180, 180, 180, 108, 182, 182, 182, 182, 161, 161, 161, 161, 161, 161, 161, 161, 59, 59, 176, 176, 176, 176, 176, 183, 183, 172, 172, 172, 172, 184, 184, 184, 184, 184, 184, 74, 74, 66, 66, 66, 66, 134, 134, 134, 134, 187, 186, 175, 175, 175, 175, 175, 175, 175, 174, 174, 174, 185, 185, 185, 185, 107, 181, 189, 189, 188, 188, 190, 190, 190, 190, 190, 190, 190, 190, 178, 178, 178, 178, 177, 192, 191, 191, 191, 191, 191, 191, 191, 191, 193, 193, 193, 193); - protected array $ruleToLength = array(1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, 0, 1, 1, 1, 1, 4, 3, 5, 4, 3, 4, 1, 3, 4, 1, 1, 8, 7, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, 1, 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 1, 1, 8, 9, 7, 8, 7, 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 7, 9, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, 2, 4, 3, 2, 4, 4, 3, 3, 1, 3, 1, 1, 3, 2, 2, 3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, 1, 5, 5, 6, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, 0, 2, 0, 5, 8, 1, 3, 3, 0, 2, 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, 4, 4, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, 3, 2, 2, 1, 1, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1); + protected array $action = array(134, 135, 136, 574, 137, 138, 1046, 763, 764, 765, 139, 41, 387, 388, 447, 336, -32766, -32766, -32766, -628, 838, 494, 432, 0, 875, -625, 876, -628, 1092, 1352, -32766, -32766, -32766, -625, -338, 757, 756, -32766, 4, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, -32766, -195, -32766, -32766, 766, 1142, 1143, 1144, 1138, 1137, 1136, 1145, 1139, 1140, 1141, 387, 388, 305, 271, 54, 390, 770, 771, 772, 773, 432, 846, 433, -32766, -32766, -32766, 480, 481, 297, 827, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 803, 575, 804, 805, 806, 807, 795, 796, 352, 353, 798, 799, 784, 785, 786, 788, 789, 790, 363, 830, 831, 832, 833, 834, 576, -194, 305, 849, 791, 792, 577, 578, 5, 815, 813, 814, 826, 810, 811, 1310, 3, 579, 580, 809, 581, 582, 583, 584, -581, 585, 586, 757, 756, 109, 110, 111, 812, 587, 588, 626, 140, 495, 134, 135, 136, 574, 137, 138, 1081, 763, 764, 765, 139, 41, -32766, 29, 1043, 1038, 1037, 1036, 1042, 1039, 1040, 1041, -32766, -32766, -32766, -628, 1397, -628, 1092, 1398, 243, -625, 1283, -625, -338, 757, 756, 1055, 87, -32766, -32766, -32766, 335, -32766, 954, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -195, -581, -581, 766, -32766, -32766, -32766, 847, -32766, 296, -32766, -32766, -32766, -32766, -32766, 1368, 429, 271, 54, 390, 770, 771, 772, 773, 38, -32766, 433, -32766, -32766, -32766, -32766, -581, 620, 827, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 803, 575, 804, 805, 806, 807, 795, 796, 352, 353, 798, 799, 784, 785, 786, 788, 789, 790, 363, 830, 831, 832, 833, 834, 576, -194, -579, 141, 791, 792, 577, 578, 848, 815, 813, 814, 826, 810, 811, 433, 302, 579, 580, 809, 581, 582, 583, 584, 145, 585, 586, 838, 335, 469, 470, 471, 812, 587, 588, 840, 140, 843, 134, 135, 136, 574, 137, 138, 1079, 763, 764, 765, 139, 41, 1142, 1143, 1144, 1138, 1137, 1136, 1145, 1139, 1140, 1141, 149, 242, -275, -32766, -32766, -32766, 1092, 27, 1283, -579, -579, 1078, 256, 757, 756, -32767, -32767, -32767, -32767, 107, 108, 109, 110, 111, -32766, -579, -32766, -32766, -32766, 316, 500, 737, 1131, 766, 1285, 1284, 1286, -585, 1372, -579, -382, 293, -382, 1117, 429, 1005, 1371, 271, 54, 390, 770, 771, 772, 773, 146, 842, 433, 844, 335, 757, 756, 52, 724, 827, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 803, 575, 804, 805, 806, 807, 795, 796, 352, 353, 798, 799, 784, 785, 786, 788, 789, 790, 363, 830, 831, 832, 833, 834, 576, -577, 320, -578, 791, 792, 577, 578, -576, 815, 813, 814, 826, 810, 811, 1094, 332, 579, 580, 809, 581, 582, 583, 584, -85, 585, 586, 958, 957, 1052, 306, 307, 812, 587, 588, 838, 140, 570, 134, 135, 136, 574, 137, 138, 1083, 763, 764, 765, 139, 41, 348, 112, 113, 114, 1055, 281, -32766, -32766, -32766, 1283, 131, -32766, -32766, -32766, 349, 1283, 1092, 115, -577, -577, -578, -578, -32766, 757, 756, -576, -576, 956, 289, 1006, 974, 975, -32766, 1055, -577, 976, -578, -32766, -32766, -32766, -85, -576, 132, 766, 970, 429, -584, 1055, -577, 377, -578, 429, 1322, -583, 381, -576, 397, 271, 54, 390, 770, 771, 772, 773, 1116, 399, 433, 10, 749, 451, 875, 296, 876, 827, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 803, 575, 804, 805, 806, 807, 795, 796, 352, 353, 798, 799, 784, 785, 786, 788, 789, 790, 363, 830, 831, 832, 833, 834, 576, -50, 669, 23, 791, 792, 577, 578, -32766, 815, 813, 814, 826, 810, 811, 452, -575, 579, 580, 809, 581, 582, 583, 584, 847, 585, 586, 1387, 88, 89, 90, 144, 812, 587, 588, 453, 140, 787, 758, 759, 760, 761, 762, 153, 763, 764, 765, 800, 801, 40, 1283, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 1052, 281, -32766, 1283, 603, 1283, 389, 388, -575, -575, -619, 429, -619, 115, 688, 689, 432, 766, 39, 253, 152, 415, 385, 386, -575, 1055, -32766, 297, 1290, 660, 661, 767, 768, 769, 770, 771, 772, 773, -575, 429, 836, 429, 391, 392, 53, 454, 853, 827, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 803, 825, 804, 805, 806, 807, 795, 796, 797, 824, 798, 799, 784, 785, 786, 788, 789, 790, 829, 830, 831, 832, 833, 834, 835, 154, 156, 157, 791, 792, 793, 794, 1283, 815, 813, 814, 826, 810, 811, 158, -78, 802, 808, 809, 816, 817, 819, 818, 293, 820, 821, 160, 847, 308, 309, -32766, 812, 823, 822, 55, 56, 57, 58, 526, 59, 60, -58, 36, 1281, 380, 61, 62, -57, 63, -87, 31, 272, 129, 130, 142, 1055, 143, 148, 133, 161, 162, 163, 847, 164, 757, 756, 1314, 1054, 165, -309, -84, 281, 1283, 702, 115, 698, 150, -78, 847, 296, -73, -72, -71, 64, 65, -32766, 1285, 1284, 1286, 66, -70, 67, 250, 251, 68, 69, 70, 71, 72, 73, 74, 75, 1276, 31, 272, 48, 449, 1283, 429, 703, 80, 1316, 1317, 528, -69, 847, 335, 1052, -68, 1314, 542, -67, 1302, 1303, 1304, 1305, 1307, 1299, 1300, -66, -65, 933, 534, 704, 705, 1306, 1301, -46, -18, 384, 383, 42, 1055, 429, 280, 78, 290, 738, 741, 347, 331, 335, 1285, 1284, 1286, 1276, 932, 2, 289, 151, 294, 538, 539, 295, -305, 285, 289, 286, 291, 292, 341, 838, 541, 542, 298, 1302, 1303, 1304, 1305, 1307, 1299, 1300, 304, 299, 713, 79, 950, 1149, 1306, 1301, 590, 1399, 1285, 1284, 1286, 305, -4, 933, 76, -32766, 13, 670, 330, 331, 335, 527, -154, -154, -154, 477, 715, 313, 971, 691, 310, 923, 675, 319, 46, 22, 529, -154, 530, -154, 531, -154, 532, -154, 311, 533, 1321, -541, 596, 505, 49, 50, 455, 382, 676, 692, 51, 535, -32766, 1323, 952, 624, 375, -531, 974, 975, -613, 305, 933, 536, 658, 846, 0, 0, 537, 1311, 0, 909, 970, -110, -110, -110, -278, 0, 0, 0, 0, 527, 44, 0, 11, 30, 0, 1290, 0, 0, 379, 923, 0, 0, 46, 22, 529, 45, 530, 0, 531, 0, 532, 0, 935, 533, 0, 0, 722, -154, 49, 50, 455, 382, 858, 445, 51, 535, -16, 1338, 303, 1356, 375, 746, 974, 975, 747, 866, 914, 536, 1015, 992, 999, 933, 537, 989, 527, 540, 970, -110, -110, -110, 1000, 912, 987, 1120, 923, 1123, 1124, 46, 22, 529, 1121, 530, 1122, 531, 1128, 532, 1390, 663, 533, 21, -253, -253, -253, 49, 50, 455, 382, 847, 935, 51, 535, -612, 722, -4, -611, 375, -585, 974, 975, -584, -583, -582, 536, -525, 1, 32, 33, 537, 43, 47, 909, 970, -110, -110, -110, 77, 81, 82, 83, 84, 85, 86, -110, -110, 147, 527, 1115, -110, 155, 159, 248, 337, 364, 365, 366, 923, -110, 367, 46, 22, 529, 368, 530, 935, 531, -32766, 532, 722, -253, 533, 369, -252, -252, -252, 49, 50, 455, 382, 370, 371, 51, 535, 372, 373, 374, 376, 375, 305, 974, 975, 80, 757, 756, 536, 446, 569, 335, -276, 537, -275, 1290, 909, 970, -110, -110, -110, 35, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 15, 16, 17, 18, 31, 273, 20, 413, 496, 497, 504, 507, 508, 509, 935, 510, 847, 37, 722, -252, 1314, 514, 515, 516, 524, 601, 933, -110, 708, 1191, 1193, 1231, -110, 1312, -110, 1082, 1080, 1061, 1271, 312, -575, 1057, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -280, -102, 14, 1276, 727, 19, 24, 302, 412, 847, 615, 621, 649, 714, 1235, 1289, 1232, 933, 1369, 414, 541, 542, 329, 1302, 1303, 1304, 1305, 1307, 1299, 1300, 378, 723, 726, 730, 731, 733, 1306, 1301, 734, 735, 1315, -357, 736, 740, -110, -110, 78, 527, 728, -110, 933, 331, 335, 725, -575, -575, 418, 923, -110, 743, 46, 22, 529, 910, 530, 1394, 531, -32766, 532, 1396, -575, 533, 869, 868, 964, 1007, 49, 50, 455, 1395, 963, 729, 51, 535, -575, 1249, 961, 962, 375, 305, 965, 527, 80, 1264, 933, 335, 943, 953, 335, 941, 537, 923, 997, 998, 46, 22, 529, 647, 530, 1393, 531, 1350, 532, 1339, 1357, 533, 1366, 0, 0, 0, 49, 50, 455, 0, 527, 732, 51, 535, 0, 0, 0, 933, 375, 0, 923, 0, 935, 46, 22, 529, 722, 530, 0, 531, 537, 532, 0, 0, 533, 0, 0, 0, 0, 49, 50, 455, 0, 0, 0, 51, 535, 0, 739, 0, 0, 375, 0, 0, 527, 0, 0, 0, 0, 0, 0, 933, 0, 537, 923, 0, 935, 46, 22, 529, 722, 530, 0, 531, 0, 532, 0, 0, 533, 0, 0, 0, 0, 49, 50, 455, 0, 0, 0, 51, 535, 527, 0, 0, 0, 375, 0, 0, 0, 991, 0, 923, 0, 722, 46, 22, 529, 537, 530, 0, 531, 0, 532, 0, 0, 533, 0, 31, 273, 0, 49, 50, 455, 0, 0, 0, 51, 535, 0, 847, 0, 0, 375, 1314, 0, 527, 0, 0, 0, 0, 0, 0, 0, 935, 537, 923, 0, 722, 46, 22, 529, 0, 530, 0, 531, 0, 532, 0, 0, 533, 0, 0, 0, 0, 49, 50, 455, 0, 0, 1276, 51, 535, 0, 0, 0, 0, 375, 0, 0, 0, 935, 0, 0, 0, 722, 0, 0, 542, 537, 1302, 1303, 1304, 1305, 1307, 1299, 1300, 0, 0, 0, 0, 0, 0, 1306, 1301, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 331, 335, 0, 0, 0, 0, 0, 935, 0, 0, 0, 722); + protected array $actionCheck = array(3, 4, 5, 6, 7, 8, 1, 10, 11, 12, 13, 14, 107, 108, 109, 71, 10, 11, 12, 1, 81, 32, 117, 0, 107, 1, 109, 9, 31, 1, 10, 11, 12, 9, 9, 38, 39, 31, 9, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 31, 9, 33, 34, 58, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 107, 108, 163, 72, 73, 74, 75, 76, 77, 78, 117, 160, 81, 10, 11, 12, 138, 139, 31, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 9, 163, 1, 127, 128, 129, 130, 9, 132, 133, 134, 135, 136, 137, 1, 9, 140, 141, 142, 143, 144, 145, 146, 71, 148, 149, 38, 39, 51, 52, 53, 155, 156, 157, 52, 159, 168, 3, 4, 5, 6, 7, 8, 167, 10, 11, 12, 13, 14, 117, 9, 119, 120, 121, 122, 123, 124, 125, 126, 10, 11, 12, 165, 81, 167, 31, 84, 15, 165, 81, 167, 167, 38, 39, 142, 168, 10, 11, 12, 172, 31, 1, 33, 34, 35, 36, 37, 38, 39, 167, 138, 139, 58, 10, 11, 12, 83, 31, 166, 33, 34, 35, 36, 37, 1, 117, 72, 73, 74, 75, 76, 77, 78, 9, 31, 81, 33, 34, 35, 36, 168, 1, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 167, 71, 9, 127, 128, 129, 130, 164, 132, 133, 134, 135, 136, 137, 81, 167, 140, 141, 142, 143, 144, 145, 146, 168, 148, 149, 81, 172, 133, 134, 135, 155, 156, 157, 81, 159, 81, 3, 4, 5, 6, 7, 8, 167, 10, 11, 12, 13, 14, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 9, 98, 167, 10, 11, 12, 31, 102, 81, 138, 139, 1, 9, 38, 39, 45, 46, 47, 48, 49, 50, 51, 52, 53, 31, 154, 33, 34, 35, 9, 103, 168, 127, 58, 160, 161, 162, 166, 1, 168, 107, 31, 109, 169, 117, 32, 9, 72, 73, 74, 75, 76, 77, 78, 168, 161, 81, 161, 172, 38, 39, 71, 168, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 71, 9, 71, 127, 128, 129, 130, 71, 132, 133, 134, 135, 136, 137, 31, 9, 140, 141, 142, 143, 144, 145, 146, 32, 148, 149, 73, 74, 117, 138, 139, 155, 156, 157, 81, 159, 86, 3, 4, 5, 6, 7, 8, 167, 10, 11, 12, 13, 14, 9, 54, 55, 56, 142, 58, 10, 11, 117, 81, 168, 10, 11, 12, 9, 81, 31, 70, 138, 139, 138, 139, 117, 38, 39, 138, 139, 123, 166, 164, 118, 119, 31, 142, 154, 123, 154, 10, 11, 12, 98, 154, 15, 58, 132, 117, 166, 142, 168, 9, 168, 117, 151, 166, 9, 168, 9, 72, 73, 74, 75, 76, 77, 78, 164, 107, 81, 109, 168, 9, 107, 166, 109, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 32, 76, 77, 127, 128, 129, 130, 10, 132, 133, 134, 135, 136, 137, 9, 71, 140, 141, 142, 143, 144, 145, 146, 83, 148, 149, 86, 10, 11, 12, 32, 155, 156, 157, 9, 159, 3, 4, 5, 6, 7, 8, 15, 10, 11, 12, 13, 14, 31, 81, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 117, 58, 117, 81, 82, 81, 107, 108, 138, 139, 165, 117, 167, 70, 76, 77, 117, 58, 152, 153, 102, 103, 107, 108, 154, 142, 141, 31, 1, 112, 113, 72, 73, 74, 75, 76, 77, 78, 168, 117, 81, 117, 107, 108, 71, 9, 9, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 15, 15, 15, 127, 128, 129, 130, 81, 132, 133, 134, 135, 136, 137, 15, 17, 140, 141, 142, 143, 144, 145, 146, 31, 148, 149, 15, 83, 138, 139, 117, 155, 156, 157, 2, 3, 4, 5, 6, 7, 8, 17, 15, 117, 154, 13, 14, 17, 16, 32, 71, 72, 17, 17, 17, 142, 17, 17, 168, 17, 17, 17, 83, 17, 38, 39, 87, 141, 17, 36, 32, 58, 81, 81, 70, 78, 71, 32, 83, 166, 32, 32, 32, 51, 52, 141, 160, 161, 162, 57, 32, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 123, 71, 72, 73, 74, 81, 117, 117, 166, 79, 80, 81, 32, 83, 172, 117, 32, 87, 141, 32, 143, 144, 145, 146, 147, 148, 149, 32, 32, 1, 100, 141, 142, 156, 157, 32, 32, 107, 108, 32, 142, 117, 32, 166, 32, 32, 32, 117, 171, 172, 160, 161, 162, 123, 32, 166, 166, 32, 38, 129, 130, 38, 36, 36, 166, 36, 36, 36, 36, 81, 140, 141, 38, 143, 144, 145, 146, 147, 148, 149, 150, 38, 81, 159, 39, 83, 156, 157, 90, 84, 160, 161, 162, 163, 0, 1, 166, 86, 98, 91, 170, 171, 172, 75, 76, 77, 78, 98, 93, 115, 132, 95, 136, 85, 97, 136, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 137, 99, 151, 154, 158, 98, 104, 105, 106, 107, 101, 101, 110, 111, 141, 151, 159, 158, 116, 154, 118, 119, 166, 163, 1, 123, 114, 160, -1, -1, 128, 165, -1, 131, 132, 133, 134, 135, 167, -1, -1, -1, -1, 75, 164, -1, 154, 154, -1, 1, -1, -1, 154, 85, -1, -1, 88, 89, 90, 164, 92, -1, 94, -1, 96, -1, 164, 99, -1, -1, 168, 169, 104, 105, 106, 107, 165, 109, 110, 111, 32, 165, 114, 165, 116, 164, 118, 119, 164, 164, 164, 123, 164, 164, 164, 1, 128, 164, 75, 131, 132, 133, 134, 135, 164, 164, 164, 164, 85, 164, 164, 88, 89, 90, 164, 92, 164, 94, 164, 96, 165, 165, 99, 155, 101, 102, 103, 104, 105, 106, 107, 83, 164, 110, 111, 166, 168, 169, 166, 116, 166, 118, 119, 166, 166, 166, 123, 166, 166, 166, 166, 128, 166, 166, 131, 132, 133, 134, 135, 166, 166, 166, 166, 166, 166, 166, 118, 119, 166, 75, 1, 123, 166, 166, 166, 166, 166, 166, 166, 85, 132, 166, 88, 89, 90, 166, 92, 164, 94, 141, 96, 168, 169, 99, 166, 101, 102, 103, 104, 105, 106, 107, 166, 166, 110, 111, 166, 166, 166, 166, 116, 163, 118, 119, 166, 38, 39, 123, 166, 166, 172, 167, 128, 167, 1, 131, 132, 133, 134, 135, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 167, 167, 167, 167, 71, 72, 167, 167, 167, 167, 167, 167, 167, 167, 164, 167, 83, 168, 168, 169, 87, 167, 167, 167, 167, 167, 1, 102, 167, 60, 61, 167, 107, 167, 109, 167, 167, 167, 167, 114, 71, 167, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 167, 167, 167, 123, 32, 167, 167, 167, 167, 83, 167, 167, 167, 167, 167, 167, 167, 1, 167, 169, 140, 141, 168, 143, 144, 145, 146, 147, 148, 149, 168, 168, 168, 168, 168, 168, 156, 157, 168, 168, 171, 169, 168, 168, 118, 119, 166, 75, 32, 123, 1, 171, 172, 168, 138, 139, 169, 85, 132, 169, 88, 89, 90, 169, 92, 169, 94, 141, 96, 169, 154, 99, 169, 169, 169, 169, 104, 105, 106, 169, 169, 32, 110, 111, 168, 170, 169, 169, 116, 163, 169, 75, 166, 169, 1, 172, 169, 169, 172, 169, 128, 85, 169, 169, 88, 89, 90, 169, 92, 169, 94, 169, 96, 169, 169, 99, 169, -1, -1, -1, 104, 105, 106, -1, 75, 32, 110, 111, -1, -1, -1, 1, 116, -1, 85, -1, 164, 88, 89, 90, 168, 92, -1, 94, 128, 96, -1, -1, 99, -1, -1, -1, -1, 104, 105, 106, -1, -1, -1, 110, 111, -1, 32, -1, -1, 116, -1, -1, 75, -1, -1, -1, -1, -1, -1, 1, -1, 128, 85, -1, 164, 88, 89, 90, 168, 92, -1, 94, -1, 96, -1, -1, 99, -1, -1, -1, -1, 104, 105, 106, -1, -1, -1, 110, 111, 75, -1, -1, -1, 116, -1, -1, -1, 164, -1, 85, -1, 168, 88, 89, 90, 128, 92, -1, 94, -1, 96, -1, -1, 99, -1, 71, 72, -1, 104, 105, 106, -1, -1, -1, 110, 111, -1, 83, -1, -1, 116, 87, -1, 75, -1, -1, -1, -1, -1, -1, -1, 164, 128, 85, -1, 168, 88, 89, 90, -1, 92, -1, 94, -1, 96, -1, -1, 99, -1, -1, -1, -1, 104, 105, 106, -1, -1, 123, 110, 111, -1, -1, -1, -1, 116, -1, -1, -1, 164, -1, -1, -1, 168, -1, -1, 141, 128, 143, 144, 145, 146, 147, 148, 149, -1, -1, -1, -1, -1, -1, 156, 157, -1, -1, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, 171, 172, -1, -1, -1, -1, -1, 164, -1, -1, -1, 168); + protected array $actionBase = array(0, 155, -3, 313, 471, 471, 882, 948, 1003, 1074, 744, 134, 212, -61, 1293, 1370, 1370, 1407, 1370, 1249, 1326, 232, 1451, 1451, 1451, 932, 855, 628, 628, 855, 628, 778, 778, 778, 778, 109, 109, 265, 265, 591, 593, 563, 420, 414, 414, 414, 414, 414, 743, 414, 414, 414, 414, 414, 743, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 122, 351, 127, 241, 779, 1117, 1124, 1120, 1125, 1115, 1112, 1118, 1121, 1126, 1217, 1219, 879, 1221, 1222, 1215, 1224, 1122, 936, 1116, 1123, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 592, 513, 482, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 1157, 1157, 487, 487, 487, 20, 1437, 731, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 331, 204, 1193, 187, 170, 170, 6, 6, 6, 6, 6, 1149, 53, 1028, 1203, 1203, 308, 308, 308, 308, 243, 271, 348, 696, -95, 665, -41, 752, 752, 98, 98, 552, 552, 391, 391, 552, 552, 552, 377, 377, 377, 377, 209, 366, 373, -83, 387, 853, 224, 224, 224, 224, 853, 853, 853, 853, 844, 1146, 853, 990, 1008, 853, 853, 368, 539, 539, 642, 433, 433, 433, 539, 449, 535, 535, 449, 398, 535, 28, 103, 554, 832, 568, 514, 554, 73, 328, 24, 18, 847, 584, 847, 1111, 865, 865, 857, 800, 934, 1162, 1128, 889, 1210, 890, 1211, 174, -56, 797, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1200, 359, 1111, 234, 1200, 1200, 1200, 359, 359, 359, 359, 359, 359, 359, 359, 858, 359, 359, 586, 234, 520, 607, 234, 886, 359, 845, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, -11, 122, 122, 351, 201, 201, 122, 386, 5, 201, 201, 201, 201, 122, 122, 122, 122, 584, 765, 826, 604, 428, 839, 112, 765, 765, 765, 25, 173, 43, 785, 880, 444, 842, 842, 842, 856, 962, 962, 842, 747, 842, 856, 842, 842, 962, 962, 840, 962, 272, 546, 477, 531, 600, 962, 358, 842, 842, 842, 842, 833, 962, 29, 119, 620, 842, 341, 329, 842, 842, 833, 830, 866, 843, 962, 962, 962, 833, 526, 843, 843, 843, 901, 904, 892, 864, 443, 429, 706, 225, 899, 864, 864, 842, 533, 892, 864, 892, 864, 837, 864, 864, 864, 892, 864, 747, 491, 864, 794, 795, 705, 162, 864, 23, 973, 974, 769, 975, 966, 976, 1032, 977, 978, 1140, 961, 988, 967, 979, 1033, 964, 963, 876, 787, 788, 872, 829, 959, 756, 756, 756, 954, 957, 756, 756, 756, 756, 756, 756, 756, 756, 787, 846, 878, 852, 991, 789, 791, 1082, 831, 1171, 1192, 990, 973, 978, 790, 967, 979, 964, 963, 850, 849, 838, 841, 834, 810, 801, 802, 861, 982, 860, 792, 1063, 992, 1167, 1131, 995, 999, 1064, 1088, 905, 1090, 1173, 757, 1177, 1180, 891, 1016, 1141, 756, 952, 836, 896, 1008, 958, 787, 898, 1092, 1093, 1057, 1073, 1065, 1066, 1139, 863, 859, 935, 1181, 1017, 1020, 1021, 1142, 1143, 875, 1058, 851, 1067, 887, 1127, 1068, 1069, 1070, 1072, 1144, 1182, 1147, 949, 1148, 906, 862, 1034, 871, 1183, 622, 884, 885, 897, 1023, 737, 989, 1151, 1164, 1187, 1078, 1079, 1080, 1188, 1194, 986, 908, 1059, 870, 1060, 1036, 909, 910, 738, 888, 1094, 881, 883, 877, 739, 751, 1195, 1198, 1201, 987, 867, 749, 913, 920, 1095, 874, 1098, 1204, 763, 921, 1205, 1085, 796, 798, 750, 782, 776, 803, 869, 1152, 873, 848, 854, 1022, 798, 868, 922, 1207, 923, 925, 926, 1081, 930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 784, 784, 784, 784, 784, 784, 784, 784, 628, 628, 628, 628, 784, 784, 784, 784, 784, 784, 784, 628, 784, 784, 784, 628, 628, 0, 0, 628, 0, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 678, 678, 612, 612, 612, 612, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 612, 612, 0, 612, 612, 612, 612, 612, 612, 612, 612, 840, 678, 678, 678, 678, 433, 433, 433, 433, 211, 211, 678, 678, 398, 678, 398, 678, 678, 433, 433, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 0, 0, 0, 234, 535, 678, 747, 747, 747, 747, 678, 678, 678, 678, 535, 535, 678, 390, 390, 678, 678, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 234, 0, 0, 747, 747, 678, 398, 840, 375, 678, 0, 0, 0, 0, 234, 747, 234, 359, 535, 535, 359, 359, 201, 122, 375, 587, 587, 587, 587, 0, 0, 584, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 747, 0, 840, 0, 747, 747, 747, 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, 0, 0, 0, 747, 0, 962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 863, 0, 0, 863, 0, 756, 756, 756, 0, 0, 0, 888, 874); + protected array $actionDefault = array(3, 32767, 32767, 32767, 102, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 100, 32767, 631, 631, 631, 631, 32767, 32767, 257, 102, 32767, 32767, 500, 32767, 415, 415, 415, 32767, 32767, 32767, 573, 573, 573, 573, 573, 17, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 500, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 36, 7, 8, 10, 11, 49, 340, 100, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 624, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 403, 494, 504, 482, 483, 485, 486, 414, 574, 630, 344, 627, 339, 413, 146, 354, 342, 245, 261, 505, 262, 506, 509, 510, 218, 400, 150, 151, 446, 501, 448, 499, 503, 447, 420, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 418, 419, 502, 32767, 32767, 479, 478, 477, 444, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 445, 449, 417, 452, 450, 451, 468, 469, 466, 467, 470, 32767, 323, 32767, 32767, 32767, 471, 472, 473, 474, 381, 379, 32767, 32767, 111, 323, 111, 32767, 32767, 459, 460, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 517, 567, 476, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 100, 569, 441, 443, 537, 454, 455, 453, 421, 32767, 542, 32767, 102, 32767, 544, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 568, 32767, 575, 575, 32767, 530, 100, 196, 32767, 543, 196, 196, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 638, 530, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 32767, 196, 110, 32767, 32767, 32767, 100, 196, 196, 196, 196, 196, 196, 196, 196, 545, 196, 196, 191, 32767, 271, 273, 102, 592, 196, 547, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 530, 464, 139, 32767, 532, 139, 575, 456, 457, 458, 575, 575, 575, 319, 296, 32767, 32767, 32767, 32767, 32767, 545, 545, 100, 100, 100, 100, 32767, 32767, 32767, 32767, 111, 516, 99, 99, 99, 99, 99, 103, 101, 32767, 32767, 32767, 32767, 226, 32767, 101, 101, 99, 32767, 101, 101, 32767, 32767, 226, 228, 215, 230, 32767, 596, 597, 226, 101, 230, 230, 230, 250, 250, 519, 325, 101, 99, 101, 101, 198, 325, 325, 32767, 101, 519, 325, 519, 325, 200, 325, 325, 325, 519, 325, 32767, 101, 325, 217, 403, 99, 99, 325, 32767, 32767, 32767, 532, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 225, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 562, 32767, 580, 594, 462, 463, 465, 579, 577, 487, 488, 489, 490, 491, 492, 493, 496, 626, 32767, 536, 32767, 32767, 32767, 353, 32767, 636, 32767, 32767, 32767, 9, 74, 525, 42, 43, 51, 57, 551, 552, 553, 554, 548, 549, 555, 550, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 637, 32767, 575, 32767, 32767, 32767, 32767, 461, 557, 602, 32767, 32767, 576, 629, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 139, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 562, 32767, 137, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 558, 32767, 32767, 32767, 575, 32767, 32767, 32767, 32767, 321, 318, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 575, 32767, 32767, 32767, 32767, 32767, 298, 32767, 315, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 399, 532, 301, 303, 304, 32767, 32767, 32767, 32767, 375, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 153, 153, 3, 3, 356, 153, 153, 153, 356, 356, 153, 356, 356, 356, 153, 153, 153, 153, 153, 153, 283, 186, 265, 268, 250, 250, 153, 367, 153); + protected array $goto = array(201, 168, 201, 201, 201, 1053, 926, 709, 927, 667, 668, 595, 685, 686, 687, 745, 650, 652, 1085, 358, 672, 634, 671, 718, 696, 699, 1025, 707, 716, 1021, 170, 170, 170, 170, 225, 202, 198, 198, 180, 182, 220, 207, 198, 198, 198, 198, 198, 1177, 199, 199, 199, 199, 199, 1177, 192, 193, 194, 195, 196, 197, 222, 220, 223, 549, 550, 430, 551, 554, 555, 556, 557, 558, 559, 560, 561, 171, 172, 173, 200, 174, 175, 176, 169, 177, 178, 179, 181, 219, 221, 224, 244, 247, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 274, 275, 276, 277, 287, 288, 325, 326, 327, 436, 437, 438, 610, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 183, 241, 184, 193, 194, 195, 196, 197, 222, 203, 204, 205, 206, 245, 185, 186, 187, 208, 204, 188, 246, 167, 209, 210, 189, 211, 212, 213, 190, 214, 215, 191, 216, 217, 218, 284, 282, 284, 284, 867, 1084, 1086, 1088, 612, 254, 254, 254, 254, 254, 440, 674, 611, 1127, 1134, 1135, 435, 328, 322, 323, 344, 605, 439, 345, 441, 651, 721, 491, 520, 712, 434, 1125, 625, 845, 493, 252, 252, 252, 252, 249, 255, 361, 361, 361, 361, 864, 922, 917, 918, 931, 873, 919, 870, 920, 921, 871, 874, 362, 925, 878, 982, 419, 717, 877, 442, 1059, 1058, 362, 362, 865, 1114, 1109, 1110, 1111, 1258, 959, 845, 442, 845, 1259, 1262, 960, 1263, 362, 362, 1060, 1060, 362, 839, 1400, 678, 1071, 1067, 1068, 706, 428, 1053, 1282, 1282, 1282, 568, 359, 360, 362, 362, 841, 1053, 1282, 990, 1053, 706, 1053, 1053, 706, 350, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 906, 863, 906, 906, 899, 1282, 403, 406, 613, 617, 1282, 1282, 1282, 1282, 351, 350, 1282, 1062, 1063, 1282, 1282, 1365, 1365, 1365, 1365, 1344, 573, 566, 473, 602, 1056, 1056, 955, 955, 694, 967, 1226, 939, 1048, 1064, 1065, 940, 564, 564, 564, 1014, 356, 521, 986, 860, 744, 860, 564, 565, 1023, 1018, 317, 566, 573, 597, 598, 318, 608, 614, 1011, 630, 631, 479, 479, 8, 512, 9, 513, 28, 334, 315, 466, 479, 519, 568, 1373, 984, 984, 984, 984, 1360, 1361, 466, 636, 636, 978, 985, 606, 628, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1332, 1332, 860, 468, 401, 468, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 257, 257, 623, 637, 640, 641, 642, 643, 664, 665, 666, 720, 600, 459, 673, 459, 459, 459, 1355, 1355, 1355, 552, 552, 1173, 1275, 1077, 448, 552, 1355, 552, 552, 552, 552, 552, 552, 552, 552, 695, 450, 857, 567, 592, 567, 488, 1358, 1359, 567, 679, 592, 346, 404, 472, 629, 1367, 1367, 1367, 1367, 886, 278, 973, 333, 333, 333, 482, 609, 483, 484, 883, 562, 562, 562, 562, 891, 616, 410, 1391, 1392, 1329, 1329, 1273, 881, 1033, 1351, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 644, 646, 648, 893, 1098, 748, 880, 889, 1277, 411, 489, 1102, 895, 860, 0, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 995, 1044, 459, 1100, 553, 553, 1148, 1353, 1353, 1100, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 618, 619, 416, 417, 944, 1163, 0, 683, 0, 684, 0, 421, 422, 423, 0, 697, 1030, 0, 424, 1278, 1279, 0, 1265, 354, 885, 0, 677, 1009, 855, 0, 0, 0, 879, 1383, 1383, 1265, 0, 894, 882, 1097, 1101, 0, 0, 0, 1272, 0, 0, 0, 1280, 1341, 1342, 993, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1386, 1386, 0, 0, 0, 983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1146, 898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1028); + protected array $gotoCheck = array(42, 42, 42, 42, 42, 73, 65, 73, 65, 86, 86, 48, 86, 86, 86, 48, 48, 48, 130, 97, 48, 56, 56, 9, 48, 48, 48, 48, 48, 48, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 23, 23, 23, 23, 15, 129, 129, 129, 133, 5, 5, 5, 5, 5, 66, 66, 8, 8, 147, 147, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 8, 84, 8, 8, 13, 8, 13, 12, 84, 5, 5, 5, 5, 5, 5, 24, 24, 24, 24, 26, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 15, 15, 93, 93, 93, 15, 118, 119, 119, 14, 14, 27, 15, 15, 15, 15, 79, 79, 12, 118, 12, 79, 79, 79, 79, 14, 14, 118, 118, 14, 6, 14, 118, 118, 118, 118, 7, 43, 73, 73, 73, 73, 14, 97, 97, 14, 14, 7, 73, 73, 49, 73, 7, 73, 73, 7, 176, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 25, 25, 25, 25, 45, 73, 59, 59, 59, 59, 73, 73, 73, 73, 176, 176, 73, 120, 120, 73, 73, 9, 9, 9, 9, 14, 76, 76, 158, 180, 89, 89, 9, 9, 89, 89, 158, 73, 89, 89, 89, 73, 19, 19, 19, 50, 187, 14, 50, 22, 50, 22, 19, 50, 50, 50, 76, 76, 76, 76, 76, 76, 76, 76, 103, 76, 76, 156, 156, 46, 162, 46, 162, 76, 177, 177, 19, 156, 162, 14, 189, 19, 19, 19, 19, 186, 186, 19, 108, 108, 19, 19, 2, 2, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 178, 178, 22, 83, 62, 83, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 5, 5, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 104, 23, 64, 23, 23, 23, 133, 133, 133, 164, 164, 157, 14, 115, 113, 164, 133, 164, 164, 164, 164, 164, 164, 164, 164, 117, 83, 18, 9, 9, 9, 184, 184, 184, 9, 121, 9, 29, 9, 9, 80, 133, 133, 133, 133, 39, 24, 92, 24, 24, 24, 9, 9, 9, 9, 37, 107, 107, 107, 107, 9, 107, 28, 9, 9, 179, 179, 168, 35, 110, 133, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 85, 85, 85, 35, 132, 99, 35, 9, 20, 31, 159, 135, 41, 22, -1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 96, 114, 23, 133, 181, 181, 150, 133, 133, 133, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 17, 17, 82, 82, 17, 17, -1, 82, -1, 82, -1, 82, 82, 82, -1, 82, 17, -1, 82, 20, 20, -1, 20, 82, 17, -1, 17, 17, 20, -1, -1, -1, 17, 190, 190, 20, -1, 16, 16, 16, 16, -1, -1, -1, 17, -1, -1, -1, 20, 20, 20, 16, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, 190, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, 107); + protected array $gotoBase = array(0, 0, -337, 0, 0, 173, 244, 253, 170, 10, 0, 0, -101, -147, -78, -186, 129, 80, 138, 66, 116, 0, 62, 159, 204, 289, 207, 231, 143, 161, 0, 70, 0, 0, 0, 117, 0, 134, 0, 140, 0, 69, -1, 238, 0, 270, -384, 0, -712, 257, 326, 0, 0, 0, 0, 0, -23, 0, 0, 251, 0, 0, 357, 0, 186, -10, -63, 0, 0, 0, 0, 0, 0, -5, 0, 0, -31, 0, 0, -173, 149, 52, 53, 120, -286, 17, -721, 0, 0, 40, 0, 0, 136, -82, 0, 0, 81, -476, 0, 98, 0, 0, 0, 321, 380, 0, 0, 452, 141, 0, 119, 0, 0, 158, 14, 160, 0, 163, -37, -51, 21, 166, 0, 0, 0, 0, 0, 0, 0, 167, 16, 0, 131, 162, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 86, 0, 0, 0, 0, 0, 325, 189, 50, 68, 0, 0, -142, 0, 194, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, -21, 39, 157, 250, 292, 296, 0, 0, 151, 0, 1, 308, 0, 341, 273, 0, 0); + protected array $gotoDefault = array(-32768, 525, 752, 7, 753, 948, 828, 837, 589, 543, 719, 355, 638, 431, 1349, 924, 1162, 607, 856, 1291, 1297, 467, 859, 339, 742, 936, 907, 908, 407, 394, 872, 405, 662, 639, 506, 892, 463, 884, 498, 887, 462, 896, 166, 427, 523, 900, 6, 903, 571, 934, 988, 395, 911, 396, 690, 913, 591, 915, 916, 402, 408, 409, 1167, 599, 635, 928, 260, 593, 929, 393, 930, 938, 398, 400, 700, 478, 517, 511, 420, 1129, 594, 622, 659, 456, 485, 633, 645, 632, 492, 443, 425, 338, 972, 980, 499, 476, 994, 357, 1002, 750, 1175, 653, 501, 1010, 654, 1017, 1020, 544, 545, 490, 1032, 270, 1035, 502, 1045, 26, 680, 1050, 1051, 681, 655, 1073, 656, 682, 657, 1075, 475, 1176, 474, 1087, 1096, 464, 1099, 1337, 465, 1103, 269, 1106, 283, 426, 444, 1112, 1113, 12, 1119, 710, 711, 25, 279, 522, 1147, 701, -32768, -32768, -32768, -32768, 461, 1174, 460, 1246, 1248, 572, 503, 1266, 300, 1269, 693, 518, 1274, 457, 1340, 458, 546, 486, 324, 547, 1384, 314, 342, 321, 563, 301, 343, 548, 487, 1346, 1354, 340, 34, 1374, 1385, 604, 627); + protected array $ruleToNonTerminal = array(0, 1, 3, 3, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 25, 25, 50, 69, 69, 72, 72, 71, 70, 70, 63, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 80, 80, 26, 26, 27, 27, 27, 27, 27, 88, 88, 90, 90, 83, 83, 91, 91, 92, 92, 92, 84, 84, 87, 87, 85, 85, 93, 94, 94, 57, 57, 65, 65, 68, 68, 68, 67, 95, 95, 96, 58, 58, 58, 58, 97, 97, 98, 98, 99, 99, 100, 101, 101, 102, 102, 103, 103, 55, 55, 51, 51, 105, 53, 53, 106, 52, 52, 54, 54, 64, 64, 64, 64, 81, 81, 109, 109, 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, 110, 110, 110, 115, 115, 115, 115, 89, 89, 118, 118, 118, 119, 119, 116, 116, 120, 120, 122, 122, 123, 123, 117, 124, 124, 121, 125, 125, 125, 125, 113, 113, 82, 82, 82, 20, 20, 127, 127, 127, 128, 128, 128, 126, 126, 130, 130, 130, 130, 130, 130, 129, 129, 60, 131, 131, 132, 61, 134, 134, 135, 135, 136, 136, 86, 137, 137, 137, 137, 137, 137, 137, 142, 142, 143, 143, 144, 144, 144, 144, 144, 145, 146, 146, 141, 141, 138, 138, 140, 140, 148, 148, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 139, 149, 149, 151, 150, 150, 152, 152, 114, 153, 153, 155, 155, 155, 154, 154, 62, 104, 156, 156, 56, 56, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 163, 164, 164, 165, 157, 157, 162, 162, 166, 167, 167, 168, 169, 170, 170, 170, 170, 19, 19, 73, 73, 73, 73, 158, 158, 158, 158, 172, 172, 161, 161, 161, 159, 159, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, 108, 181, 181, 181, 181, 160, 160, 160, 160, 160, 160, 160, 160, 59, 59, 175, 175, 175, 175, 175, 182, 182, 171, 171, 171, 171, 183, 183, 183, 183, 183, 183, 74, 74, 66, 66, 66, 66, 133, 133, 133, 133, 186, 185, 174, 174, 174, 174, 174, 174, 174, 173, 173, 173, 184, 184, 184, 184, 107, 180, 188, 188, 187, 187, 189, 189, 189, 189, 189, 189, 189, 189, 177, 177, 177, 177, 176, 191, 190, 190, 190, 190, 190, 190, 190, 190, 192, 192, 192, 192); + protected array $ruleToLength = array(1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, 0, 1, 1, 1, 1, 4, 3, 5, 4, 3, 4, 1, 3, 4, 1, 1, 8, 7, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, 1, 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 1, 1, 8, 9, 7, 8, 7, 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 7, 9, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, 2, 4, 2, 4, 4, 3, 1, 3, 1, 3, 2, 2, 1, 1, 3, 3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, 1, 5, 5, 6, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, 0, 2, 0, 5, 8, 1, 3, 3, 0, 2, 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, 4, 4, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, 3, 2, 2, 1, 1, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1); protected function initReduceCallbacks(): void { $this->reduceCallbacks = [0 => null, 1 => static function ($self, $stackPos) { @@ -691,35 +691,35 @@ protected function initReduceCallbacks(): void }, 329 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos - (4 - 2)]; }, 330 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos - (3 - 2)]); - }, 331 => static function ($self, $stackPos) { $self->semValue = array(); - }, 332 => static function ($self, $stackPos) { + }, 331 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos - (4 - 2)]; - }, 333 => static function ($self, $stackPos) { + }, 332 => static function ($self, $stackPos) { $self->semValue = array(new Node\Arg($self->semStack[$stackPos - (4 - 2)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]))); + }, 333 => static function ($self, $stackPos) { + $self->semValue = array(new Node\Arg($self->semStack[$stackPos - (3 - 1)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos - (3 - 1)])), $self->semStack[$stackPos - (3 - 3)]); }, 334 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos - (3 - 2)]); + $self->semValue = array($self->semStack[$stackPos - (1 - 1)]); }, 335 => static function ($self, $stackPos) { - $self->semValue = array(new Node\Arg($self->semStack[$stackPos - (3 - 1)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos - (3 - 1)])), $self->semStack[$stackPos - (3 - 3)]); + $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)]; + $self->semValue = $self->semStack[$stackPos - (3 - 1)]; }, 336 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos - (1 - 1)]); }, 337 => static function ($self, $stackPos) { $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)]; $self->semValue = $self->semStack[$stackPos - (3 - 1)]; }, 338 => static function ($self, $stackPos) { - $self->semValue = new Node\VariadicPlaceholder($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \true, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); }, 339 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos - (1 - 1)]); + $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \false, \true, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); }, 340 => static function ($self, $stackPos) { - $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)]; - $self->semValue = $self->semStack[$stackPos - (3 - 1)]; + $self->semValue = new Node\VariadicPlaceholder($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); }, 341 => static function ($self, $stackPos) { - $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \true, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\ArgPlaceholder(null, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); }, 342 => static function ($self, $stackPos) { - $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \false, \true, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); - }, 343 => static function ($self, $stackPos) { $self->semValue = new Node\Arg($self->semStack[$stackPos - (3 - 3)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (3 - 1)]); + }, 343 => static function ($self, $stackPos) { + $self->semValue = new Node\ArgPlaceholder($self->semStack[$stackPos - (3 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos])); }, 344 => static function ($self, $stackPos) { $self->semValue = new Node\Arg($self->semStack[$stackPos - (1 - 1)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); }, 345 => static function ($self, $stackPos) { diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php index 516fd70840b..2df854db1ae 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php @@ -165,26 +165,26 @@ class Php8 extends \PhpParser\ParserAbstract public const T_NAME_RELATIVE = 400; public const T_ATTRIBUTE = 401; protected int $tokenToSymbolMapSize = 402; - protected int $actionTableSize = 1537; - protected int $gotoTableSize = 642; + protected int $actionTableSize = 1644; + protected int $gotoTableSize = 717; protected int $invalidSymbol = 174; protected int $errorSymbol = 1; protected int $defaultAction = -32766; protected int $unexpectedTokenRule = 32767; - protected int $YY2TBLSTATE = 452; - protected int $numNonLeafStates = 767; + protected int $YY2TBLSTATE = 451; + protected int $numNonLeafStates = 764; protected array $symbolToName = array("EOF", "error", "T_VOID_CAST", "T_THROW", "T_INCLUDE", "T_INCLUDE_ONCE", "T_EVAL", "T_REQUIRE", "T_REQUIRE_ONCE", "','", "T_LOGICAL_OR", "T_LOGICAL_XOR", "T_LOGICAL_AND", "T_PRINT", "T_YIELD", "T_DOUBLE_ARROW", "T_YIELD_FROM", "'='", "T_PLUS_EQUAL", "T_MINUS_EQUAL", "T_MUL_EQUAL", "T_DIV_EQUAL", "T_CONCAT_EQUAL", "T_MOD_EQUAL", "T_AND_EQUAL", "T_OR_EQUAL", "T_XOR_EQUAL", "T_SL_EQUAL", "T_SR_EQUAL", "T_POW_EQUAL", "T_COALESCE_EQUAL", "'?'", "':'", "T_COALESCE", "T_BOOLEAN_OR", "T_BOOLEAN_AND", "'|'", "'^'", "T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", "T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", "T_IS_EQUAL", "T_IS_NOT_EQUAL", "T_IS_IDENTICAL", "T_IS_NOT_IDENTICAL", "T_SPACESHIP", "'<'", "T_IS_SMALLER_OR_EQUAL", "'>'", "T_IS_GREATER_OR_EQUAL", "T_PIPE", "'.'", "T_SL", "T_SR", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "T_INSTANCEOF", "'~'", "T_INC", "T_DEC", "T_INT_CAST", "T_DOUBLE_CAST", "T_STRING_CAST", "T_ARRAY_CAST", "T_OBJECT_CAST", "T_BOOL_CAST", "T_UNSET_CAST", "'@'", "T_POW", "'['", "T_NEW", "T_CLONE", "T_EXIT", "T_IF", "T_ELSEIF", "T_ELSE", "T_ENDIF", "T_LNUMBER", "T_DNUMBER", "T_STRING", "T_STRING_VARNAME", "T_VARIABLE", "T_NUM_STRING", "T_INLINE_HTML", "T_ENCAPSED_AND_WHITESPACE", "T_CONSTANT_ENCAPSED_STRING", "T_ECHO", "T_DO", "T_WHILE", "T_ENDWHILE", "T_FOR", "T_ENDFOR", "T_FOREACH", "T_ENDFOREACH", "T_DECLARE", "T_ENDDECLARE", "T_AS", "T_SWITCH", "T_MATCH", "T_ENDSWITCH", "T_CASE", "T_DEFAULT", "T_BREAK", "T_CONTINUE", "T_GOTO", "T_FUNCTION", "T_FN", "T_CONST", "T_RETURN", "T_TRY", "T_CATCH", "T_FINALLY", "T_USE", "T_INSTEADOF", "T_GLOBAL", "T_STATIC", "T_ABSTRACT", "T_FINAL", "T_PRIVATE", "T_PROTECTED", "T_PUBLIC", "T_READONLY", "T_PUBLIC_SET", "T_PROTECTED_SET", "T_PRIVATE_SET", "T_VAR", "T_UNSET", "T_ISSET", "T_EMPTY", "T_HALT_COMPILER", "T_CLASS", "T_TRAIT", "T_INTERFACE", "T_ENUM", "T_EXTENDS", "T_IMPLEMENTS", "T_OBJECT_OPERATOR", "T_NULLSAFE_OBJECT_OPERATOR", "T_LIST", "T_ARRAY", "T_CALLABLE", "T_CLASS_C", "T_TRAIT_C", "T_METHOD_C", "T_FUNC_C", "T_PROPERTY_C", "T_LINE", "T_FILE", "T_START_HEREDOC", "T_END_HEREDOC", "T_DOLLAR_OPEN_CURLY_BRACES", "T_CURLY_OPEN", "T_PAAMAYIM_NEKUDOTAYIM", "T_NAMESPACE", "T_NS_C", "T_DIR", "T_NS_SEPARATOR", "T_ELLIPSIS", "T_NAME_FULLY_QUALIFIED", "T_NAME_QUALIFIED", "T_NAME_RELATIVE", "T_ATTRIBUTE", "';'", "']'", "'('", "')'", "'{'", "'}'", "'`'", "'\"'", "'\$'"); protected array $tokenToSymbol = array(0, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 58, 172, 174, 173, 57, 174, 174, 167, 168, 55, 53, 9, 54, 50, 56, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 32, 165, 45, 17, 47, 31, 70, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 72, 174, 166, 37, 174, 171, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 169, 36, 170, 60, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 46, 48, 49, 51, 52, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164); - protected array $action = array(132, 133, 134, 582, 135, 136, 162, 779, 780, 781, 137, 41, 863, -32766, 970, 1404, -584, 974, 973, 1302, 0, 395, 396, 455, 246, 854, -32766, -32766, -32766, -32766, -32766, 440, -32766, 27, -32766, 773, 772, -32766, -32766, -32766, -32766, 508, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 131, -32766, -32766, -32766, -32766, 437, 782, 859, 1148, -32766, 949, -32766, -32766, -32766, -32766, -32766, -32766, 972, 1385, 300, 271, 53, 398, 786, 787, 788, 789, 305, 865, 441, -341, 39, 254, -584, -584, -195, 843, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 819, 583, 820, 821, 822, 823, 811, 812, 353, 354, 814, 815, 800, 801, 802, 804, 805, 806, 368, 846, 847, 848, 849, 850, 584, 1062, -194, 856, 807, 808, 585, 586, 3, 831, 829, 830, 842, 826, 827, 4, 860, 587, 588, 825, 589, 590, 591, 592, 939, 593, 594, 5, 854, -32766, -32766, -32766, 828, 595, 596, -32766, 138, 764, 132, 133, 134, 582, 135, 136, 1098, 779, 780, 781, 137, 41, -32766, -32766, -32766, -32766, -32766, -32766, -275, 1302, 613, 153, 1071, 749, 990, 991, -32766, -32766, -32766, 992, -32766, 891, -32766, 892, -32766, 773, 772, -32766, 986, 1309, 397, 396, -32766, -32766, -32766, 858, 299, 630, -32766, -32766, 440, 502, 736, -32766, -32766, 437, 782, -32767, -32767, -32767, -32767, 106, 107, 108, 109, 951, -32766, 1021, 29, 734, 271, 53, 398, 786, 787, 788, 789, 144, 1071, 441, -341, 332, 38, 864, 862, -195, 843, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 819, 583, 820, 821, 822, 823, 811, 812, 353, 354, 814, 815, 800, 801, 802, 804, 805, 806, 368, 846, 847, 848, 849, 850, 584, 863, -194, 139, 807, 808, 585, 586, 323, 831, 829, 830, 842, 826, 827, 1370, 148, 587, 588, 825, 589, 590, 591, 592, 245, 593, 594, 395, 396, -32766, -32766, -32766, 828, 595, 596, -85, 138, 440, 132, 133, 134, 582, 135, 136, 1095, 779, 780, 781, 137, 41, -32766, -32766, -32766, -32766, -32766, 51, 578, 1302, 257, -32766, 636, 107, 108, 109, -32766, -32766, -32766, 503, -32766, 316, -32766, -32766, -32766, 773, 772, -32766, -383, 166, -383, 1022, -32766, -32766, -32766, 305, 79, 1133, -32766, -32766, 1414, 762, 332, 1415, -32766, 437, 782, -32766, 1071, 110, 111, 112, 113, 114, -85, 283, -32766, 477, 478, 479, 271, 53, 398, 786, 787, 788, 789, 115, 407, 441, 10, -32766, 299, 1341, 306, 307, 843, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 819, 583, 820, 821, 822, 823, 811, 812, 353, 354, 814, 815, 800, 801, 802, 804, 805, 806, 368, 846, 847, 848, 849, 850, 584, 320, 1068, -582, 807, 808, 585, 586, 1389, 831, 829, 830, 842, 826, 827, 329, 1388, 587, 588, 825, 589, 590, 591, 592, 86, 593, 594, 1071, 332, -32766, -32766, -32766, 828, 595, 596, 349, 151, -581, 132, 133, 134, 582, 135, 136, 1100, 779, 780, 781, 137, 41, -32766, 290, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, -32766, -32766, -32766, 891, 1175, 892, -582, -582, 754, 773, 772, 1159, 1160, 1161, 1155, 1154, 1153, 1162, 1156, 1157, 1158, -32766, -582, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 782, -32766, -32766, -32766, -588, -78, -32766, -32766, -32766, 350, -581, -581, -32766, -32766, 271, 53, 398, 786, 787, 788, 789, 383, -32766, 441, -32766, -32766, -581, -32766, 773, 772, 843, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 819, 583, 820, 821, 822, 823, 811, 812, 353, 354, 814, 815, 800, 801, 802, 804, 805, 806, 368, 846, 847, 848, 849, 850, 584, -620, 1068, -620, 807, 808, 585, 586, 389, 831, 829, 830, 842, 826, 827, 441, 405, 587, 588, 825, 589, 590, 591, 592, 333, 593, 594, 1071, 87, 88, 89, 459, 828, 595, 596, 460, 151, 803, 774, 775, 776, 777, 778, 854, 779, 780, 781, 816, 817, 40, 461, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 462, 283, 1329, 1159, 1160, 1161, 1155, 1154, 1153, 1162, 1156, 1157, 1158, 115, 869, 488, 489, 782, 1304, 1303, 1305, 108, 109, 1132, 154, -32766, -32766, 1134, 679, 23, 156, 783, 784, 785, 786, 787, 788, 789, 698, 699, 852, 152, 423, -580, 393, 394, 157, 843, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 819, 841, 820, 821, 822, 823, 811, 812, 813, 840, 814, 815, 800, 801, 802, 804, 805, 806, 845, 846, 847, 848, 849, 850, 851, 1094, -578, 863, 807, 808, 809, 810, -58, 831, 829, 830, 842, 826, 827, 399, 400, 818, 824, 825, 832, 833, 835, 834, 294, 836, 837, 158, -580, -580, 160, 294, 828, 839, 838, 54, 55, 56, 57, 534, 58, 59, 36, -110, -580, -57, 60, 61, -110, 62, -110, 670, 671, 129, 130, 312, -587, 140, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -578, -578, 141, 147, 949, 161, 712, -87, 163, 164, 165, -84, 949, -78, -73, -72, -578, 63, 64, 143, -309, -71, 65, 332, 66, 251, 252, 67, 68, 69, 70, 71, 72, 73, 74, 739, 31, 276, 47, 457, 535, -357, 713, 740, 1335, 1336, 536, -70, 863, 1068, -69, -68, 1333, 45, 22, 537, 949, 538, -67, 539, -66, 540, 52, -65, 541, 542, 714, 715, -46, 48, 49, 463, 392, 391, 1071, 50, 543, -18, 145, 281, 1302, 381, 348, 291, 750, 1304, 1303, 1305, 1295, 939, 753, 290, 948, 545, 546, 547, 150, 939, 290, -305, 295, 288, 289, 292, 293, 549, 550, 338, 1321, 1322, 1323, 1324, 1326, 1318, 1319, 304, 1300, 296, 301, 302, 283, 1325, 1320, 773, 772, 1304, 1303, 1305, 305, 308, 309, 75, -154, -154, -154, 327, 328, 332, 966, 854, 1070, 939, 149, 115, 1416, 388, 680, -154, 708, -154, 725, -154, 13, -154, 668, 723, 313, 31, 277, 1304, 1303, 1305, 863, 390, -32766, 600, 1166, 987, 951, 863, 310, 701, 734, 1333, 990, 991, 951, -32766, 686, 544, 734, 949, 685, 606, 1340, 485, 513, 925, 986, -110, -110, -110, 35, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 702, 949, 634, 1295, 773, 772, 741, -579, 305, -614, 1334, 0, 0, 0, 951, 311, 949, 0, 734, -154, 549, 550, 319, 1321, 1322, 1323, 1324, 1326, 1318, 1319, 1209, 1211, 744, 0, 1342, 0, 1325, 1320, -544, -534, 0, -578, -32766, -4, 949, 11, 77, 751, 1302, 30, 387, 328, 332, 862, 43, -32766, -32766, -32766, -613, -32766, 939, -32766, 968, -32766, 44, 759, -32766, 1330, 773, 772, 760, -32766, -32766, -32766, -579, -579, 882, -32766, -32766, 930, 1031, 1008, 1015, -32766, 437, 1005, 939, 1016, 928, 1003, -579, 1137, 1140, 1141, 1138, -32766, 1177, 1139, 1145, 37, 874, 939, -586, 1357, 1374, 1407, -32766, 673, -578, -578, -612, -588, 1302, -587, -586, -585, 31, 276, -528, -32766, -32766, -32766, 1, -32766, -578, -32766, 78, -32766, 863, 939, -32766, 32, 1333, -278, 33, -32766, -32766, -32766, 42, 1007, 46, -32766, -32766, 734, 76, 80, 81, -32766, 437, 82, 83, 390, 84, 453, 31, 277, 85, 146, 303, -32766, 155, 159, 990, 991, 249, 951, 863, 544, 1295, 734, 1333, 334, 369, 370, 371, 548, 986, -110, -110, -110, 951, 372, 326, 373, 734, 374, 550, 375, 1321, 1322, 1323, 1324, 1326, 1318, 1319, 376, 377, 422, 378, 21, -50, 1325, 1320, 379, 382, 454, 1295, 577, 951, 380, 384, 77, 734, -4, -276, -275, 328, 332, 15, 16, 17, 18, 20, 363, 550, 421, 1321, 1322, 1323, 1324, 1326, 1318, 1319, 142, 504, 505, 512, 515, 516, 1325, 1320, 949, 517, 518, -32766, 522, 523, 524, 531, 77, 1302, 611, 718, 1101, 328, 332, 1097, -32766, -32766, -32766, 1250, -32766, 1331, -32766, 949, -32766, 1099, 1096, -32766, 1077, 1290, 1309, 1073, -32766, -32766, -32766, -280, -32766, -102, -32766, -32766, 14, 19, 1302, 24, -32766, 437, 323, 420, 625, -32766, -32766, -32766, 631, -32766, 659, -32766, -32766, -32766, 724, 1254, -32766, -16, 1308, 1251, 1386, -32766, -32766, -32766, 735, -32766, 738, -32766, -32766, 742, 743, 1302, 745, -32766, 437, 746, 747, 748, -32766, -32766, -32766, 939, -32766, 300, -32766, -32766, -32766, 752, 1309, -32766, 764, 737, 332, 765, -32766, -32766, -32766, -253, -253, -253, -32766, -32766, 426, 390, 939, 756, -32766, 437, 926, 863, 1411, 1413, 885, 884, 990, 991, 980, 1023, -32766, 544, -252, -252, -252, 1412, 979, 977, 390, 925, 986, -110, -110, -110, 978, 981, 1283, 959, 969, 990, 991, 957, 1176, 1172, 544, 1126, -110, -110, 1013, 1014, 657, -110, 925, 986, -110, -110, -110, 1410, 2, 1368, -110, 1268, 951, 1383, 0, 0, 734, -253, 0, -32766, 0, 0, -32766, 863, 1059, 1054, 1053, 1052, 1058, 1055, 1056, 1057, 0, 0, 0, 951, 0, 0, 0, 734, -252, 305, 0, 0, 79, 0, 0, 1071, 0, 0, 332, 0, 0, 0, 0, 0, 0, 0, -110, -110, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 299, -110, 0, 0, 0, 0, 0, 0, 0, 0, -32766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 79, 0, 0, 0, 0, 0, 332); - protected array $actionCheck = array(3, 4, 5, 6, 7, 8, 17, 10, 11, 12, 13, 14, 84, 76, 1, 87, 72, 74, 75, 82, 0, 108, 109, 110, 15, 82, 89, 90, 91, 10, 93, 118, 95, 103, 97, 38, 39, 100, 10, 11, 12, 104, 105, 106, 107, 10, 11, 12, 111, 112, 15, 10, 11, 12, 117, 118, 59, 82, 128, 31, 1, 33, 34, 35, 36, 37, 129, 124, 1, 31, 73, 74, 75, 76, 77, 78, 79, 164, 1, 82, 9, 153, 154, 139, 140, 9, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 1, 9, 82, 128, 129, 130, 131, 9, 133, 134, 135, 136, 137, 138, 9, 162, 141, 142, 143, 144, 145, 146, 147, 86, 149, 150, 9, 82, 10, 11, 12, 156, 157, 158, 118, 160, 169, 3, 4, 5, 6, 7, 8, 168, 10, 11, 12, 13, 14, 31, 76, 33, 34, 35, 36, 168, 82, 83, 15, 143, 169, 119, 120, 89, 90, 91, 124, 93, 108, 95, 110, 97, 38, 39, 100, 133, 1, 108, 109, 105, 106, 107, 162, 167, 1, 111, 112, 118, 32, 169, 118, 117, 118, 59, 45, 46, 47, 48, 49, 50, 51, 52, 165, 129, 32, 9, 169, 73, 74, 75, 76, 77, 78, 79, 169, 143, 82, 168, 173, 9, 165, 161, 168, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 84, 168, 9, 128, 129, 130, 131, 168, 133, 134, 135, 136, 137, 138, 1, 9, 141, 142, 143, 144, 145, 146, 147, 99, 149, 150, 108, 109, 10, 11, 12, 156, 157, 158, 32, 160, 118, 3, 4, 5, 6, 7, 8, 168, 10, 11, 12, 13, 14, 31, 76, 33, 34, 35, 72, 87, 82, 9, 142, 54, 50, 51, 52, 89, 90, 91, 169, 93, 9, 95, 118, 97, 38, 39, 100, 108, 15, 110, 165, 105, 106, 107, 164, 167, 165, 111, 112, 82, 169, 173, 85, 117, 118, 59, 118, 143, 53, 54, 55, 56, 57, 99, 59, 129, 134, 135, 136, 73, 74, 75, 76, 77, 78, 79, 71, 108, 82, 110, 142, 167, 152, 139, 140, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 9, 118, 72, 128, 129, 130, 131, 1, 133, 134, 135, 136, 137, 138, 9, 9, 141, 142, 143, 144, 145, 146, 147, 169, 149, 150, 143, 173, 10, 11, 12, 156, 157, 158, 9, 160, 72, 3, 4, 5, 6, 7, 8, 168, 10, 11, 12, 13, 14, 31, 167, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 10, 11, 12, 108, 165, 110, 139, 140, 169, 38, 39, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 31, 155, 33, 34, 35, 36, 37, 38, 39, 59, 10, 11, 12, 167, 17, 10, 11, 12, 9, 139, 140, 10, 11, 73, 74, 75, 76, 77, 78, 79, 9, 31, 82, 33, 34, 155, 31, 38, 39, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 166, 118, 168, 128, 129, 130, 131, 9, 133, 134, 135, 136, 137, 138, 82, 9, 141, 142, 143, 144, 145, 146, 147, 72, 149, 150, 143, 10, 11, 12, 9, 156, 157, 158, 9, 160, 3, 4, 5, 6, 7, 8, 82, 10, 11, 12, 13, 14, 31, 9, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 9, 59, 1, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 71, 9, 139, 140, 59, 161, 162, 163, 51, 52, 1, 15, 53, 54, 170, 77, 78, 15, 73, 74, 75, 76, 77, 78, 79, 77, 78, 82, 103, 104, 72, 108, 109, 15, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 1, 72, 84, 128, 129, 130, 131, 17, 133, 134, 135, 136, 137, 138, 108, 109, 141, 142, 143, 144, 145, 146, 147, 31, 149, 150, 15, 139, 140, 15, 31, 156, 157, 158, 2, 3, 4, 5, 6, 7, 8, 15, 103, 155, 17, 13, 14, 108, 16, 110, 113, 114, 17, 17, 115, 167, 17, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 139, 140, 17, 17, 1, 17, 82, 32, 17, 17, 17, 32, 1, 32, 32, 32, 155, 53, 54, 169, 36, 32, 58, 173, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 32, 72, 73, 74, 75, 76, 170, 118, 32, 80, 81, 82, 32, 84, 118, 32, 32, 88, 89, 90, 91, 1, 93, 32, 95, 32, 97, 72, 32, 100, 101, 142, 143, 32, 105, 106, 107, 108, 109, 143, 111, 112, 32, 32, 32, 82, 117, 118, 32, 32, 161, 162, 163, 124, 86, 32, 167, 32, 129, 130, 131, 32, 86, 167, 36, 38, 36, 36, 36, 36, 141, 142, 36, 144, 145, 146, 147, 148, 149, 150, 151, 118, 38, 38, 38, 59, 157, 158, 38, 39, 161, 162, 163, 164, 139, 140, 167, 77, 78, 79, 171, 172, 173, 39, 82, 142, 86, 72, 71, 85, 155, 92, 92, 79, 94, 94, 96, 99, 98, 115, 82, 116, 72, 73, 161, 162, 163, 84, 108, 87, 91, 84, 133, 165, 84, 137, 96, 169, 88, 119, 120, 165, 142, 102, 124, 169, 1, 98, 159, 152, 99, 99, 132, 133, 134, 135, 136, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 102, 1, 159, 124, 38, 39, 32, 72, 164, 167, 172, -1, -1, -1, 165, 138, 1, -1, 169, 170, 141, 142, 137, 144, 145, 146, 147, 148, 149, 150, 61, 62, 32, -1, 152, -1, 157, 158, 155, 155, -1, 72, 76, 0, 1, 155, 167, 32, 82, 155, 155, 172, 173, 161, 165, 89, 90, 91, 167, 93, 86, 95, 160, 97, 165, 165, 100, 166, 38, 39, 165, 105, 106, 107, 139, 140, 165, 111, 112, 165, 165, 165, 165, 117, 118, 165, 86, 165, 165, 165, 155, 165, 165, 165, 165, 129, 165, 165, 165, 169, 166, 86, 167, 166, 166, 166, 76, 166, 139, 140, 167, 167, 82, 167, 167, 167, 72, 73, 167, 89, 90, 91, 167, 93, 155, 95, 160, 97, 84, 86, 100, 167, 88, 168, 167, 105, 106, 107, 167, 165, 167, 111, 112, 169, 167, 167, 167, 117, 118, 167, 167, 108, 167, 110, 72, 73, 167, 167, 115, 129, 167, 167, 119, 120, 167, 165, 84, 124, 124, 169, 88, 167, 167, 167, 167, 132, 133, 134, 135, 136, 165, 167, 169, 167, 169, 167, 142, 167, 144, 145, 146, 147, 148, 149, 150, 167, 167, 170, 167, 156, 32, 157, 158, 167, 167, 167, 124, 167, 165, 167, 169, 167, 169, 170, 168, 168, 172, 173, 168, 168, 168, 168, 168, 168, 142, 168, 144, 145, 146, 147, 148, 149, 150, 32, 168, 168, 168, 168, 168, 157, 158, 1, 168, 168, 76, 168, 168, 168, 168, 167, 82, 168, 168, 168, 172, 173, 168, 89, 90, 91, 168, 93, 168, 95, 1, 97, 168, 168, 100, 168, 168, 1, 168, 105, 106, 107, 168, 76, 168, 111, 112, 168, 168, 82, 168, 117, 118, 168, 168, 168, 89, 90, 91, 168, 93, 168, 95, 129, 97, 168, 168, 100, 32, 168, 168, 168, 105, 106, 107, 169, 76, 169, 111, 112, 169, 169, 82, 169, 117, 118, 169, 169, 169, 89, 90, 91, 86, 93, 31, 95, 129, 97, 169, 1, 100, 169, 169, 173, 169, 105, 106, 107, 102, 103, 104, 111, 112, 170, 108, 86, 170, 117, 118, 170, 84, 170, 170, 170, 170, 119, 120, 170, 170, 129, 124, 102, 103, 104, 170, 170, 170, 108, 132, 133, 134, 135, 136, 170, 170, 170, 170, 170, 119, 120, 170, 170, 170, 124, 170, 119, 120, 170, 170, 170, 124, 132, 133, 134, 135, 136, 170, 167, 170, 133, 171, 165, 170, -1, -1, 169, 170, -1, 142, -1, -1, 118, 84, 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, 165, -1, -1, -1, 169, 170, 164, -1, -1, 167, -1, -1, 143, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, 167, 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, -1, -1, 167, -1, -1, -1, -1, -1, 173); - protected array $actionBase = array(0, 156, -3, 315, 474, 474, 880, 1074, 1271, 1294, 749, 675, 531, 559, 836, 1031, 1031, 1046, 1031, 828, 1005, 42, 59, 59, 59, 963, 898, 632, 632, 898, 632, 997, 997, 997, 997, 1061, 1061, -63, -63, 96, 1232, 1199, 255, 255, 255, 255, 255, 1265, 255, 255, 255, 255, 255, 1265, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 77, 194, 120, 205, 1197, 783, 1150, 1163, 1152, 1166, 1145, 1144, 1151, 1156, 1167, 1261, 1263, 889, 1254, 1267, 1158, 972, 1147, 1162, 962, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 19, 35, 535, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 529, 529, 529, 910, 910, 524, 299, 1113, 1075, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 140, 28, 1000, 493, 493, 458, 458, 458, 458, 458, 696, 1328, 1301, 171, 171, 171, 171, 1363, 1363, -70, 523, 248, 756, 291, 197, -87, 644, 38, 199, 323, 323, 482, 482, 233, 233, 482, 482, 482, 324, 324, 94, 94, 94, 94, 82, 249, 860, 67, 67, 67, 67, 860, 860, 860, 860, 913, 869, 860, 1036, 1049, 860, 860, 370, 645, 966, 646, 646, 398, -72, -72, 398, 64, -72, 294, 286, 257, 859, 91, 433, 257, 1073, 404, 686, 686, 815, 686, 686, 686, 923, 610, 923, 1141, 902, 902, 861, 807, 964, 1198, 1168, 901, 1252, 929, 1253, 1200, 342, 251, -56, 263, 550, 806, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1195, 523, 1141, -25, 1247, 1249, 1195, 1195, 1195, 523, 523, 523, 523, 523, 523, 523, 523, 870, 523, 523, 694, -25, 625, 635, -25, 896, 523, 915, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 178, 77, 77, 194, 13, 13, 77, 200, 121, 13, 13, 13, -11, 13, 77, 77, 77, 610, 886, 849, 663, 283, 874, 114, 886, 886, 886, 71, 9, 76, 809, 888, 288, 882, 882, 882, 907, 986, 986, 882, 903, 882, 907, 882, 882, 986, 986, 875, 986, 274, 620, 465, 597, 624, 986, 340, 882, 882, 882, 882, 916, 986, 127, 139, 639, 882, 329, 287, 882, 882, 916, 858, 876, 908, 986, 986, 986, 916, 545, 908, 908, 908, 931, 936, 864, 872, 445, 431, 679, 232, 924, 872, 872, 882, 605, 864, 872, 864, 872, 933, 872, 872, 872, 864, 872, 903, 533, 872, 813, 665, 218, 872, 882, 20, 1008, 1009, 800, 1010, 1002, 1013, 1069, 1014, 1016, 1171, 982, 1028, 1004, 1020, 1071, 998, 995, 885, 792, 793, 921, 914, 979, 897, 897, 897, 975, 977, 897, 897, 897, 897, 897, 897, 897, 897, 792, 932, 926, 899, 1037, 796, 810, 1114, 857, 1214, 1264, 1036, 1008, 1016, 804, 1004, 1020, 998, 995, 856, 853, 844, 851, 843, 840, 808, 814, 871, 1116, 1119, 1021, 920, 811, 1085, 1038, 1211, 1044, 1045, 1047, 1088, 1123, 942, 1125, 1216, 895, 1217, 1218, 965, 1051, 1173, 897, 974, 873, 968, 1049, 978, 792, 969, 1129, 1130, 1081, 961, 1097, 1098, 1072, 911, 884, 970, 1219, 1059, 1060, 1062, 1176, 1177, 930, 1082, 996, 1099, 912, 1058, 1100, 1101, 1105, 1106, 1179, 1222, 1182, 922, 1183, 945, 879, 1077, 909, 1223, 165, 892, 893, 906, 1068, 683, 1035, 1184, 1208, 1229, 1108, 1109, 1110, 1230, 1231, 1024, 946, 1083, 900, 1084, 1078, 947, 948, 689, 905, 1132, 890, 891, 904, 705, 768, 1238, 1239, 1240, 1025, 877, 894, 951, 953, 1133, 887, 1135, 1241, 771, 954, 1242, 1115, 816, 817, 521, 784, 747, 818, 881, 1194, 925, 865, 878, 1067, 817, 883, 955, 1245, 957, 958, 959, 1111, 960, 1086, 1246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, 632, 632, 632, 632, 789, 789, 789, 789, 789, 789, 789, 632, 789, 789, 789, 632, 632, 0, 0, 632, 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 823, 823, 616, 616, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 616, 616, 0, 616, 616, 616, 616, 616, 616, 616, 875, 823, 823, 324, 324, 324, 324, 823, 823, 396, 396, 396, 823, 324, 823, 64, 324, 823, 64, 823, 823, 823, 823, 823, 823, 823, 823, 823, 0, 0, 823, 823, 823, 823, -25, -72, 823, 903, 903, 903, 903, 823, 823, 823, 823, -72, -72, 823, -57, -57, 823, 823, 0, 0, 0, 324, 324, -25, 0, 0, -25, 0, 0, 903, 903, 823, 64, 875, 446, 823, 342, 0, 0, 0, 0, 0, 0, 0, -25, 903, -25, 523, -72, -72, 523, 523, 13, 77, 446, 612, 612, 612, 612, 77, 0, 0, 0, 0, 0, 610, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 903, 0, 875, 0, 875, 875, 903, 903, 903, 0, 0, 0, 0, 0, 0, 0, 0, 986, 0, 0, 0, 0, 0, 0, 0, 903, 0, 986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 897, 911, 0, 0, 911, 0, 897, 897, 897, 0, 0, 0, 905, 887); - protected array $actionDefault = array(3, 32767, 32767, 32767, 102, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 100, 32767, 632, 632, 632, 632, 32767, 32767, 257, 102, 32767, 32767, 503, 417, 417, 417, 32767, 32767, 32767, 576, 576, 576, 576, 576, 17, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 503, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 36, 7, 8, 10, 11, 49, 338, 100, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 404, 625, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 497, 507, 485, 486, 488, 489, 416, 577, 631, 344, 628, 342, 415, 146, 354, 343, 245, 261, 508, 262, 509, 512, 513, 218, 401, 150, 151, 448, 504, 450, 502, 506, 449, 422, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 420, 421, 505, 482, 481, 480, 32767, 32767, 446, 447, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 451, 454, 419, 452, 453, 470, 471, 468, 469, 472, 32767, 323, 32767, 473, 474, 475, 476, 32767, 32767, 382, 196, 380, 32767, 477, 32767, 111, 455, 323, 111, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 461, 462, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 100, 520, 570, 479, 456, 457, 32767, 545, 32767, 102, 32767, 547, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 572, 443, 445, 540, 626, 423, 629, 32767, 533, 100, 196, 32767, 546, 196, 196, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 571, 32767, 639, 533, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 32767, 196, 110, 32767, 110, 110, 32767, 32767, 100, 196, 196, 196, 196, 196, 196, 196, 196, 548, 196, 196, 191, 32767, 271, 273, 102, 594, 196, 550, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 404, 32767, 32767, 32767, 32767, 533, 466, 139, 32767, 535, 139, 578, 458, 459, 460, 578, 578, 578, 319, 296, 32767, 32767, 32767, 32767, 32767, 548, 548, 100, 100, 100, 100, 32767, 32767, 32767, 32767, 111, 519, 99, 99, 99, 99, 99, 103, 101, 32767, 32767, 32767, 32767, 226, 32767, 101, 101, 99, 32767, 101, 101, 32767, 32767, 226, 228, 215, 230, 32767, 598, 599, 226, 101, 230, 230, 230, 250, 250, 522, 325, 101, 99, 101, 101, 198, 325, 325, 32767, 101, 522, 325, 522, 325, 200, 325, 325, 325, 522, 325, 32767, 101, 325, 217, 99, 99, 325, 32767, 32767, 32767, 32767, 535, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 225, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 565, 32767, 583, 596, 464, 465, 467, 582, 580, 490, 491, 492, 493, 494, 495, 496, 499, 627, 32767, 539, 32767, 32767, 32767, 353, 32767, 637, 32767, 32767, 32767, 9, 74, 528, 42, 43, 51, 57, 554, 555, 556, 557, 551, 552, 558, 553, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 638, 32767, 578, 32767, 32767, 32767, 32767, 463, 560, 604, 32767, 32767, 579, 630, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 139, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 565, 32767, 137, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 561, 32767, 32767, 32767, 578, 32767, 32767, 32767, 32767, 321, 318, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 578, 32767, 32767, 32767, 32767, 32767, 298, 32767, 315, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 400, 535, 301, 303, 304, 32767, 32767, 32767, 32767, 376, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 153, 153, 3, 3, 356, 153, 153, 153, 356, 356, 153, 356, 356, 356, 153, 153, 153, 153, 153, 153, 153, 283, 186, 265, 268, 250, 250, 153, 368, 153, 402, 402, 411); - protected array $goto = array(201, 169, 201, 201, 201, 1069, 598, 719, 448, 684, 644, 681, 443, 345, 341, 342, 344, 615, 447, 346, 449, 661, 481, 728, 570, 570, 570, 570, 1245, 626, 172, 172, 172, 172, 225, 202, 198, 198, 182, 184, 220, 198, 198, 198, 198, 198, 1195, 199, 199, 199, 199, 199, 1195, 192, 193, 194, 195, 196, 197, 222, 220, 223, 557, 558, 438, 559, 562, 563, 564, 565, 566, 567, 568, 569, 173, 174, 175, 200, 176, 177, 178, 170, 179, 180, 181, 183, 219, 221, 224, 242, 247, 248, 259, 260, 262, 263, 264, 265, 266, 267, 268, 272, 273, 274, 275, 282, 285, 297, 298, 324, 325, 444, 445, 446, 620, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 193, 194, 195, 196, 197, 222, 203, 204, 205, 206, 243, 185, 186, 207, 187, 208, 204, 188, 244, 203, 168, 209, 210, 189, 211, 212, 213, 190, 214, 215, 171, 216, 217, 218, 191, 287, 284, 287, 287, 883, 255, 255, 255, 255, 255, 1125, 605, 487, 487, 622, 758, 660, 662, 1103, 359, 682, 487, 1075, 1074, 706, 709, 1041, 717, 726, 1037, 733, 922, 879, 922, 922, 253, 253, 253, 253, 250, 256, 646, 646, 1078, 1079, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 880, 351, 938, 933, 934, 947, 889, 935, 886, 936, 937, 887, 890, 476, 941, 894, 476, 1044, 1044, 893, 364, 364, 364, 364, 352, 351, 532, 1131, 1127, 1128, 1351, 1351, 331, 315, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1069, 1301, 1072, 1072, 704, 983, 1301, 1301, 1064, 1080, 1081, 1069, 942, 1301, 943, 458, 1069, 881, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 897, 855, 1069, 1069, 1069, 1069, 677, 678, 1301, 695, 696, 697, 1006, 1301, 1301, 1301, 1301, 450, 909, 1301, 436, 896, 1301, 1301, 1382, 1382, 1382, 1382, 915, 581, 574, 499, 612, 450, 367, 971, 971, 955, 501, 1076, 1076, 956, 1400, 1400, 367, 367, 688, 1087, 1083, 1084, 572, 411, 414, 623, 627, 572, 572, 367, 367, 1400, 357, 367, 572, 1417, 1377, 1378, 317, 574, 581, 607, 608, 318, 618, 624, 1390, 640, 641, 1027, 576, 1403, 1403, 367, 367, 28, 474, 520, 442, 521, 635, 1000, 1000, 1000, 1000, 527, 409, 474, 1348, 1348, 994, 1001, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 633, 647, 650, 651, 652, 653, 674, 675, 676, 730, 732, 561, 561, 258, 258, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 610, 1362, 467, 683, 467, 876, 616, 638, 876, 467, 467, 1191, 861, 1373, 360, 361, 1093, 456, 1373, 1373, 560, 560, 705, 432, 560, 1373, 560, 560, 560, 560, 560, 560, 560, 560, 1277, 975, 575, 602, 575, 1278, 1281, 976, 575, 1282, 602, 689, 412, 480, 1384, 1384, 1384, 1384, 347, 873, 716, 576, 861, 876, 861, 490, 619, 491, 492, 639, 8, 857, 9, 902, 907, 989, 716, 1408, 1409, 716, 1369, 418, 1296, 278, 899, 330, 1174, 424, 425, 1292, 330, 330, 693, 1049, 694, 1114, 429, 430, 431, 761, 707, 1060, 905, 433, 1102, 1104, 1107, 355, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 419, 339, 467, 911, 467, 467, 1294, 628, 629, 1116, 497, 960, 1181, 621, 1144, 1371, 1371, 1116, 1118, 1297, 1298, 1011, 1284, 1046, 1151, 1179, 1152, 731, 871, 528, 722, 901, 1142, 687, 1025, 1284, 496, 1375, 1376, 895, 910, 898, 1113, 1117, 998, 427, 727, 1165, 1299, 1359, 1360, 1291, 1030, 386, 1009, 1002, 0, 757, 0, 0, 573, 1039, 1034, 654, 656, 658, 0, 0, 0, 0, 0, 0, 0, 0, 876, 0, 0, 999, 0, 766, 766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163, 914); - protected array $gotoCheck = array(42, 42, 42, 42, 42, 73, 127, 73, 66, 66, 56, 56, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 159, 9, 107, 107, 107, 107, 159, 107, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 23, 23, 23, 23, 15, 5, 5, 5, 5, 5, 15, 48, 157, 157, 134, 48, 48, 48, 131, 97, 48, 157, 119, 119, 48, 48, 48, 48, 48, 48, 48, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 108, 108, 120, 120, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 26, 177, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 83, 15, 15, 83, 107, 107, 15, 24, 24, 24, 24, 177, 177, 76, 15, 15, 15, 179, 179, 178, 178, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 73, 73, 89, 89, 89, 89, 73, 73, 89, 89, 89, 73, 65, 73, 65, 83, 73, 27, 73, 73, 73, 73, 73, 73, 73, 73, 73, 35, 6, 73, 73, 73, 73, 86, 86, 73, 86, 86, 86, 49, 73, 73, 73, 73, 118, 35, 73, 43, 35, 73, 73, 9, 9, 9, 9, 45, 76, 76, 84, 181, 118, 14, 9, 9, 73, 84, 118, 118, 73, 191, 191, 14, 14, 118, 118, 118, 118, 19, 59, 59, 59, 59, 19, 19, 14, 14, 191, 188, 14, 19, 14, 187, 187, 76, 76, 76, 76, 76, 76, 76, 76, 190, 76, 76, 103, 14, 191, 191, 14, 14, 76, 19, 163, 13, 163, 13, 19, 19, 19, 19, 163, 62, 19, 180, 180, 19, 19, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 182, 182, 5, 5, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 104, 14, 23, 64, 23, 22, 2, 2, 22, 23, 23, 158, 12, 134, 97, 97, 115, 113, 134, 134, 165, 165, 117, 14, 165, 134, 165, 165, 165, 165, 165, 165, 165, 165, 79, 79, 9, 9, 9, 79, 79, 79, 9, 79, 9, 121, 9, 9, 134, 134, 134, 134, 29, 18, 7, 14, 12, 22, 12, 9, 9, 9, 9, 80, 46, 7, 46, 39, 9, 92, 7, 9, 9, 7, 134, 28, 20, 24, 37, 24, 156, 82, 82, 169, 24, 24, 82, 110, 82, 133, 82, 82, 82, 99, 82, 114, 9, 82, 130, 130, 130, 82, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 31, 9, 23, 41, 23, 23, 14, 17, 17, 134, 160, 17, 17, 8, 8, 134, 134, 134, 136, 20, 20, 96, 20, 17, 149, 149, 149, 8, 20, 8, 8, 17, 8, 17, 17, 20, 185, 185, 185, 17, 16, 16, 16, 16, 93, 93, 93, 152, 20, 20, 20, 17, 50, 141, 16, 50, -1, 50, -1, -1, 50, 50, 50, 85, 85, 85, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, 16, -1, 24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 16); - protected array $gotoBase = array(0, 0, -303, 0, 0, 170, 280, 471, 543, 10, 0, 0, 136, 31, 22, -186, 111, 66, 164, 71, 95, 0, 148, 160, 235, 191, 214, 275, 155, 176, 0, 86, 0, 0, 0, -92, 0, 156, 0, 165, 0, 85, -1, 286, 0, 291, -270, 0, -558, 284, 579, 0, 0, 0, 0, 0, -33, 0, 0, 294, 0, 0, 341, 0, 184, 261, -237, 0, 0, 0, 0, 0, 0, -5, 0, 0, -32, 0, 0, 37, 172, 32, -3, -50, -167, 105, -444, 0, 0, -21, 0, 0, 161, 274, 0, 0, 101, -318, 0, 97, 0, 0, 0, 331, 381, 0, 0, -7, -38, 0, 131, 0, 0, 158, 90, 162, 0, 159, 39, -100, -83, 173, 0, 0, 0, 0, 0, 4, 0, 0, 522, 182, 0, 127, 169, 0, 99, 0, 0, 0, 0, -171, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 126, 0, 0, 0, 144, 141, 188, -255, 93, 0, 0, -138, 0, 202, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, -82, -74, 6, 143, 292, 168, 0, 0, 270, 0, -31, 319, 0, 332, 20, 0, 0); - protected array $gotoDefault = array(-32768, 533, 768, 7, 769, 964, 844, 853, 597, 551, 729, 356, 648, 439, 1367, 940, 1180, 617, 872, 1310, 1316, 475, 875, 336, 755, 952, 923, 924, 415, 402, 888, 413, 672, 649, 514, 908, 471, 900, 506, 903, 470, 912, 167, 435, 530, 916, 6, 919, 579, 950, 1004, 403, 927, 404, 700, 929, 601, 931, 932, 410, 416, 417, 1185, 609, 645, 944, 261, 603, 945, 401, 946, 954, 406, 408, 710, 486, 525, 519, 428, 1146, 604, 632, 669, 464, 493, 643, 655, 642, 500, 451, 434, 335, 988, 996, 507, 484, 1010, 358, 1018, 763, 1193, 663, 509, 1026, 664, 1033, 1036, 552, 553, 498, 1048, 270, 1051, 510, 1061, 26, 690, 1066, 1067, 691, 665, 1089, 666, 692, 667, 1091, 483, 599, 1194, 482, 1106, 1112, 472, 1115, 1356, 473, 1119, 269, 1122, 286, 362, 385, 452, 1129, 1130, 12, 1136, 720, 721, 25, 280, 529, 1164, 711, 1170, 279, 1173, 469, 1192, 468, 1265, 1267, 580, 511, 1285, 321, 1288, 703, 526, 1293, 465, 1358, 466, 554, 494, 343, 555, 1401, 314, 365, 340, 571, 322, 366, 556, 495, 1364, 1372, 337, 34, 1391, 1402, 614, 637); - protected array $ruleToNonTerminal = array(0, 1, 3, 3, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 25, 25, 50, 69, 69, 72, 72, 71, 70, 70, 63, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 80, 80, 26, 26, 27, 27, 27, 27, 27, 88, 88, 90, 90, 83, 83, 91, 91, 92, 92, 92, 84, 84, 87, 87, 85, 85, 93, 94, 94, 57, 57, 65, 65, 68, 68, 68, 67, 95, 95, 96, 58, 58, 58, 58, 97, 97, 98, 98, 99, 99, 100, 101, 101, 102, 102, 103, 103, 55, 55, 51, 51, 105, 53, 53, 106, 52, 52, 54, 54, 64, 64, 64, 64, 81, 81, 109, 109, 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, 110, 110, 110, 115, 115, 115, 115, 89, 89, 118, 118, 118, 119, 119, 116, 116, 120, 120, 122, 122, 123, 123, 117, 124, 124, 121, 125, 125, 125, 125, 113, 113, 82, 82, 82, 20, 20, 20, 128, 128, 128, 128, 129, 129, 129, 127, 126, 126, 131, 131, 131, 130, 130, 60, 132, 132, 133, 61, 135, 135, 136, 136, 137, 137, 86, 138, 138, 138, 138, 138, 138, 138, 138, 144, 144, 145, 145, 146, 146, 146, 146, 146, 147, 148, 148, 143, 143, 139, 139, 142, 142, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 140, 151, 151, 153, 152, 152, 141, 141, 114, 114, 154, 154, 156, 156, 156, 155, 155, 62, 104, 157, 157, 56, 56, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 164, 165, 165, 166, 158, 158, 163, 163, 167, 168, 168, 169, 170, 171, 171, 171, 171, 19, 19, 73, 73, 73, 73, 159, 159, 159, 159, 173, 173, 162, 162, 162, 160, 160, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 180, 180, 180, 108, 182, 182, 182, 182, 161, 161, 161, 161, 161, 161, 161, 161, 59, 59, 176, 176, 176, 176, 176, 183, 183, 172, 172, 172, 172, 184, 184, 184, 184, 184, 74, 74, 66, 66, 66, 66, 134, 134, 134, 134, 187, 186, 175, 175, 175, 175, 175, 175, 174, 174, 174, 185, 185, 185, 185, 107, 181, 189, 189, 188, 188, 190, 190, 190, 190, 190, 190, 190, 190, 178, 178, 178, 178, 177, 192, 191, 191, 191, 191, 191, 191, 191, 191, 193, 193, 193, 193); - protected array $ruleToLength = array(1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, 0, 1, 1, 1, 1, 4, 3, 5, 4, 3, 4, 1, 3, 4, 1, 1, 8, 7, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, 1, 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 1, 1, 8, 9, 7, 8, 7, 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 7, 9, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, 2, 4, 3, 2, 4, 4, 3, 3, 1, 3, 1, 1, 3, 2, 2, 3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, 1, 5, 7, 5, 6, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, 0, 2, 0, 3, 5, 8, 1, 3, 3, 0, 2, 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, 4, 4, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, 3, 2, 2, 1, 1, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1); + protected array $action = array(133, 134, 135, 581, 136, 137, 1059, 776, 777, 778, 138, 41, 394, 395, 454, 501, -32766, -32766, -32766, 971, 970, 851, 439, 0, 987, 988, 627, 851, 1105, 989, -32766, -32766, -32766, 862, -32766, 770, 769, -32766, 983, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, -32766, 27, -32766, -32766, -32766, 779, 1156, 1157, 1158, 1152, 1151, 1150, 1159, 1153, 1154, 1155, -338, 304, 969, 270, 54, 397, 783, 784, 785, 786, 1145, -85, 440, 860, -32766, -32766, 1401, 299, 1107, 840, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 816, 582, 817, 818, 819, 820, 808, 809, 352, 353, 811, 812, 797, 798, 799, 801, 802, 803, 367, 843, 844, 845, 846, 847, 583, 1299, 610, 244, 804, 805, 584, 585, -195, 828, 826, 827, 839, 823, 824, 1299, 4, 586, 587, 822, 588, 589, 590, 591, -85, 592, 593, 1018, 39, 253, -194, 502, 825, 594, 595, 853, 139, 436, 133, 134, 135, 581, 136, 137, 1094, 776, 777, 778, 138, 41, -32766, 436, 1056, 1051, 1050, 1049, 1055, 1052, 1053, 1054, -32766, -32766, -32766, -32766, -32766, -32766, 1105, 245, 132, -32766, -32766, -32766, 165, 770, 769, 1068, 861, -32766, -32766, -32766, 1382, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 5, -32766, -32766, 779, -32766, -32766, -32766, -32766, 298, -32766, -32766, -32766, -32766, -32766, -338, -32766, 1326, 270, 54, 397, 783, 784, 785, 786, 855, -32766, 440, -32766, -32766, -32766, -32766, 733, 577, 840, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 816, 582, 817, 818, 819, 820, 808, 809, 352, 353, 811, 812, 797, 798, 799, 801, 802, 803, 367, 843, 844, 845, 846, 847, 583, 1019, 851, -584, 804, 805, 584, 585, -195, 828, 826, 827, 839, 823, 824, -50, 440, 586, 587, 822, 588, 589, 590, 591, -582, 592, 593, 394, 395, 1338, -194, 860, 825, 594, 595, 29, 139, 439, 133, 134, 135, 581, 136, 137, 1092, 776, 777, 778, 138, 41, 1156, 1157, 1158, 1152, 1151, 1150, 1159, 1153, 1154, 1155, 3, -275, 1367, 1172, 1386, 1299, 1105, 751, 38, 1091, -584, -584, 1385, 770, 769, -32767, -32767, -32767, -32767, 107, 108, 109, 110, 304, 111, 112, 113, 114, 115, 145, 282, -582, -582, 331, 779, 1301, 1300, 1302, 152, 293, 299, 436, 116, 161, 1131, 396, 395, -582, 270, 54, 397, 783, 784, 785, 786, 439, 144, 440, 140, -588, 331, 108, 109, 110, 840, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 816, 582, 817, 818, 819, 820, 808, 809, 352, 353, 811, 812, 797, 798, 799, 801, 802, 803, 367, 843, 844, 845, 846, 847, 583, 1299, -580, 148, 804, 805, 584, 585, 856, 828, 826, 827, 839, 823, 824, 143, -581, 586, 587, 822, 588, 589, 590, 591, -579, 592, 593, 1065, -32766, -32766, -32766, -32766, 825, 594, 595, -578, 139, 1297, 133, 134, 135, 581, 136, 137, 1096, 776, 777, 778, 138, 41, -32766, 1299, 1068, 1068, 52, -32766, -32766, -32766, 633, 1130, 322, 1067, 888, 759, 889, 1299, 1105, 256, 1299, -580, -580, 87, 315, 770, 769, 331, 289, 298, 967, 319, 1301, 1300, 1302, -581, -581, -580, 1411, 436, 857, 1412, 507, -579, -579, 332, 779, -32766, 761, -587, 1065, -581, 328, 436, -578, -578, 436, 770, 769, -579, 270, 54, 397, 783, 784, 785, 786, 859, 348, 440, -578, -586, 1068, 305, 306, 1068, 840, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 816, 582, 817, 818, 819, 820, 808, 809, 352, 353, 811, 812, 797, 798, 799, 801, 802, 803, 367, 843, 844, 845, 846, 847, 583, 487, 488, 349, 804, 805, 584, 585, 153, 828, 826, 827, 839, 823, 824, 53, 382, 586, 587, 822, 588, 589, 590, 591, 155, 592, 593, -78, 88, 89, 90, 388, 825, 594, 595, 404, 139, 800, 771, 772, 773, 774, 775, 156, 776, 777, 778, 813, 814, 40, 458, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1306, 282, 476, 477, 478, 1299, 307, 308, -383, 459, -383, 746, 406, 116, 10, 460, 888, 779, 889, -620, 461, -620, 387, 109, 110, 866, -32766, -32766, 676, 23, 157, 780, 781, 782, 783, 784, 785, 786, 695, 696, 849, 436, 151, 422, 392, 393, 159, 840, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 816, 838, 817, 818, 819, 820, 808, 809, 810, 837, 811, 812, 797, 798, 799, 801, 802, 803, 842, 843, 844, 845, 846, 847, 848, 860, -32766, 1065, 804, 805, 806, 807, 2, 828, 826, 827, 839, 823, 824, 398, 399, 815, 821, 822, 829, 830, 832, 831, 36, 833, 834, 1068, 1068, 667, 668, -58, 825, 836, 835, 55, 56, 57, 58, 533, 59, 60, -57, 130, 770, 769, 61, 62, 131, 63, -87, 298, 289, 141, 142, 147, 160, 162, 163, -32766, 770, 769, 164, -309, -84, 35, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, -78, -305, -73, -72, -71, 80, -70, 64, 65, 1299, -69, 331, 66, -68, 67, 250, 251, 68, 69, 70, 71, 72, 73, 74, 75, 1299, 31, 275, 48, 456, 1206, 1208, -67, -66, 1332, 1333, 535, -65, 860, -46, -18, -578, 1330, 42, 280, 436, 290, 747, 750, 945, 150, 294, 282, 946, 116, 541, 287, 288, 291, 292, 337, 436, 391, 390, 295, 300, 301, 149, 963, 705, 851, 720, 347, -32766, 677, 860, 1163, 682, 1292, 1413, 698, 722, 683, 312, 545, 546, 309, 79, 597, 984, 665, -544, 318, -32766, 1337, 548, 549, 13, 1318, 1319, 1320, 1321, 1323, 1315, 1316, 303, 699, 1327, -578, -578, 965, 1322, 1317, -278, 310, 1301, 1300, 1302, 304, -4, 946, 76, 603, 631, -578, 326, 327, 331, 534, -154, -154, -154, 484, 512, 859, 0, 0, 1339, 936, 0, 0, 46, 22, 536, -154, 537, -154, 538, -154, 539, -154, -534, 540, 0, 11, 0, 0, 49, 50, 462, 389, 30, 0, 51, 542, 386, 304, 0, 44, 380, 0, 987, 988, 0, 45, 946, 543, 0, 0, 0, 0, 544, 0, 0, 922, 983, -110, -110, -110, 421, 756, 0, 0, 0, 0, 534, 757, 879, -276, 0, 927, 1028, 1005, 1012, 1002, 936, 1013, 925, 46, 22, 536, 1000, 537, 1134, 538, 1137, 539, 948, 1138, 540, 1135, 731, -154, 1174, 49, 50, 462, 389, 1136, 452, 51, 542, 1142, -614, 302, 871, 380, 1354, 987, 988, 1371, 1404, 670, 543, -613, -612, 946, -588, 544, -587, 534, 547, 983, -110, -110, -110, -586, -585, -528, 1, 936, 32, 33, 46, 22, 536, 43, 537, 47, 538, 77, 539, 81, 82, 540, 21, -253, -253, -253, 49, 50, 462, 389, 83, 948, 51, 542, 84, 731, -4, 85, 380, 86, 987, 988, 146, 154, 946, 543, 158, 248, 333, 368, 544, 369, 370, 922, 983, -110, -110, -110, 371, 372, 373, 374, 375, 376, 377, 378, 381, 453, 534, 576, 1306, 379, 770, 769, -275, 736, 15, 16, 936, 17, 18, 46, 22, 536, 20, 537, 948, 538, 362, 539, 731, -253, 540, 420, -252, -252, -252, 49, 50, 462, 389, -16, 503, 51, 542, 504, 31, 276, 511, 380, 514, 987, 988, 515, 516, 517, 543, 521, 860, 534, 522, 544, 1330, 523, 922, 983, -110, -110, -110, 936, 530, 608, 46, 22, 536, 946, 537, 715, 538, 1247, 539, 1328, 1095, 540, 1093, 1074, 1287, 1070, 49, 50, 462, -280, -102, 860, 51, 542, 14, 948, 1292, 19, 380, 731, -252, 24, 322, 419, 737, 622, 946, 628, 656, 721, 544, 1251, 1305, 548, 549, 1248, 1318, 1319, 1320, 1321, 1323, 1315, 1316, 1383, 425, 37, -110, -110, 325, 1322, 1317, -110, 383, 732, 735, 739, 740, 738, 742, 78, -110, 753, 743, 744, 327, 331, 948, 745, 534, -32766, 731, 749, 761, 734, 762, 946, 923, 1408, 936, 1410, 882, 46, 22, 536, 881, 537, 977, 538, 1020, 539, 1409, 304, 540, 976, 80, 974, 975, 49, 50, 462, 331, 534, 978, 51, 542, 1280, 741, 956, 946, 380, 966, 936, 954, 1173, 46, 22, 536, 1169, 537, 1123, 538, 544, 539, 1010, 1011, 540, 654, 1407, 1365, 1380, 49, 50, 462, 1265, 331, 1331, 51, 542, 0, 748, 0, 946, 380, 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 544, 0, 0, 948, 0, 0, 936, 731, 0, 46, 22, 536, 0, 537, 0, 538, 1306, 539, 0, 0, 540, 0, 0, 0, 0, 49, 50, 462, 0, 534, 0, 51, 542, 0, 0, 0, 1004, 380, 0, 936, 731, 0, 46, 22, 536, 0, 537, 0, 538, 544, 539, 0, 0, 540, 0, 0, 0, 0, 49, 50, 462, 0, 534, 0, 51, 542, 0, 0, 31, 275, 380, 0, 936, 0, 0, 46, 22, 536, 0, 537, 860, 538, 544, 539, 1330, 948, 540, 0, 0, 731, 1129, 49, 50, 462, 0, 0, 0, 51, 542, 860, 31, 276, 0, 380, 0, 0, 0, 293, 0, 0, 0, 0, 860, 0, 0, 544, 1330, 0, 948, 0, 1292, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, -110, 0, 0, 549, -110, 1318, 1319, 1320, 1321, 1323, 1315, 1316, 0, -110, 0, 0, 948, 1292, 1322, 1317, 731, 0, -32766, 709, 0, 0, 0, 0, 78, 0, 0, 0, 0, 327, 331, 549, 0, 1318, 1319, 1320, 1321, 1323, 1315, 1316, 304, 0, 0, 80, 0, 0, 1322, 1317, 0, 331, 0, 0, 0, -110, 0, 710, 78, 0, -110, 0, -110, 327, 331, 0, 0, 311, 0, 0, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, 711, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1301, 1300, 1302, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -357); + protected array $actionCheck = array(3, 4, 5, 6, 7, 8, 1, 10, 11, 12, 13, 14, 108, 109, 110, 32, 10, 11, 12, 74, 75, 82, 118, 0, 119, 120, 1, 82, 31, 124, 10, 11, 12, 1, 10, 38, 39, 31, 133, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 31, 103, 33, 34, 35, 59, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 9, 164, 124, 73, 74, 75, 76, 77, 78, 79, 128, 32, 82, 84, 10, 11, 87, 31, 31, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 82, 83, 99, 128, 129, 130, 131, 9, 133, 134, 135, 136, 137, 138, 82, 9, 141, 142, 143, 144, 145, 146, 147, 99, 149, 150, 32, 153, 154, 9, 169, 156, 157, 158, 82, 160, 118, 3, 4, 5, 6, 7, 8, 168, 10, 11, 12, 13, 14, 118, 118, 120, 121, 122, 123, 124, 125, 126, 127, 10, 11, 12, 10, 11, 12, 31, 15, 15, 10, 11, 12, 15, 38, 39, 143, 165, 10, 11, 12, 1, 31, 118, 33, 34, 35, 36, 37, 38, 39, 31, 9, 33, 34, 59, 10, 11, 12, 31, 167, 33, 34, 35, 36, 37, 168, 142, 1, 73, 74, 75, 76, 77, 78, 79, 162, 31, 82, 33, 34, 35, 36, 169, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 165, 82, 72, 128, 129, 130, 131, 168, 133, 134, 135, 136, 137, 138, 32, 82, 141, 142, 143, 144, 145, 146, 147, 72, 149, 150, 108, 109, 152, 168, 84, 156, 157, 158, 9, 160, 118, 3, 4, 5, 6, 7, 8, 168, 10, 11, 12, 13, 14, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 9, 168, 1, 165, 1, 82, 31, 169, 9, 1, 139, 140, 9, 38, 39, 45, 46, 47, 48, 49, 50, 51, 52, 164, 53, 54, 55, 56, 57, 169, 59, 139, 140, 173, 59, 161, 162, 163, 15, 31, 31, 118, 71, 17, 170, 108, 109, 155, 73, 74, 75, 76, 77, 78, 79, 118, 169, 82, 9, 167, 173, 50, 51, 52, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 82, 72, 9, 128, 129, 130, 131, 82, 133, 134, 135, 136, 137, 138, 32, 72, 141, 142, 143, 144, 145, 146, 147, 72, 149, 150, 118, 118, 10, 11, 12, 156, 157, 158, 72, 160, 118, 3, 4, 5, 6, 7, 8, 168, 10, 11, 12, 13, 14, 31, 82, 143, 143, 72, 10, 11, 12, 54, 165, 168, 142, 108, 169, 110, 82, 31, 9, 82, 139, 140, 169, 9, 38, 39, 173, 167, 167, 1, 9, 161, 162, 163, 139, 140, 155, 82, 118, 162, 85, 104, 139, 140, 72, 59, 118, 169, 167, 118, 155, 9, 118, 139, 140, 118, 38, 39, 155, 73, 74, 75, 76, 77, 78, 79, 161, 9, 82, 155, 167, 143, 139, 140, 143, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 139, 140, 9, 128, 129, 130, 131, 15, 133, 134, 135, 136, 137, 138, 72, 9, 141, 142, 143, 144, 145, 146, 147, 15, 149, 150, 17, 10, 11, 12, 9, 156, 157, 158, 9, 160, 3, 4, 5, 6, 7, 8, 15, 10, 11, 12, 13, 14, 31, 9, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 1, 59, 134, 135, 136, 82, 139, 140, 108, 9, 110, 169, 108, 71, 110, 9, 108, 59, 110, 166, 9, 168, 155, 51, 52, 9, 53, 54, 77, 78, 15, 73, 74, 75, 76, 77, 78, 79, 77, 78, 82, 118, 103, 104, 108, 109, 15, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 84, 118, 118, 128, 129, 130, 131, 167, 133, 134, 135, 136, 137, 138, 108, 109, 141, 142, 143, 144, 145, 146, 147, 15, 149, 150, 143, 143, 113, 114, 17, 156, 157, 158, 2, 3, 4, 5, 6, 7, 8, 17, 17, 38, 39, 13, 14, 17, 16, 32, 167, 167, 17, 17, 17, 17, 17, 17, 142, 38, 39, 17, 36, 32, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 36, 32, 32, 32, 167, 32, 53, 54, 82, 32, 173, 58, 32, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 82, 72, 73, 74, 75, 61, 62, 32, 32, 80, 81, 82, 32, 84, 32, 32, 72, 88, 32, 32, 118, 32, 32, 32, 32, 32, 38, 59, 1, 71, 101, 36, 36, 36, 36, 36, 118, 108, 109, 38, 38, 38, 72, 39, 79, 82, 82, 118, 87, 92, 84, 84, 98, 124, 85, 96, 94, 102, 116, 130, 131, 137, 160, 91, 133, 115, 155, 137, 142, 152, 141, 142, 99, 144, 145, 146, 147, 148, 149, 150, 151, 102, 166, 139, 140, 160, 157, 158, 168, 138, 161, 162, 163, 164, 0, 1, 167, 159, 159, 155, 171, 172, 173, 76, 77, 78, 79, 99, 99, 161, -1, -1, 152, 86, -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 155, 100, -1, 155, -1, -1, 105, 106, 107, 108, 155, -1, 111, 112, 155, 164, -1, 165, 117, -1, 119, 120, -1, 165, 1, 124, -1, -1, -1, -1, 129, -1, -1, 132, 133, 134, 135, 136, 170, 165, -1, -1, -1, -1, 76, 165, 165, 168, -1, 165, 165, 165, 165, 165, 86, 165, 165, 89, 90, 91, 165, 93, 165, 95, 165, 97, 165, 165, 100, 165, 169, 170, 165, 105, 106, 107, 108, 165, 110, 111, 112, 165, 167, 115, 166, 117, 166, 119, 120, 166, 166, 166, 124, 167, 167, 1, 167, 129, 167, 76, 132, 133, 134, 135, 136, 167, 167, 167, 167, 86, 167, 167, 89, 90, 91, 167, 93, 167, 95, 167, 97, 167, 167, 100, 156, 102, 103, 104, 105, 106, 107, 108, 167, 165, 111, 112, 167, 169, 170, 167, 117, 167, 119, 120, 167, 167, 1, 124, 167, 167, 167, 167, 129, 167, 167, 132, 133, 134, 135, 136, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 76, 167, 1, 167, 38, 39, 168, 32, 168, 168, 86, 168, 168, 89, 90, 91, 168, 93, 165, 95, 168, 97, 169, 170, 100, 168, 102, 103, 104, 105, 106, 107, 108, 32, 168, 111, 112, 168, 72, 73, 168, 117, 168, 119, 120, 168, 168, 168, 124, 168, 84, 76, 168, 129, 88, 168, 132, 133, 134, 135, 136, 86, 168, 168, 89, 90, 91, 1, 93, 168, 95, 168, 97, 168, 168, 100, 168, 168, 168, 168, 105, 106, 107, 168, 168, 84, 111, 112, 168, 165, 124, 168, 117, 169, 170, 168, 168, 168, 32, 168, 1, 168, 168, 168, 129, 168, 168, 141, 142, 168, 144, 145, 146, 147, 148, 149, 150, 168, 170, 169, 119, 120, 169, 157, 158, 124, 169, 169, 169, 169, 169, 32, 169, 167, 133, 170, 169, 169, 172, 173, 165, 169, 76, 142, 169, 169, 169, 169, 169, 1, 170, 170, 86, 170, 170, 89, 90, 91, 170, 93, 170, 95, 170, 97, 170, 164, 100, 170, 167, 170, 170, 105, 106, 107, 173, 76, 170, 111, 112, 170, 32, 170, 1, 117, 170, 86, 170, 170, 89, 90, 91, 170, 93, 170, 95, 129, 97, 170, 170, 100, 170, 170, 170, 170, 105, 106, 107, 171, 173, 172, 111, 112, -1, 32, -1, 1, 117, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, 129, -1, -1, 165, -1, -1, 86, 169, -1, 89, 90, 91, -1, 93, -1, 95, 1, 97, -1, -1, 100, -1, -1, -1, -1, 105, 106, 107, -1, 76, -1, 111, 112, -1, -1, -1, 165, 117, -1, 86, 169, -1, 89, 90, 91, -1, 93, -1, 95, 129, 97, -1, -1, 100, -1, -1, -1, -1, 105, 106, 107, -1, 76, -1, 111, 112, -1, -1, 72, 73, 117, -1, 86, -1, -1, 89, 90, 91, -1, 93, 84, 95, 129, 97, 88, 165, 100, -1, -1, 169, 1, 105, 106, 107, -1, -1, -1, 111, 112, 84, 72, 73, -1, 117, -1, -1, -1, 31, -1, -1, -1, -1, 84, -1, -1, 129, 88, -1, 165, -1, 124, -1, 169, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, 142, 124, 144, 145, 146, 147, 148, 149, 150, -1, 133, -1, -1, 165, 124, 157, 158, 169, -1, 142, 82, -1, -1, -1, -1, 167, -1, -1, -1, -1, 172, 173, 142, -1, 144, 145, 146, 147, 148, 149, 150, 164, -1, -1, 167, -1, -1, 157, 158, -1, 173, -1, -1, -1, 103, -1, 118, 167, -1, 108, -1, 110, 172, 173, -1, -1, 115, -1, -1, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 142, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, 163, -1, -1, -1, 167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 170); + protected array $actionBase = array(0, 156, -3, 315, 474, 474, 887, 954, 1009, 1080, 1460, 227, 214, -61, 1222, 1304, 1304, 1337, 1304, 1131, 1255, 74, 1370, 1370, 1370, 898, 824, 632, 632, 824, 632, 762, 762, 762, 762, 778, 778, 425, 425, 40, 422, 263, 54, 408, 408, 408, 408, 408, 597, 408, 408, 408, 408, 408, 597, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 32, 116, 331, 25, 1133, 765, 1084, 1093, 1087, 1094, 1079, 1076, 1085, 1089, 1097, 1187, 1188, 853, 1186, 1189, 1090, 911, 1083, 1091, 893, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 24, 174, 71, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 458, 458, 458, 1122, 1122, 180, 20, 1412, 1380, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 206, 188, 804, 171, 171, 6, 6, 6, 6, 6, 1473, 53, 1157, 310, 310, 310, 310, 1399, 1399, -51, 506, 574, 348, 351, 673, -96, 646, 349, 199, 641, 641, 419, 419, 640, 640, 419, 419, 419, 311, 311, 416, 416, 416, 416, 393, 157, 786, 200, 200, 200, 200, 786, 786, 786, 786, 820, 1193, 786, 970, 981, 786, 786, 232, 369, 391, 647, 647, 582, -4, -4, 582, -95, -4, 341, 443, 85, 791, 277, 527, 85, 992, 383, 402, 402, 541, 402, 402, 402, 808, 610, 808, 1072, 821, 821, 842, 805, 902, 1134, 1105, 815, 1183, 839, 1184, 1135, 178, 542, 211, 421, 460, 803, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1191, 506, 1072, 365, 1177, 1179, 1191, 1191, 1191, 506, 506, 506, 506, 506, 506, 506, 506, 843, 506, 506, 672, 365, 625, 635, 365, 859, 506, 831, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -17, 32, 32, 116, 516, 516, 32, 333, 5, 516, 516, 516, 366, 516, 32, 32, 32, 610, 828, 798, 663, 46, 799, 142, 828, 828, 828, 58, 173, 120, 783, 800, 578, 823, 823, 823, 827, 927, 927, 823, 826, 823, 827, 823, 823, 927, 927, 837, 927, 389, 639, 546, 620, 674, 927, 502, 823, 823, 823, 823, 790, 927, 128, 203, 680, 823, 497, 433, 823, 823, 790, 784, 849, 811, 927, 927, 927, 790, 605, 811, 811, 811, 860, 866, 810, 847, 530, 509, 690, 339, 864, 847, 847, 823, 624, 810, 847, 810, 847, 785, 847, 847, 847, 810, 847, 826, 592, 847, 795, 685, 306, 847, 823, 23, 938, 940, 774, 941, 934, 951, 988, 955, 958, 1114, 926, 968, 936, 960, 990, 930, 929, 852, 782, 787, 834, 771, 925, 818, 818, 818, 915, 917, 818, 818, 818, 818, 818, 818, 818, 818, 782, 776, 845, 832, 972, 792, 793, 1051, 777, 1136, 1192, 970, 938, 958, 788, 936, 960, 930, 929, 840, 836, 816, 835, 813, 809, 806, 807, 846, 963, 838, 794, 1004, 973, 1121, 1109, 979, 980, 1013, 1059, 867, 1061, 1137, 830, 1139, 1140, 904, 982, 1115, 818, 913, 901, 906, 981, 924, 782, 909, 1062, 1064, 996, 1106, 1022, 1025, 1113, 868, 829, 910, 1144, 983, 984, 985, 1116, 1117, 844, 997, 780, 1028, 869, 854, 1030, 1033, 1034, 1035, 1119, 1146, 1123, 912, 1124, 870, 817, 865, 814, 1148, 363, 857, 858, 863, 987, 591, 969, 1128, 1104, 1150, 1037, 1040, 1043, 1153, 1155, 964, 871, 999, 819, 1000, 994, 872, 873, 607, 862, 1065, 855, 856, 861, 626, 689, 1156, 1162, 1165, 967, 850, 825, 874, 876, 1066, 848, 1067, 1167, 705, 877, 1170, 1057, 796, 797, 608, 781, 770, 801, 822, 1132, 841, 802, 833, 986, 797, 851, 881, 1172, 883, 885, 888, 1050, 890, 1008, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, 632, 632, 632, 632, 789, 789, 789, 789, 789, 789, 789, 632, 789, 789, 789, 632, 632, 0, 0, 632, 0, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 358, 358, 616, 616, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 616, 616, 0, 616, 616, 616, 616, 616, 616, 616, 837, 358, 358, 311, 311, 311, 311, 358, 358, 212, 212, 212, 358, 311, 358, -95, 311, 358, -95, 358, 358, 358, 358, 358, 358, 358, 358, 358, 0, 0, 358, 358, 358, 358, 365, -4, 358, 826, 826, 826, 826, 358, 358, 358, 358, -4, -4, 358, -55, -55, 358, 358, 0, 0, 0, 311, 311, 365, 0, 0, 365, 0, 0, 826, 826, 358, -95, 837, 343, 358, 178, 0, 0, 0, 0, 0, 0, 0, 365, 826, 365, 506, -4, -4, 506, 506, 516, 32, 343, 613, 613, 613, 613, 32, 0, 0, 0, 0, 0, 610, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 826, 0, 837, 0, 837, 837, 826, 826, 826, 0, 0, 0, 0, 0, 0, 0, 0, 927, 0, 0, 0, 0, 0, 0, 0, 826, 0, 927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 818, 868, 0, 0, 868, 0, 818, 818, 818, 0, 0, 0, 862, 848); + protected array $actionDefault = array(3, 32767, 32767, 32767, 102, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 100, 32767, 632, 632, 632, 632, 32767, 32767, 257, 102, 32767, 32767, 503, 32767, 417, 417, 417, 32767, 32767, 32767, 576, 576, 576, 576, 576, 17, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 503, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 36, 7, 8, 10, 11, 49, 340, 100, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 404, 625, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 497, 507, 485, 486, 488, 489, 416, 577, 631, 344, 628, 339, 415, 146, 354, 342, 245, 261, 508, 262, 509, 512, 513, 218, 401, 150, 151, 448, 504, 450, 502, 506, 449, 422, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 420, 421, 505, 482, 481, 480, 32767, 32767, 446, 447, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 451, 454, 419, 452, 453, 470, 471, 468, 469, 472, 32767, 323, 32767, 473, 474, 475, 476, 32767, 32767, 382, 196, 380, 32767, 477, 32767, 111, 455, 323, 111, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 461, 462, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 100, 520, 570, 479, 456, 457, 32767, 545, 32767, 102, 32767, 547, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 572, 443, 445, 540, 626, 423, 629, 32767, 533, 100, 196, 32767, 546, 196, 196, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 571, 32767, 639, 533, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 32767, 196, 110, 32767, 110, 110, 32767, 32767, 100, 196, 196, 196, 196, 196, 196, 196, 196, 548, 196, 196, 191, 32767, 271, 273, 102, 594, 196, 550, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 404, 32767, 32767, 32767, 32767, 533, 466, 139, 32767, 535, 139, 578, 458, 459, 460, 578, 578, 578, 319, 296, 32767, 32767, 32767, 32767, 32767, 548, 548, 100, 100, 100, 100, 32767, 32767, 32767, 32767, 111, 519, 99, 99, 99, 99, 99, 103, 101, 32767, 32767, 32767, 32767, 226, 32767, 101, 101, 99, 32767, 101, 101, 32767, 32767, 226, 228, 215, 230, 32767, 598, 599, 226, 101, 230, 230, 230, 250, 250, 522, 325, 101, 99, 101, 101, 198, 325, 325, 32767, 101, 522, 325, 522, 325, 200, 325, 325, 325, 522, 325, 32767, 101, 325, 217, 99, 99, 325, 32767, 32767, 32767, 32767, 535, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 225, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 565, 32767, 583, 596, 464, 465, 467, 582, 580, 490, 491, 492, 493, 494, 495, 496, 499, 627, 32767, 539, 32767, 32767, 32767, 353, 32767, 637, 32767, 32767, 32767, 9, 74, 528, 42, 43, 51, 57, 554, 555, 556, 557, 551, 552, 558, 553, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 638, 32767, 578, 32767, 32767, 32767, 32767, 463, 560, 604, 32767, 32767, 579, 630, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 139, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 565, 32767, 137, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 561, 32767, 32767, 32767, 578, 32767, 32767, 32767, 32767, 321, 318, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 578, 32767, 32767, 32767, 32767, 32767, 298, 32767, 315, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 400, 535, 301, 303, 304, 32767, 32767, 32767, 32767, 376, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 153, 153, 3, 3, 356, 153, 153, 153, 356, 356, 153, 356, 356, 356, 153, 153, 153, 153, 153, 153, 153, 283, 186, 265, 268, 250, 250, 153, 368, 153, 402, 402, 411); + protected array $goto = array(200, 168, 200, 200, 200, 1066, 1098, 716, 447, 681, 641, 678, 442, 344, 340, 341, 343, 612, 446, 345, 448, 658, 480, 725, 569, 569, 569, 569, 1242, 623, 171, 171, 171, 171, 224, 201, 197, 197, 181, 183, 219, 206, 197, 197, 197, 197, 197, 1192, 198, 198, 198, 198, 198, 1192, 191, 192, 193, 194, 195, 196, 221, 219, 222, 556, 557, 437, 558, 561, 562, 563, 564, 565, 566, 567, 568, 172, 173, 174, 199, 175, 176, 177, 169, 178, 179, 180, 182, 218, 220, 223, 241, 246, 247, 258, 259, 261, 262, 263, 264, 265, 266, 267, 271, 272, 273, 274, 281, 284, 296, 297, 323, 324, 443, 444, 445, 617, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 192, 193, 194, 195, 196, 221, 202, 203, 204, 205, 242, 184, 185, 186, 207, 203, 187, 243, 167, 208, 209, 188, 210, 211, 212, 189, 213, 214, 170, 215, 216, 217, 190, 880, 286, 283, 286, 286, 877, 1122, 254, 254, 254, 254, 254, 602, 358, 878, 619, 755, 657, 659, 1003, 441, 679, 632, 858, 852, 703, 706, 1038, 714, 723, 1034, 730, 919, 876, 919, 919, 435, 252, 252, 252, 252, 249, 255, 1069, 1069, 701, 980, 1397, 1397, 1061, 1077, 1078, 350, 935, 930, 931, 944, 886, 932, 883, 933, 934, 884, 887, 1397, 938, 891, 858, 912, 858, 890, 356, 1041, 1041, 873, 351, 350, 873, 1128, 1124, 1125, 531, 643, 643, 1400, 1400, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 609, 618, 1141, 1066, 1298, 410, 413, 620, 624, 1298, 1298, 1097, 1099, 1101, 1066, 728, 1298, 527, 719, 1066, 1139, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 873, 713, 1066, 1066, 1066, 1066, 674, 675, 1298, 692, 693, 694, 854, 1298, 1298, 1298, 1298, 713, 475, 1298, 713, 475, 1298, 1298, 1379, 1379, 1379, 1379, 1387, 580, 573, 1072, 1071, 894, 366, 968, 968, 952, 1148, 1176, 1149, 953, 486, 486, 366, 366, 363, 363, 363, 363, 571, 906, 486, 498, 893, 571, 571, 366, 366, 1024, 500, 366, 571, 1414, 457, 408, 316, 573, 580, 604, 605, 317, 615, 621, 607, 637, 638, 519, 575, 520, 680, 366, 366, 28, 473, 526, 995, 426, 724, 997, 997, 997, 997, 1075, 1076, 473, 1348, 1348, 991, 998, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1345, 1345, 330, 314, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 257, 257, 495, 1372, 1373, 1374, 1375, 873, 907, 895, 1110, 1114, 1359, 466, 939, 466, 940, 359, 360, 1188, 466, 466, 1006, 1090, 1370, 651, 653, 655, 702, 1370, 1370, 559, 559, 686, 431, 559, 1370, 559, 559, 559, 559, 559, 559, 559, 559, 996, 346, 574, 599, 574, 8, 455, 9, 574, 636, 599, 870, 411, 479, 1381, 1381, 1381, 1381, 613, 635, 986, 575, 1160, 911, 417, 489, 616, 490, 491, 899, 896, 1171, 1046, 1289, 904, 1111, 758, 1405, 1406, 1057, 1366, 560, 560, 418, 496, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 1027, 908, 1008, 999, 1115, 754, 385, 902, 572, 1036, 1031, 1162, 0, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 0, 338, 466, 0, 466, 466, 1291, 0, 0, 1113, 0, 1293, 0, 0, 0, 1368, 1368, 1113, 630, 644, 647, 648, 649, 650, 671, 672, 673, 727, 729, 0, 625, 626, 423, 424, 957, 1178, 0, 690, 0, 691, 0, 428, 429, 430, 0, 704, 1043, 0, 432, 0, 0, 0, 354, 0, 898, 0, 684, 1022, 0, 277, 0, 329, 892, 449, 0, 0, 329, 329, 1294, 1295, 0, 1281, 0, 0, 1288, 0, 0, 868, 0, 449, 0, 0, 1274, 972, 1281, 1073, 1073, 1275, 1278, 973, 0, 1279, 685, 1084, 1080, 1081, 0, 1296, 1356, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, 763); + protected array $gotoCheck = array(42, 42, 42, 42, 42, 73, 130, 73, 66, 66, 56, 56, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 158, 9, 107, 107, 107, 107, 158, 107, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 15, 23, 23, 23, 23, 26, 15, 5, 5, 5, 5, 5, 48, 97, 27, 133, 48, 48, 48, 49, 13, 48, 13, 12, 6, 48, 48, 48, 48, 48, 48, 48, 25, 25, 25, 25, 43, 5, 5, 5, 5, 5, 5, 89, 89, 89, 89, 190, 190, 89, 89, 89, 176, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 190, 15, 15, 12, 45, 12, 15, 187, 107, 107, 22, 176, 176, 22, 15, 15, 15, 76, 108, 108, 190, 190, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 180, 8, 8, 73, 73, 59, 59, 59, 59, 73, 73, 129, 129, 129, 73, 8, 73, 8, 8, 73, 8, 73, 73, 73, 73, 73, 73, 73, 73, 73, 22, 7, 73, 73, 73, 73, 86, 86, 73, 86, 86, 86, 7, 73, 73, 73, 73, 7, 83, 73, 7, 83, 73, 73, 9, 9, 9, 9, 189, 76, 76, 119, 119, 35, 14, 9, 9, 73, 148, 148, 148, 73, 156, 156, 14, 14, 24, 24, 24, 24, 19, 35, 156, 84, 35, 19, 19, 14, 14, 103, 84, 14, 19, 14, 83, 62, 76, 76, 76, 76, 76, 76, 76, 76, 104, 76, 76, 162, 14, 162, 64, 14, 14, 76, 19, 162, 93, 93, 93, 19, 19, 19, 19, 120, 120, 19, 178, 178, 19, 19, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 177, 177, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 5, 5, 184, 184, 184, 186, 186, 22, 16, 16, 16, 16, 14, 23, 65, 23, 65, 97, 97, 157, 23, 23, 16, 115, 133, 85, 85, 85, 117, 133, 133, 164, 164, 121, 14, 164, 133, 164, 164, 164, 164, 164, 164, 164, 164, 16, 29, 9, 9, 9, 46, 113, 46, 9, 80, 9, 18, 9, 9, 133, 133, 133, 133, 2, 2, 92, 14, 16, 16, 28, 9, 9, 9, 9, 39, 37, 155, 110, 168, 9, 132, 99, 9, 9, 114, 133, 181, 181, 31, 159, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 50, 41, 96, 50, 135, 50, 140, 9, 50, 50, 50, 151, -1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, -1, 9, 23, -1, 23, 23, 14, -1, -1, 133, -1, 20, -1, -1, -1, 133, 133, 133, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, -1, 17, 17, 82, 82, 17, 17, -1, 82, -1, 82, -1, 82, 82, 82, -1, 82, 17, -1, 82, -1, -1, -1, 82, -1, 17, -1, 17, 17, -1, 24, -1, 24, 17, 118, -1, -1, 24, 24, 20, 20, -1, 20, -1, -1, 17, -1, -1, 20, -1, 118, -1, -1, 79, 79, 20, 118, 118, 79, 79, 79, -1, 79, 118, 118, 118, 118, -1, 20, 20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24); + protected array $gotoBase = array(0, 0, -255, 0, 0, 171, 176, 282, 251, 10, 0, 0, -114, -161, 22, -190, -46, 89, 156, 71, 144, 0, -44, 160, 331, 191, 163, 172, 138, 159, 0, 49, 0, 0, 0, -59, 0, 142, 0, 161, 0, 58, -1, 175, 0, 204, -293, 0, -555, 164, 501, 0, 0, 0, 0, 0, -34, 0, 0, 216, 0, 0, 310, 0, 126, 413, -236, 0, 0, 0, 0, 0, 0, -5, 0, 0, -32, 0, 0, 199, 152, 189, 62, 26, -145, -58, -442, 0, 0, -79, 0, 0, 146, 67, 0, 0, 57, -324, 0, 74, 0, 0, 0, 312, 318, 0, 0, -7, 3, 0, 110, 0, 0, 181, 68, 158, 0, 154, 334, 35, 93, 150, 0, 0, 0, 0, 0, 0, 0, 269, 4, 0, 107, 169, 0, 60, 0, 0, 0, 0, -241, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 65, 0, 0, 0, 129, 296, 185, -254, 47, 0, 0, -146, 0, 202, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, -86, 77, 143, 157, 229, 257, 0, 0, 111, 0, 34, 203, 0, 285, -101, 0, 0); + protected array $gotoDefault = array(-32768, 532, 765, 7, 766, 961, 841, 850, 596, 550, 726, 355, 645, 438, 1364, 937, 1177, 614, 869, 1307, 1313, 474, 872, 335, 752, 949, 920, 921, 414, 401, 885, 412, 669, 646, 513, 905, 470, 897, 505, 900, 469, 909, 166, 434, 529, 913, 6, 916, 578, 947, 1001, 402, 924, 403, 697, 926, 598, 928, 929, 409, 415, 416, 1182, 606, 642, 941, 260, 600, 942, 400, 943, 951, 405, 407, 707, 485, 524, 518, 427, 1143, 601, 629, 666, 463, 492, 640, 652, 639, 499, 450, 433, 334, 985, 993, 506, 483, 1007, 357, 1015, 760, 1190, 660, 508, 1023, 661, 1030, 1033, 551, 552, 497, 1045, 269, 1048, 509, 1058, 26, 687, 1063, 1064, 688, 662, 1086, 663, 689, 664, 1088, 482, 1191, 481, 1100, 1109, 471, 1112, 1353, 472, 1116, 268, 1119, 285, 361, 384, 451, 1126, 1127, 12, 1133, 717, 718, 25, 279, 528, 1161, 708, 1167, 278, 1170, 468, 1189, 467, 1262, 1264, 579, 510, 1282, 320, 1285, 700, 525, 1290, 464, 1355, 465, 553, 493, 342, 554, 1398, 313, 364, 339, 570, 321, 365, 555, 494, 1361, 1369, 336, 34, 1388, 1399, 611, 634); + protected array $ruleToNonTerminal = array(0, 1, 3, 3, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 25, 25, 50, 69, 69, 72, 72, 71, 70, 70, 63, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 80, 80, 26, 26, 27, 27, 27, 27, 27, 88, 88, 90, 90, 83, 83, 91, 91, 92, 92, 92, 84, 84, 87, 87, 85, 85, 93, 94, 94, 57, 57, 65, 65, 68, 68, 68, 67, 95, 95, 96, 58, 58, 58, 58, 97, 97, 98, 98, 99, 99, 100, 101, 101, 102, 102, 103, 103, 55, 55, 51, 51, 105, 53, 53, 106, 52, 52, 54, 54, 64, 64, 64, 64, 81, 81, 109, 109, 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, 110, 110, 110, 115, 115, 115, 115, 89, 89, 118, 118, 118, 119, 119, 116, 116, 120, 120, 122, 122, 123, 123, 117, 124, 124, 121, 125, 125, 125, 125, 113, 113, 82, 82, 82, 20, 20, 127, 127, 127, 128, 128, 128, 126, 126, 130, 130, 130, 130, 130, 130, 129, 129, 60, 131, 131, 132, 61, 134, 134, 135, 135, 136, 136, 86, 137, 137, 137, 137, 137, 137, 137, 137, 143, 143, 144, 144, 145, 145, 145, 145, 145, 146, 147, 147, 142, 142, 138, 138, 141, 141, 149, 149, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 139, 150, 150, 152, 151, 151, 140, 140, 114, 114, 153, 153, 155, 155, 155, 154, 154, 62, 104, 156, 156, 56, 56, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 163, 164, 164, 165, 157, 157, 162, 162, 166, 167, 167, 168, 169, 170, 170, 170, 170, 19, 19, 73, 73, 73, 73, 158, 158, 158, 158, 172, 172, 161, 161, 161, 159, 159, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, 108, 181, 181, 181, 181, 160, 160, 160, 160, 160, 160, 160, 160, 59, 59, 175, 175, 175, 175, 175, 182, 182, 171, 171, 171, 171, 183, 183, 183, 183, 183, 74, 74, 66, 66, 66, 66, 133, 133, 133, 133, 186, 185, 174, 174, 174, 174, 174, 174, 173, 173, 173, 184, 184, 184, 184, 107, 180, 188, 188, 187, 187, 189, 189, 189, 189, 189, 189, 189, 189, 177, 177, 177, 177, 176, 191, 190, 190, 190, 190, 190, 190, 190, 190, 192, 192, 192, 192); + protected array $ruleToLength = array(1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, 0, 1, 1, 1, 1, 4, 3, 5, 4, 3, 4, 1, 3, 4, 1, 1, 8, 7, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, 1, 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 1, 1, 8, 9, 7, 8, 7, 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 7, 9, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, 2, 4, 2, 4, 4, 3, 1, 3, 1, 3, 2, 2, 1, 1, 3, 3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, 1, 5, 7, 5, 6, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, 0, 2, 0, 3, 5, 8, 1, 3, 3, 0, 2, 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, 4, 4, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, 3, 2, 2, 1, 1, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1); protected function initReduceCallbacks(): void { $this->reduceCallbacks = [0 => null, 1 => static function ($self, $stackPos) { @@ -692,35 +692,35 @@ protected function initReduceCallbacks(): void }, 329 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos - (4 - 2)]; }, 330 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos - (3 - 2)]); - }, 331 => static function ($self, $stackPos) { $self->semValue = array(); - }, 332 => static function ($self, $stackPos) { + }, 331 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos - (4 - 2)]; - }, 333 => static function ($self, $stackPos) { + }, 332 => static function ($self, $stackPos) { $self->semValue = array(new Node\Arg($self->semStack[$stackPos - (4 - 2)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]))); + }, 333 => static function ($self, $stackPos) { + $self->semValue = array(new Node\Arg($self->semStack[$stackPos - (3 - 1)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos - (3 - 1)])), $self->semStack[$stackPos - (3 - 3)]); }, 334 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos - (3 - 2)]); + $self->semValue = array($self->semStack[$stackPos - (1 - 1)]); }, 335 => static function ($self, $stackPos) { - $self->semValue = array(new Node\Arg($self->semStack[$stackPos - (3 - 1)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos - (3 - 1)])), $self->semStack[$stackPos - (3 - 3)]); + $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)]; + $self->semValue = $self->semStack[$stackPos - (3 - 1)]; }, 336 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos - (1 - 1)]); }, 337 => static function ($self, $stackPos) { $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)]; $self->semValue = $self->semStack[$stackPos - (3 - 1)]; }, 338 => static function ($self, $stackPos) { - $self->semValue = new Node\VariadicPlaceholder($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \true, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); }, 339 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos - (1 - 1)]); + $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \false, \true, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); }, 340 => static function ($self, $stackPos) { - $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)]; - $self->semValue = $self->semStack[$stackPos - (3 - 1)]; + $self->semValue = new Node\VariadicPlaceholder($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); }, 341 => static function ($self, $stackPos) { - $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \true, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\ArgPlaceholder(null, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); }, 342 => static function ($self, $stackPos) { - $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], \false, \true, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])); - }, 343 => static function ($self, $stackPos) { $self->semValue = new Node\Arg($self->semStack[$stackPos - (3 - 3)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (3 - 1)]); + }, 343 => static function ($self, $stackPos) { + $self->semValue = new Node\ArgPlaceholder($self->semStack[$stackPos - (3 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos])); }, 344 => static function ($self, $stackPos) { $self->semValue = new Node\Arg($self->semStack[$stackPos - (1 - 1)], \false, \false, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])); }, 345 => static function ($self, $stackPos) { diff --git a/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php index 6edd6cfe775..c743bfa5799 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php @@ -1051,7 +1051,7 @@ protected function addPropertyNameToHooks(\PhpParser\Node $node): void $hook->setAttribute('propertyName', $name); } } - /** @param array $args */ + /** @param array $args */ private function isSimpleExit(array $args): bool { if (\count($args) === 0) { @@ -1064,7 +1064,7 @@ private function isSimpleExit(array $args): bool return \false; } /** - * @param array $args + * @param array $args * @param array $attrs */ protected function createExitExpr(string $name, int $namePos, array $args, array $attrs): Expr diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php index 6191558cf2d..dfd50bf2730 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php @@ -28,6 +28,10 @@ protected function pVariadicPlaceholder(Node\VariadicPlaceholder $node): string { return '...'; } + protected function pArgPlaceholder(Node\ArgPlaceholder $node): string + { + return ($node->name ? $node->name->toString() . ': ' : '') . '?'; + } protected function pConst(Node\Const_ $node): string { return $node->name . ' = ' . $this->p($node->value); diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php index 343d79838f2..fc41a17d7ac 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -1072,16 +1072,20 @@ protected function staticDereferenceLhsRequiresParens(\PhpParser\Node $node): bo */ protected function newOperandRequiresParens(\PhpParser\Node $node): bool { - if ($node instanceof \PhpParser\Node\Name || $node instanceof Expr\Variable) { - return \false; - } - if ($node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || $node instanceof Expr\NullsafePropertyFetch) { - return $this->newOperandRequiresParens($node->var); - } - if ($node instanceof Expr\StaticPropertyFetch) { - return $this->newOperandRequiresParens($node->class); + while (\true) { + if ($node instanceof \PhpParser\Node\Name || $node instanceof Expr\Variable) { + return \false; + } + if ($node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || $node instanceof Expr\NullsafePropertyFetch) { + $node = $node->var; + continue; + } + if ($node instanceof Expr\StaticPropertyFetch) { + $node = $node->class; + continue; + } + return \true; } - return \true; } /** * Print modifiers, including trailing whitespace. @@ -1350,7 +1354,7 @@ protected function initializeEmptyListInsertionMap(): void } // TODO Insertion into empty statement lists. // [$find, $extraLeft, $extraRight] - $this->emptyListInsertionMap = [Expr\ArrowFunction::class . '->params' => ['(', '', ''], Expr\Closure::class . '->uses' => [')', ' use (', ')'], Expr\Closure::class . '->params' => ['(', '', ''], Expr\FuncCall::class . '->args' => ['(', '', ''], Expr\MethodCall::class . '->args' => ['(', '', ''], Expr\NullsafeMethodCall::class . '->args' => ['(', '', ''], Expr\New_::class . '->args' => ['(', '', ''], PrintableNewAnonClassNode::class . '->args' => ['(', '', ''], PrintableNewAnonClassNode::class . '->implements' => [null, ' implements ', ''], Expr\StaticCall::class . '->args' => ['(', '', ''], Stmt\Class_::class . '->implements' => [null, ' implements ', ''], Stmt\Enum_::class . '->implements' => [null, ' implements ', ''], Stmt\ClassMethod::class . '->params' => ['(', '', ''], Stmt\Interface_::class . '->extends' => [null, ' extends ', ''], Stmt\Function_::class . '->params' => ['(', '', ''], Stmt\Interface_::class . '->attrGroups' => [null, '', "\n"], Stmt\Class_::class . '->attrGroups' => [null, '', "\n"], Stmt\ClassConst::class . '->attrGroups' => [null, '', "\n"], Stmt\ClassMethod::class . '->attrGroups' => [null, '', "\n"], Stmt\Function_::class . '->attrGroups' => [null, '', "\n"], Stmt\Property::class . '->attrGroups' => [null, '', "\n"], Stmt\Trait_::class . '->attrGroups' => [null, '', "\n"], Expr\ArrowFunction::class . '->attrGroups' => [null, '', ' '], Expr\Closure::class . '->attrGroups' => [null, '', ' '], Stmt\Const_::class . '->attrGroups' => [null, '', "\n"], PrintableNewAnonClassNode::class . '->attrGroups' => [\T_NEW, ' ', '']]; + $this->emptyListInsertionMap = [Expr\ArrowFunction::class . '->params' => ['(', '', ''], Expr\Closure::class . '->uses' => [')', ' use (', ')'], Expr\Closure::class . '->params' => ['(', '', ''], Expr\FuncCall::class . '->args' => ['(', '', ''], Expr\MethodCall::class . '->args' => ['(', '', ''], Expr\NullsafeMethodCall::class . '->args' => ['(', '', ''], Expr\New_::class . '->args' => ['(', '', ''], PrintableNewAnonClassNode::class . '->args' => ['(', '', ''], PrintableNewAnonClassNode::class . '->implements' => [null, ' implements ', ''], Expr\StaticCall::class . '->args' => ['(', '', ''], Stmt\Class_::class . '->implements' => [null, ' implements ', ''], Stmt\Enum_::class . '->implements' => [null, ' implements ', ''], Stmt\ClassMethod::class . '->params' => ['(', '', ''], Stmt\Interface_::class . '->extends' => [null, ' extends ', ''], Stmt\Function_::class . '->params' => ['(', '', ''], Stmt\Interface_::class . '->attrGroups' => [null, '', "\n"], Stmt\Class_::class . '->attrGroups' => [null, '', "\n"], Stmt\Enum_::class . '->attrGroups' => [null, '', "\n"], Stmt\EnumCase::class . '->attrGroups' => [null, '', "\n"], Stmt\ClassConst::class . '->attrGroups' => [null, '', "\n"], Stmt\ClassMethod::class . '->attrGroups' => [null, '', "\n"], Stmt\Function_::class . '->attrGroups' => [null, '', "\n"], Stmt\Property::class . '->attrGroups' => [null, '', "\n"], Stmt\Trait_::class . '->attrGroups' => [null, '', "\n"], Expr\ArrowFunction::class . '->attrGroups' => [null, '', ' '], Expr\Closure::class . '->attrGroups' => [null, '', ' '], Stmt\Const_::class . '->attrGroups' => [null, '', "\n"], PrintableNewAnonClassNode::class . '->attrGroups' => [\T_NEW, ' ', '']]; } protected function initializeModifierChangeMap(): void { diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index d3aeb82871e..eb2da0ecc34 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -31,7 +31,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202609\AutoloadIncluder'); humbug_phpscoper_expose_class('SomeClass', 'RectorPrefix202609\SomeClass'); -humbug_phpscoper_expose_class('ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277', 'RectorPrefix202609\ComposerAutoloaderInit1574d9721774d0e974b8eb7abd23a277'); +humbug_phpscoper_expose_class('ComposerAutoloaderInit45619ed68c5a66bf26cf1b24fc24f27a', 'RectorPrefix202609\ComposerAutoloaderInit45619ed68c5a66bf26cf1b24fc24f27a'); humbug_phpscoper_expose_class('Product', 'RectorPrefix202609\Product'); humbug_phpscoper_expose_class('SomeTest', 'RectorPrefix202609\SomeTest'); humbug_phpscoper_expose_class('ValueError', 'RectorPrefix202609\ValueError'); From f4aa224edb9b0630fb43826d4cb6a49b62e48d4c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 13 Sep 2026 20:17:44 +0000 Subject: [PATCH 169/169] Rector 2.6.7 --- src/Application/VersionResolver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index d2adf406d22..c2848e33ade 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,7 +19,7 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '85a5406bd628b1eb1d53c529e53ef33b873e1fb9'; + public const PACKAGE_VERSION = '2.6.7'; /** * @api * @var string