From 9ccb6367c0233de7427dad3861eaf0c1ec791890 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 5 Aug 2023 10:29:33 +0000 Subject: [PATCH] Updated Rector to commit 9b03d8367cd3c69b36b8b1aedf458b191f46655a https://github.com/rectorphp/rector-src/commit/9b03d8367cd3c69b36b8b1aedf458b191f46655a [TypeDeclaration] Add ReturnUnionTypeRector (#4655) --- config/set/type-declaration.php | 3 +- docs/rector_rules_overview.md | 34 ++++- .../Rector/FuncCall/SetTypeToCastRector.php | 1 + .../PreparedValueToEarlyReturnRector.php | 2 +- rules/Php72/Rector/Assign/ListEachRector.php | 2 + .../Array_/FirstClassCallableRector.php | 1 + ...amTypeBasedOnPHPUnitDataProviderRector.php | 2 +- .../ClassMethod/ReturnUnionTypeRector.php | 121 ++++++++++++++++++ .../AddPropertyTypeDeclarationRector.php | 2 +- 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/composer/installed.json | 12 +- vendor/composer/installed.php | 2 +- vendor/phpstan/phpstan/phpstan.phar | Bin 21953985 -> 21970693 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 ++-- vendor/sebastian/diff/src/Parser.php | 2 +- .../Loader/DefinitionFileLoader.php | 2 +- vendor/symfony/console/Application.php | 2 +- vendor/symfony/console/Command/Command.php | 6 +- .../console/Completion/CompletionInput.php | 4 +- .../Compiler/AnalyzeServiceReferencesPass.php | 4 +- .../Compiler/DecoratorServicePass.php | 2 +- .../dependency-injection/Dumper/PhpDumper.php | 2 +- vendor/tracy/tracy/src/Tracy/Helpers.php | 2 +- 27 files changed, 207 insertions(+), 53 deletions(-) create mode 100644 rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php diff --git a/config/set/type-declaration.php b/config/set/type-declaration.php index e0d0ce08a36..11860835cd5 100644 --- a/config/set/type-declaration.php +++ b/config/set/type-declaration.php @@ -29,6 +29,7 @@ use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNewArrayRector use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictParamRector; use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedCallRector; use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedPropertyRector; +use Rector\TypeDeclaration\Rector\ClassMethod\ReturnUnionTypeRector; use Rector\TypeDeclaration\Rector\ClassMethod\StrictArrayParamDimFetchRector; use Rector\TypeDeclaration\Rector\ClassMethod\StrictStringParamConcatRector; use Rector\TypeDeclaration\Rector\Empty_\EmptyOnNullableObjectToInstanceOfRector; @@ -42,6 +43,6 @@ use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictGetterMethodRe use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictSetUpRector; use Rector\TypeDeclaration\Rector\Property\VarAnnotationIncorrectNullableRector; return static function (RectorConfig $rectorConfig) : void { - $rectorConfig->rules([AddArrowFunctionReturnTypeRector::class, ParamTypeByMethodCallTypeRector::class, TypedPropertyFromAssignsRector::class, ReturnAnnotationIncorrectNullableRector::class, VarAnnotationIncorrectNullableRector::class, ParamAnnotationIncorrectNullableRector::class, AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, TypedPropertyFromStrictConstructorReadonlyClassRector::class, ParamTypeFromStrictTypedPropertyRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromReturnNewRector::class, TypedPropertyFromStrictGetterMethodReturnTypeRector::class, AddMethodCallBasedStrictParamTypeRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, ReturnTypeFromStrictParamRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class, AddParamTypeSplFixedArrayRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, AddParamTypeFromPropertyTypeRector::class, AddReturnTypeDeclarationFromYieldsRector::class, ReturnTypeFromReturnDirectArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, ReturnTypeFromStrictTypedCallRector::class, ReturnNeverTypeRector::class, EmptyOnNullableObjectToInstanceOfRector::class, PropertyTypeFromStrictSetterGetterRector::class, ReturnTypeFromStrictTernaryRector::class, BoolReturnTypeFromStrictScalarReturnsRector::class, NumericReturnTypeFromStrictScalarReturnsRector::class, StrictArrayParamDimFetchRector::class]); + $rectorConfig->rules([AddArrowFunctionReturnTypeRector::class, ParamTypeByMethodCallTypeRector::class, TypedPropertyFromAssignsRector::class, ReturnAnnotationIncorrectNullableRector::class, VarAnnotationIncorrectNullableRector::class, ParamAnnotationIncorrectNullableRector::class, AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, TypedPropertyFromStrictConstructorReadonlyClassRector::class, ParamTypeFromStrictTypedPropertyRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromReturnNewRector::class, TypedPropertyFromStrictGetterMethodReturnTypeRector::class, AddMethodCallBasedStrictParamTypeRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, ReturnTypeFromStrictParamRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class, AddParamTypeSplFixedArrayRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, AddParamTypeFromPropertyTypeRector::class, AddReturnTypeDeclarationFromYieldsRector::class, ReturnTypeFromReturnDirectArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, ReturnTypeFromStrictTypedCallRector::class, ReturnNeverTypeRector::class, EmptyOnNullableObjectToInstanceOfRector::class, PropertyTypeFromStrictSetterGetterRector::class, ReturnTypeFromStrictTernaryRector::class, BoolReturnTypeFromStrictScalarReturnsRector::class, NumericReturnTypeFromStrictScalarReturnsRector::class, StrictArrayParamDimFetchRector::class, ReturnUnionTypeRector::class]); $rectorConfig->rule(StrictStringParamConcatRector::class); }; diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md index 88ba905fab8..f859e498812 100644 --- a/docs/rector_rules_overview.md +++ b/docs/rector_rules_overview.md @@ -1,4 +1,4 @@ -# 363 Rules Overview +# 364 Rules Overview
@@ -52,7 +52,7 @@ - [Transform](#transform) (22) -- [TypeDeclaration](#typedeclaration) (44) +- [TypeDeclaration](#typedeclaration) (45) - [Visibility](#visibility) (3) @@ -4855,8 +4855,7 @@ Change `money_format()` to equivalent `number_format()` ```diff -$value = money_format('%i', $value); -+$roundedValue = round($value, 2, PHP_ROUND_HALF_ODD); -+$value = number_format($roundedValue, 2, '.', ''); ++$value = number_format(round($value, 2, PHP_ROUND_HALF_ODD), 2, '.', ''); ```
@@ -8186,6 +8185,33 @@ Add return method return type based on strict typed property
+### ReturnUnionTypeRector + +Add union return type + +- class: [`Rector\TypeDeclaration\Rector\ClassMethod\ReturnUnionTypeRector`](../rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php) + +```diff + final class SomeClass + { +- public function getData() ++ public function getData(): null|\DateTime|\stdClass + { + if (rand(0, 1)) { + return null; + } + + if (rand(0, 1)) { + return new DateTime('now'); + } + + return new stdClass; + } + } +``` + +
+ ### StrictArrayParamDimFetchRector Add array type based on array dim fetch use diff --git a/rules/CodeQuality/Rector/FuncCall/SetTypeToCastRector.php b/rules/CodeQuality/Rector/FuncCall/SetTypeToCastRector.php index f0765675544..69b7cdbe590 100644 --- a/rules/CodeQuality/Rector/FuncCall/SetTypeToCastRector.php +++ b/rules/CodeQuality/Rector/FuncCall/SetTypeToCastRector.php @@ -71,6 +71,7 @@ CODE_SAMPLE } /** * @param FuncCall|Expression|Assign|Expr\ArrayItem|Node\Arg $node + * @return null|int|\PhpParser\Node\Stmt\Expression|\PhpParser\Node\Expr\Assign|\PhpParser\Node\Expr\Cast */ public function refactor(Node $node) { diff --git a/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php b/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php index ca8ea024846..5ee69e7db7c 100644 --- a/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php +++ b/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php @@ -81,7 +81,7 @@ CODE_SAMPLE /** * @param StmtsAwareInterface $node */ - public function refactor(Node $node) + public function refactor(Node $node) : ?StmtsAwareInterface { if ($node->stmts === null) { return null; diff --git a/rules/Php72/Rector/Assign/ListEachRector.php b/rules/Php72/Rector/Assign/ListEachRector.php index b5003d69175..85f98dcd02b 100644 --- a/rules/Php72/Rector/Assign/ListEachRector.php +++ b/rules/Php72/Rector/Assign/ListEachRector.php @@ -8,6 +8,7 @@ use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\List_; +use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\NodeManipulator\AssignManipulator; @@ -57,6 +58,7 @@ CODE_SAMPLE } /** * @param Expression $node + * @return null|Expression|Stmt[] */ public function refactor(Node $node) { diff --git a/rules/Php81/Rector/Array_/FirstClassCallableRector.php b/rules/Php81/Rector/Array_/FirstClassCallableRector.php index fbc859f362f..ab48aa4e0e8 100644 --- a/rules/Php81/Rector/Array_/FirstClassCallableRector.php +++ b/rules/Php81/Rector/Array_/FirstClassCallableRector.php @@ -85,6 +85,7 @@ CODE_SAMPLE } /** * @param Array_ $node + * @return null|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\MethodCall */ public function refactorWithScope(Node $node, Scope $scope) { diff --git a/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php b/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php index 1f01f8a5b76..00ea15240fc 100644 --- a/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php +++ b/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php @@ -105,7 +105,7 @@ CODE_SAMPLE /** * @param Class_ $node */ - public function refactor(Node $node) + public function refactor(Node $node) : ?Node { if (!$this->testsNodeAnalyzer->isInTestClass($node)) { return null; diff --git a/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php b/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php new file mode 100644 index 00000000000..6e41c5980a3 --- /dev/null +++ b/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php @@ -0,0 +1,121 @@ +returnTypeInferer = $returnTypeInferer; + $this->classMethodReturnTypeOverrideGuard = $classMethodReturnTypeOverrideGuard; + $this->unionTypeMapper = $unionTypeMapper; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add union return type', [new CodeSample(<<<'CODE_SAMPLE' +final class SomeClass +{ + public function getData() + { + if (rand(0, 1)) { + return null; + } + + if (rand(0, 1)) { + return new DateTime('now'); + } + + return new stdClass; + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + public function getData(): null|\DateTime|\stdClass + { + if (rand(0, 1)) { + return null; + } + + if (rand(0, 1)) { + return new DateTime('now'); + } + + return new stdClass; + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [ClassMethod::class, Function_::class, Closure::class]; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::NULLABLE_TYPE; + } + /** + * @param ClassMethod|Function_|Closure $node + */ + public function refactorWithScope(Node $node, Scope $scope) : ?Node + { + if ($node->stmts === null) { + return null; + } + if ($node->returnType instanceof Node) { + return null; + } + if ($node instanceof ClassMethod && $this->classMethodReturnTypeOverrideGuard->shouldSkipClassMethod($node, $scope)) { + return null; + } + $inferReturnType = $this->returnTypeInferer->inferFunctionLike($node); + if (!$inferReturnType instanceof UnionType) { + return null; + } + $returnType = $this->unionTypeMapper->mapToPhpParserNode($inferReturnType, TypeKind::RETURN); + if (!$returnType instanceof Node) { + return null; + } + $node->returnType = $returnType; + return $node; + } +} diff --git a/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php b/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php index c4df8fead93..a25feca4f61 100644 --- a/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php +++ b/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php @@ -52,7 +52,7 @@ CODE_SAMPLE /** * @param Property $node */ - public function refactorWithScope(Node $node, Scope $scope) + public function refactorWithScope(Node $node, Scope $scope) : ?Node { // type is already known if ($node->type !== null) { diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index dea789a04e6..92a4cdd92ac 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 = '75e46c2ff65a715543aa5354c97e5d43f2a20f6c'; + public const PACKAGE_VERSION = '9b03d8367cd3c69b36b8b1aedf458b191f46655a'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-08-04 18:13:15'; + public const RELEASE_DATE = '2023-08-05 11:25:26'; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 3d7e4834d70..a293e8cdf01 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitcea0bac898b9dbcc00f708222b5dba45::getLoader(); +return ComposerAutoloaderInit6c4d03d897fd974207e52938cb1891bf::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index f9a4d77c56b..4b068abd38c 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2689,6 +2689,7 @@ return array( 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictParamRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedCallRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedCallRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedPropertyRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php', + 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnUnionTypeRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictArrayParamDimFetchRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictStringParamConcatRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\PropertyTypeFromStrictSetterGetterRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/PropertyTypeFromStrictSetterGetterRector.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 3617bb3e952..e90f12a903e 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitcea0bac898b9dbcc00f708222b5dba45 +class ComposerAutoloaderInit6c4d03d897fd974207e52938cb1891bf { private static $loader; @@ -22,17 +22,17 @@ class ComposerAutoloaderInitcea0bac898b9dbcc00f708222b5dba45 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitcea0bac898b9dbcc00f708222b5dba45', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit6c4d03d897fd974207e52938cb1891bf', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitcea0bac898b9dbcc00f708222b5dba45', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit6c4d03d897fd974207e52938cb1891bf', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit6c4d03d897fd974207e52938cb1891bf::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit6c4d03d897fd974207e52938cb1891bf::$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 8d2d06f1956..b0dc27dc166 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45 +class ComposerStaticInit6c4d03d897fd974207e52938cb1891bf { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -2943,6 +2943,7 @@ class ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictParamRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedCallRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedCallRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedPropertyRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php', + 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnUnionTypeRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictArrayParamDimFetchRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictStringParamConcatRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\PropertyTypeFromStrictSetterGetterRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/PropertyTypeFromStrictSetterGetterRector.php', @@ -3015,9 +3016,9 @@ class ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitcea0bac898b9dbcc00f708222b5dba45::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit6c4d03d897fd974207e52938cb1891bf::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit6c4d03d897fd974207e52938cb1891bf::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit6c4d03d897fd974207e52938cb1891bf::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 699a5a0466d..3ed1686e0cd 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -976,17 +976,17 @@ }, { "name": "phpstan\/phpstan", - "version": "1.10.26", - "version_normalized": "1.10.26.0", + "version": "1.10.27", + "version_normalized": "1.10.27.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpstan.git", - "reference": "5d660cbb7e1b89253a47147ae44044f49832351f" + "reference": "a9f44dcea06f59d1363b100bb29f297b311fa640" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/5d660cbb7e1b89253a47147ae44044f49832351f", - "reference": "5d660cbb7e1b89253a47147ae44044f49832351f", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/a9f44dcea06f59d1363b100bb29f297b311fa640", + "reference": "a9f44dcea06f59d1363b100bb29f297b311fa640", "shasum": "" }, "require": { @@ -995,7 +995,7 @@ "conflict": { "phpstan\/phpstan-shim": "*" }, - "time": "2023-07-19T12:44:37+00:00", + "time": "2023-08-05T09:57:55+00:00", "bin": [ "phpstan", "phpstan.phar" diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index bc0d0f2a37f..5b7ead884d6 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202308; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.0', 'version' => '3.1.0.0', 'reference' => '4bff79ddd77851fe3cdd11616ed3f92841ba5bd2', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.3.2', 'version' => '3.3.2.0', 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.1', 'version' => '3.0.1.0', 'reference' => '531bfb9d15f8aa57454f5f0285b18bec903b8fb7', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'eb1a7e72e159136a832f2c0467de5570bdc208ae', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/neon' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '372d945c156ee7f35c953339fb164538339e6283', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/neon', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.16.0', 'version' => '4.16.0.0', 'reference' => '19526a33fb561ef417e822e85f08a00db4059c17', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.23.1', 'version' => '1.23.1.0', 'reference' => '846ae76eef31c6d7790fac9bc399ecee45160b26', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.10.26', 'version' => '1.10.26.0', 'reference' => '5d660cbb7e1b89253a47147ae44044f49832351f', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/event-dispatcher' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', 'reference' => '3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '6e7e587714fff7a83dcc7025aee42ab3b265ae05', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.10.0', 'version' => '2.10.0.0', 'reference' => 'f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.13.0', 'version' => '1.13.0.0', 'reference' => 'cff482bbad5848ecbe8b57da57e4e213b03619aa', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => '0.15.x-dev', 1 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dbc34e9e73eac53684db3324dde9b6abfca745bb', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '254b63f1f03de37ebe347b2399ae416f8465d82d', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '04381624cfee50410f0fd06f4cedd21fbd883535', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'a0af12a8d67d0edefe6cffd22cdced62729a1dd9', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/config' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'b47ca238b03e7b0d7880ffd1cf06e8d637ca1467', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'aa5d64ad3f63f2e48964fc81ee45cb318a723898', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/contracts' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '9e4b5e4e44e7620475dbceecf7c72c3883f3ea35', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/dependency-injection' => array('pretty_version' => 'v6.1.12', 'version' => '6.1.12.0', 'reference' => '360c9d0948e1fe675336346d5862e8e55b378d90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/event-dispatcher-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/filesystem' => array('pretty_version' => 'v6.3.1', 'version' => '6.3.1.0', 'reference' => 'edd36776956f2a6fcf577edb5b05eb0e3bdc52ae', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.3.3', 'version' => '6.3.3.0', 'reference' => '9915db259f67d21eefee768c1abcf1cc61b1fc9e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-client-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0|3.0')), 'symfony/string' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => '53d1a83225002635bca3482fcbf963001313fb68', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tracy/tracy' => array('pretty_version' => 'v2.10.3', 'version' => '2.10.3.0', 'reference' => 'ec6637866d6836ef6f8de2bab63ae7708b23bcd7', 'type' => 'library', 'install_path' => __DIR__ . '/../tracy/tracy', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); +return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.0', 'version' => '3.1.0.0', 'reference' => '4bff79ddd77851fe3cdd11616ed3f92841ba5bd2', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.3.2', 'version' => '3.3.2.0', 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.1', 'version' => '3.0.1.0', 'reference' => '531bfb9d15f8aa57454f5f0285b18bec903b8fb7', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.17.1', 'version' => '10.17.1.0', 'reference' => 'eb1a7e72e159136a832f2c0467de5570bdc208ae', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/neon' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '372d945c156ee7f35c953339fb164538339e6283', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/neon', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.16.0', 'version' => '4.16.0.0', 'reference' => '19526a33fb561ef417e822e85f08a00db4059c17', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.23.1', 'version' => '1.23.1.0', 'reference' => '846ae76eef31c6d7790fac9bc399ecee45160b26', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.10.27', 'version' => '1.10.27.0', 'reference' => 'a9f44dcea06f59d1363b100bb29f297b311fa640', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/event-dispatcher' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', 'reference' => '3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '6e7e587714fff7a83dcc7025aee42ab3b265ae05', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.10.0', 'version' => '2.10.0.0', 'reference' => 'f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.13.0', 'version' => '1.13.0.0', 'reference' => 'cff482bbad5848ecbe8b57da57e4e213b03619aa', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => '0.15.x-dev', 1 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'dbc34e9e73eac53684db3324dde9b6abfca745bb', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '254b63f1f03de37ebe347b2399ae416f8465d82d', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '04381624cfee50410f0fd06f4cedd21fbd883535', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(0 => '0.15.x-dev'), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'a0af12a8d67d0edefe6cffd22cdced62729a1dd9', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/config' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'b47ca238b03e7b0d7880ffd1cf06e8d637ca1467', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'aa5d64ad3f63f2e48964fc81ee45cb318a723898', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/contracts' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '9e4b5e4e44e7620475dbceecf7c72c3883f3ea35', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/dependency-injection' => array('pretty_version' => 'v6.1.12', 'version' => '6.1.12.0', 'reference' => '360c9d0948e1fe675336346d5862e8e55b378d90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/event-dispatcher-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/filesystem' => array('pretty_version' => 'v6.3.1', 'version' => '6.3.1.0', 'reference' => 'edd36776956f2a6fcf577edb5b05eb0e3bdc52ae', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.3.3', 'version' => '6.3.3.0', 'reference' => '9915db259f67d21eefee768c1abcf1cc61b1fc9e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-client-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0|3.0')), 'symfony/string' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => '53d1a83225002635bca3482fcbf963001313fb68', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'tracy/tracy' => array('pretty_version' => 'v2.10.3', 'version' => '2.10.3.0', 'reference' => 'ec6637866d6836ef6f8de2bab63ae7708b23bcd7', 'type' => 'library', 'install_path' => __DIR__ . '/../tracy/tracy', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index 7f766674bc7116e22b9bb64897ab1e4beaa2274f..5224fbe5b1e55be9a2ec15b5e1c283c2ef0f7da7 100644 GIT binary patch delta 330191 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