From 28c719d1fbf201008f8bf07378a553135c2a8102 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 1 Sep 2022 19:30:48 +0000 Subject: [PATCH] Updated Rector to commit 8961d20f56fa4b39bb21feec1f24422398f13dba https://github.com/rectorphp/rector-src/commit/8961d20f56fa4b39bb21feec1f24422398f13dba [DX] Localize multi instance checker and privates accessor from Symplify + bump to PHPStan 1.8.3 (#2883) --- bin/rector.php | 4 +- config/config.php | 7 - .../PhpDocInfo/TokenIteratorFactory.php | 4 +- .../PhpDocParser/BetterPhpDocParser.php | 14 +- .../Parser/BetterTokenIterator.php | 4 +- .../Caching/FileSystem/DependencyResolver.php | 4 +- .../Reflection/FamilyRelationsAnalyzer.php | 4 +- .../AccessoryNonEmptyStringTypeCorrector.php | 6 +- .../Scope/PHPStanNodeScopeResolver.php | 4 +- .../AccessoryNonFalsyStringTypeMapper.php | 39 +++ .../HasOffsetValueTypeTypeMapper.php | 40 +++ .../RemoveNonExistingVarAnnotationRector.php | 20 +- .../NodeFactory/AnonymousFunctionFactory.php | 4 +- .../NonInformativeReturnTagRemover.php | 12 +- .../AddArrayReturnDocTypeRector.php | 34 ++- rules/TypeDeclaration/TypeNormalizer.php | 4 +- src/Application/VersionResolver.php | 4 +- .../Style/RectorConsoleOutputStyleFactory.php | 12 +- src/NodeManipulator/AssignManipulator.php | 12 +- src/NodeManipulator/PropertyManipulator.php | 19 +- src/PhpParser/Node/BetterNodeFinder.php | 18 +- src/Util/MultiInstanceofChecker.php | 21 ++ src/Util/Reflection/PrivatesAccessor.php | 112 +++++++++ vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 24 +- vendor/composer/autoload_psr4.php | 2 - vendor/composer/autoload_real.php | 14 +- vendor/composer/autoload_static.php | 42 +--- vendor/composer/installed.json | 230 ++++-------------- vendor/composer/installed.php | 2 +- vendor/phpstan/phpstan/README.md | 4 +- vendor/phpstan/phpstan/composer.json | 4 + vendor/phpstan/phpstan/phpstan.phar | Bin 21218944 -> 21309991 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- .../src/GeneratedConfig.php | 2 +- .../rector/rector-downgrade-php/composer.json | 2 +- .../DowngradeCovariantReturnTypeRector.php | 18 +- vendor/rector/rector-laravel/composer.json | 2 +- .../OptionalToNullsafeOperatorRector.php | 13 +- vendor/rector/rector-symfony/composer.json | 2 +- .../symfony/symfony6/symfony-return-types.php | 2 +- vendor/scoper-autoload.php | 6 - .../autowire-array-parameter/composer.json | 3 +- vendor/symplify/package-builder/composer.json | 4 +- vendor/symplify/smart-file-system/LICENSE | 25 -- .../symplify/smart-file-system/composer.json | 52 ---- .../Exception/DirectoryNotFoundException.php | 9 - .../src/Exception/FileNotFoundException.php | 9 - .../src/FileSystemFilter.php | 33 --- .../smart-file-system/src/FileSystemGuard.php | 28 --- .../src/Finder/FinderSanitizer.php | 38 --- .../src/Finder/SmartFinder.php | 66 ----- .../src/Json/JsonFileSystem.php | 55 ----- .../src/Normalizer/PathNormalizer.php | 77 ------ .../smart-file-system/src/SmartFileInfo.php | 131 ---------- .../smart-file-system/src/SmartFileSystem.php | 56 ----- vendor/symplify/symplify-kernel/README.md | 71 ------ vendor/symplify/symplify-kernel/composer.json | 50 ---- .../symplify-kernel/config/common-config.php | 31 --- vendor/symplify/symplify-kernel/phpunit.xml | 9 - .../Loader/ParameterMergingLoaderFactory.php | 22 -- .../src/ContainerBuilderFactory.php | 74 ------ .../Config/LoaderFactoryInterface.php | 11 - .../src/Contract/LightKernelInterface.php | 17 -- .../LoadExtensionConfigsCompilerPass.php | 22 -- .../src/Exception/BootException.php | 9 - .../Exception/ShouldNotHappenException.php | 12 - .../src/HttpKernel/AbstractSymplifyKernel.php | 47 ---- .../KernelBootAndApplicationRun.php | 98 -------- .../src/ValueObject/SymplifyKernelConfig.php | 15 -- .../ContainerBuilderFactoryTest.php | 19 -- .../config/some_services.php | 11 - 72 files changed, 423 insertions(+), 1480 deletions(-) create mode 100644 packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonFalsyStringTypeMapper.php create mode 100644 packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetValueTypeTypeMapper.php create mode 100644 src/Util/MultiInstanceofChecker.php create mode 100644 src/Util/Reflection/PrivatesAccessor.php delete mode 100644 vendor/symplify/smart-file-system/LICENSE delete mode 100644 vendor/symplify/smart-file-system/composer.json delete mode 100644 vendor/symplify/smart-file-system/src/Exception/DirectoryNotFoundException.php delete mode 100644 vendor/symplify/smart-file-system/src/Exception/FileNotFoundException.php delete mode 100644 vendor/symplify/smart-file-system/src/FileSystemFilter.php delete mode 100644 vendor/symplify/smart-file-system/src/FileSystemGuard.php delete mode 100644 vendor/symplify/smart-file-system/src/Finder/FinderSanitizer.php delete mode 100644 vendor/symplify/smart-file-system/src/Finder/SmartFinder.php delete mode 100644 vendor/symplify/smart-file-system/src/Json/JsonFileSystem.php delete mode 100644 vendor/symplify/smart-file-system/src/Normalizer/PathNormalizer.php delete mode 100644 vendor/symplify/smart-file-system/src/SmartFileInfo.php delete mode 100644 vendor/symplify/smart-file-system/src/SmartFileSystem.php delete mode 100644 vendor/symplify/symplify-kernel/README.md delete mode 100644 vendor/symplify/symplify-kernel/composer.json delete mode 100644 vendor/symplify/symplify-kernel/config/common-config.php delete mode 100644 vendor/symplify/symplify-kernel/phpunit.xml delete mode 100644 vendor/symplify/symplify-kernel/src/Config/Loader/ParameterMergingLoaderFactory.php delete mode 100644 vendor/symplify/symplify-kernel/src/ContainerBuilderFactory.php delete mode 100644 vendor/symplify/symplify-kernel/src/Contract/Config/LoaderFactoryInterface.php delete mode 100644 vendor/symplify/symplify-kernel/src/Contract/LightKernelInterface.php delete mode 100644 vendor/symplify/symplify-kernel/src/DependencyInjection/LoadExtensionConfigsCompilerPass.php delete mode 100644 vendor/symplify/symplify-kernel/src/Exception/BootException.php delete mode 100644 vendor/symplify/symplify-kernel/src/Exception/ShouldNotHappenException.php delete mode 100644 vendor/symplify/symplify-kernel/src/HttpKernel/AbstractSymplifyKernel.php delete mode 100644 vendor/symplify/symplify-kernel/src/ValueObject/KernelBootAndApplicationRun.php delete mode 100644 vendor/symplify/symplify-kernel/src/ValueObject/SymplifyKernelConfig.php delete mode 100644 vendor/symplify/symplify-kernel/tests/ContainerBuilderFactory/ContainerBuilderFactoryTest.php delete mode 100644 vendor/symplify/symplify-kernel/tests/ContainerBuilderFactory/config/some_services.php diff --git a/bin/rector.php b/bin/rector.php index f32f0674449..616f2936404 100755 --- a/bin/rector.php +++ b/bin/rector.php @@ -11,9 +11,9 @@ use Rector\Core\Console\ConsoleApplication; use Rector\Core\Console\Style\RectorConsoleOutputStyleFactory; use Rector\Core\DependencyInjection\RectorContainerFactory; use Rector\Core\Kernel\RectorKernel; +use Rector\Core\Util\Reflection\PrivatesAccessor; use RectorPrefix202209\Symfony\Component\Console\Command\Command; use RectorPrefix202209\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesCaller; // @ intentionally: continue anyway @\ini_set('memory_limit', '-1'); // Performance boost @@ -117,7 +117,7 @@ try { echo Json::encode(['fatal_errors' => [$throwable->getMessage()]]); } else { // report fatal errors in console format - $rectorConsoleOutputStyleFactory = new RectorConsoleOutputStyleFactory(new PrivatesCaller()); + $rectorConsoleOutputStyleFactory = new RectorConsoleOutputStyleFactory(new PrivatesAccessor()); $rectorConsoleOutputStyle = $rectorConsoleOutputStyleFactory->create(); $rectorConsoleOutputStyle->error($throwable->getMessage()); } diff --git a/config/config.php b/config/config.php index 7bf8608fb7c..0bec7bd1fc8 100644 --- a/config/config.php +++ b/config/config.php @@ -50,10 +50,7 @@ use RectorPrefix202209\Symfony\Component\Filesystem\Filesystem; use RectorPrefix202209\Symplify\EasyParallel\ValueObject\EasyParallelConfig; use RectorPrefix202209\Symplify\PackageBuilder\Console\Style\SymfonyStyleFactory; use RectorPrefix202209\Symplify\PackageBuilder\Parameter\ParameterProvider; -use RectorPrefix202209\Symplify\PackageBuilder\Php\TypeChecker; use RectorPrefix202209\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesCaller; use RectorPrefix202209\Symplify\PackageBuilder\Yaml\ParametersMerger; return static function (RectorConfig $rectorConfig) : void { // make use of https://github.com/symplify/easy-parallel @@ -118,14 +115,10 @@ return static function (RectorConfig $rectorConfig) : void { $services->set(RectorConsoleOutputStyle::class)->factory([service(RectorConsoleOutputStyleFactory::class), 'create']); $services->set(Parser::class)->factory([service(PHPStanServicesFactory::class), 'createPHPStanParser']); $services->set(Lexer::class)->factory([service(PHPStanServicesFactory::class), 'createEmulativeLexer']); - // symplify/package-builder - $services->set(PrivatesAccessor::class); - $services->set(PrivatesCaller::class); $services->set(ParameterProvider::class)->arg('$container', service('service_container')); $services->set(InflectorFactory::class); $services->set(Inflector::class)->factory([service(InflectorFactory::class), 'build']); $services->set(VersionParser::class); - $services->set(TypeChecker::class); // console $services->set(SymfonyStyleFactory::class); $services->set(SymfonyStyle::class)->factory([service(SymfonyStyleFactory::class), 'create']); diff --git a/packages/BetterPhpDocParser/PhpDocInfo/TokenIteratorFactory.php b/packages/BetterPhpDocParser/PhpDocInfo/TokenIteratorFactory.php index fb89c350e3f..75b214df5aa 100644 --- a/packages/BetterPhpDocParser/PhpDocInfo/TokenIteratorFactory.php +++ b/packages/BetterPhpDocParser/PhpDocInfo/TokenIteratorFactory.php @@ -6,7 +6,7 @@ namespace Rector\BetterPhpDocParser\PhpDocInfo; use PHPStan\PhpDocParser\Lexer\Lexer; use PHPStan\PhpDocParser\Parser\TokenIterator; use Rector\BetterPhpDocParser\ValueObject\Parser\BetterTokenIterator; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; +use Rector\Core\Util\Reflection\PrivatesAccessor; final class TokenIteratorFactory { /** @@ -20,7 +20,7 @@ final class TokenIteratorFactory private $lexer; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ private $privatesAccessor; public function __construct(Lexer $lexer, PrivatesAccessor $privatesAccessor) diff --git a/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php b/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php index ac298f1e15e..69ad12b8687 100644 --- a/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php +++ b/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php @@ -21,7 +21,7 @@ use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey; use Rector\BetterPhpDocParser\ValueObject\StartAndEnd; use Rector\Core\Configuration\CurrentNodeProvider; use Rector\Core\Exception\ShouldNotHappenException; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesCaller; +use Rector\Core\Util\Reflection\PrivatesAccessor; /** * @see \Rector\Tests\BetterPhpDocParser\PhpDocParser\TagValueNodeReprint\TagValueNodeReprintTest */ @@ -44,19 +44,19 @@ final class BetterPhpDocParser extends PhpDocParser private $phpDocNodeDecorators; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesCaller + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ - private $privatesCaller; + private $privatesAccessor; /** * @param PhpDocNodeDecoratorInterface[] $phpDocNodeDecorators */ - public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, CurrentNodeProvider $currentNodeProvider, TokenIteratorFactory $tokenIteratorFactory, array $phpDocNodeDecorators, PrivatesCaller $privatesCaller = null) + public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, CurrentNodeProvider $currentNodeProvider, TokenIteratorFactory $tokenIteratorFactory, array $phpDocNodeDecorators, PrivatesAccessor $privatesAccessor = null) { - $privatesCaller = $privatesCaller ?? new PrivatesCaller(); + $privatesAccessor = $privatesAccessor ?? new PrivatesAccessor(); $this->currentNodeProvider = $currentNodeProvider; $this->tokenIteratorFactory = $tokenIteratorFactory; $this->phpDocNodeDecorators = $phpDocNodeDecorators; - $this->privatesCaller = $privatesCaller; + $this->privatesAccessor = $privatesAccessor; parent::__construct($typeParser, $constExprParser); } public function parse(TokenIterator $tokenIterator) : PhpDocNode @@ -113,7 +113,7 @@ final class BetterPhpDocParser extends PhpDocParser $betterTokenIterator = $this->tokenIteratorFactory->createFromTokenIterator($tokenIterator); $startPosition = $betterTokenIterator->currentPosition(); /** @var PhpDocChildNode $phpDocNode */ - $phpDocNode = $this->privatesCaller->callPrivateMethod($this, 'parseChild', [$betterTokenIterator]); + $phpDocNode = $this->privatesAccessor->callPrivateMethod($this, 'parseChild', [$betterTokenIterator]); $endPosition = $betterTokenIterator->currentPosition(); $startAndEnd = new StartAndEnd($startPosition, $endPosition); $phpDocNode->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); diff --git a/packages/BetterPhpDocParser/ValueObject/Parser/BetterTokenIterator.php b/packages/BetterPhpDocParser/ValueObject/Parser/BetterTokenIterator.php index 4d74978f751..c59eee75b11 100644 --- a/packages/BetterPhpDocParser/ValueObject/Parser/BetterTokenIterator.php +++ b/packages/BetterPhpDocParser/ValueObject/Parser/BetterTokenIterator.php @@ -5,7 +5,7 @@ namespace Rector\BetterPhpDocParser\ValueObject\Parser; use PHPStan\PhpDocParser\Parser\TokenIterator; use Rector\Core\Exception\ShouldNotHappenException; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; +use Rector\Core\Util\Reflection\PrivatesAccessor; final class BetterTokenIterator extends TokenIterator { /** @@ -18,7 +18,7 @@ final class BetterTokenIterator extends TokenIterator private const INDEX = 'index'; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ private $privatesAccessor; /** diff --git a/packages/Caching/FileSystem/DependencyResolver.php b/packages/Caching/FileSystem/DependencyResolver.php index 0b1e2853680..8c12fb6af11 100644 --- a/packages/Caching/FileSystem/DependencyResolver.php +++ b/packages/Caching/FileSystem/DependencyResolver.php @@ -7,7 +7,7 @@ use PhpParser\Node\Stmt; use PHPStan\Analyser\MutatingScope; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Dependency\DependencyResolver as PHPStanDependencyResolver; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; +use Rector\Core\Util\Reflection\PrivatesAccessor; final class DependencyResolver { /** @@ -22,7 +22,7 @@ final class DependencyResolver private $phpStanDependencyResolver; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ private $privatesAccessor; public function __construct(NodeScopeResolver $nodeScopeResolver, PHPStanDependencyResolver $phpStanDependencyResolver, PrivatesAccessor $privatesAccessor) diff --git a/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php b/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php index 0d92b1bc9b7..321434cee87 100644 --- a/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php +++ b/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php @@ -23,11 +23,11 @@ use PHPStan\Type\UnionType; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\PhpParser\AstResolver; use Rector\Core\PhpParser\Node\BetterNodeFinder; +use Rector\Core\Util\Reflection\PrivatesAccessor; use Rector\FamilyTree\ValueObject\PropertyType; use Rector\NodeNameResolver\NodeNameResolver; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\StaticTypeMapper\StaticTypeMapper; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; final class FamilyRelationsAnalyzer { /** @@ -37,7 +37,7 @@ final class FamilyRelationsAnalyzer private $reflectionProvider; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ private $privatesAccessor; /** diff --git a/packages/NodeTypeResolver/NodeTypeCorrector/AccessoryNonEmptyStringTypeCorrector.php b/packages/NodeTypeResolver/NodeTypeCorrector/AccessoryNonEmptyStringTypeCorrector.php index 2fc787bcf36..a2da00f07ac 100644 --- a/packages/NodeTypeResolver/NodeTypeCorrector/AccessoryNonEmptyStringTypeCorrector.php +++ b/packages/NodeTypeResolver/NodeTypeCorrector/AccessoryNonEmptyStringTypeCorrector.php @@ -4,6 +4,7 @@ declare (strict_types=1); namespace Rector\NodeTypeResolver\NodeTypeCorrector; use PHPStan\Type\Accessory\AccessoryNonEmptyStringType; +use PHPStan\Type\Accessory\AccessoryNonFalsyStringType; use PHPStan\Type\IntersectionType; use PHPStan\Type\Type; final class AccessoryNonEmptyStringTypeCorrector @@ -16,7 +17,7 @@ final class AccessoryNonEmptyStringTypeCorrector if (!$mainType instanceof IntersectionType) { return $mainType; } - if (!$mainType->isSubTypeOf(new AccessoryNonEmptyStringType())->yes()) { + if (!$mainType->isSubTypeOf(new AccessoryNonEmptyStringType())->yes() && !$mainType->isSubTypeOf(new AccessoryNonFalsyStringType())->yes()) { return $mainType; } $clearIntersectionedTypes = []; @@ -24,6 +25,9 @@ final class AccessoryNonEmptyStringTypeCorrector if ($intersectionedType instanceof AccessoryNonEmptyStringType) { continue; } + if ($intersectionedType instanceof AccessoryNonFalsyStringType) { + continue; + } $clearIntersectionedTypes[] = $intersectionedType; } if (\count($clearIntersectionedTypes) === 1) { diff --git a/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index d2a74e2661f..14fa061cb8a 100644 --- a/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -46,11 +46,11 @@ use Rector\Caching\FileSystem\DependencyResolver; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\StaticReflection\SourceLocator\ParentAttributeSourceLocator; use Rector\Core\StaticReflection\SourceLocator\RenamedClassesSourceLocator; +use Rector\Core\Util\Reflection\PrivatesAccessor; use Rector\Core\Util\StringUtils; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor\RemoveDeepChainMethodCallNodeVisitor; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; use RectorPrefix202209\Webmozart\Assert\Assert; /** * @inspired by https://github.com/silverstripe/silverstripe-upgrader/blob/532182b23e854d02e0b27e68ebc394f436de0682/src/UpgradeRule/PHP/Visitor/PHPStanScopeVisitor.php @@ -99,7 +99,7 @@ final class PHPStanNodeScopeResolver private $scopeFactory; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ private $privatesAccessor; /** diff --git a/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonFalsyStringTypeMapper.php b/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonFalsyStringTypeMapper.php new file mode 100644 index 00000000000..cdc243142b0 --- /dev/null +++ b/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonFalsyStringTypeMapper.php @@ -0,0 +1,39 @@ + + */ +final class AccessoryNonFalsyStringTypeMapper implements TypeMapperInterface +{ + /** + * @return class-string + */ + public function getNodeClass() : string + { + return AccessoryNonFalsyStringType::class; + } + /** + * @param AccessoryNonFalsyStringType $type + */ + public function mapToPHPStanPhpDocTypeNode(Type $type, string $typeKind) : TypeNode + { + return new IdentifierTypeNode('string'); + } + /** + * @param AccessoryNonFalsyStringType $type + */ + public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node + { + return new Name('string'); + } +} diff --git a/packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetValueTypeTypeMapper.php b/packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetValueTypeTypeMapper.php new file mode 100644 index 00000000000..faaf296b260 --- /dev/null +++ b/packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetValueTypeTypeMapper.php @@ -0,0 +1,40 @@ + + */ +final class HasOffsetValueTypeTypeMapper implements TypeMapperInterface +{ + /** + * @return class-string + */ + public function getNodeClass() : string + { + return HasOffsetValueType::class; + } + /** + * @param HasOffsetValueType $type + */ + public function mapToPHPStanPhpDocTypeNode(Type $type, string $typeKind) : TypeNode + { + return new ArrayTypeNode(new IdentifierTypeNode('mixed')); + } + /** + * @param HasOffsetValueType $type + */ + public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node + { + return new Name('array'); + } +} diff --git a/rules/DeadCode/Rector/Node/RemoveNonExistingVarAnnotationRector.php b/rules/DeadCode/Rector/Node/RemoveNonExistingVarAnnotationRector.php index 62328503c8b..ebf7d0bd4ac 100644 --- a/rules/DeadCode/Rector/Node/RemoveNonExistingVarAnnotationRector.php +++ b/rules/DeadCode/Rector/Node/RemoveNonExistingVarAnnotationRector.php @@ -21,8 +21,8 @@ use PhpParser\Node\Stmt\While_; use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use Rector\Core\Rector\AbstractRector; +use Rector\Core\Util\MultiInstanceofChecker; use Rector\DeadCode\NodeAnalyzer\ExprUsedInNodeAnalyzer; -use RectorPrefix202209\Symplify\PackageBuilder\Php\TypeChecker; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -36,20 +36,20 @@ final class RemoveNonExistingVarAnnotationRector extends AbstractRector * @var array> */ private const NODES_TO_MATCH = [Assign::class, AssignRef::class, Foreach_::class, Static_::class, Echo_::class, Return_::class, Expression::class, Throw_::class, If_::class, While_::class, Switch_::class, Nop::class]; - /** - * @readonly - * @var \Symplify\PackageBuilder\Php\TypeChecker - */ - private $typeChecker; /** * @readonly * @var \Rector\DeadCode\NodeAnalyzer\ExprUsedInNodeAnalyzer */ private $exprUsedInNodeAnalyzer; - public function __construct(TypeChecker $typeChecker, ExprUsedInNodeAnalyzer $exprUsedInNodeAnalyzer) + /** + * @readonly + * @var \Rector\Core\Util\MultiInstanceofChecker + */ + private $multiInstanceofChecker; + public function __construct(ExprUsedInNodeAnalyzer $exprUsedInNodeAnalyzer, MultiInstanceofChecker $multiInstanceofChecker) { - $this->typeChecker = $typeChecker; $this->exprUsedInNodeAnalyzer = $exprUsedInNodeAnalyzer; + $this->multiInstanceofChecker = $multiInstanceofChecker; } public function getRuleDefinition() : RuleDefinition { @@ -128,10 +128,10 @@ CODE_SAMPLE private function shouldSkip(Node $node) : bool { if (!$node instanceof Nop) { - return !$this->typeChecker->isInstanceOf($node, self::NODES_TO_MATCH); + return !$this->multiInstanceofChecker->isInstanceOf($node, self::NODES_TO_MATCH); } if (\count($node->getComments()) <= 1) { - return !$this->typeChecker->isInstanceOf($node, self::NODES_TO_MATCH); + return !$this->multiInstanceofChecker->isInstanceOf($node, self::NODES_TO_MATCH); } return \true; } diff --git a/rules/Php72/NodeFactory/AnonymousFunctionFactory.php b/rules/Php72/NodeFactory/AnonymousFunctionFactory.php index cad93b5b263..885c5424361 100644 --- a/rules/Php72/NodeFactory/AnonymousFunctionFactory.php +++ b/rules/Php72/NodeFactory/AnonymousFunctionFactory.php @@ -41,6 +41,7 @@ use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Core\PhpParser\Node\NodeFactory; use Rector\Core\PhpParser\Parser\InlineCodeParser; use Rector\Core\PhpParser\Parser\SimplePhpParser; +use Rector\Core\Util\Reflection\PrivatesAccessor; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\Php72\NodeManipulator\ClosureNestedUsesDecorator; @@ -48,7 +49,6 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\StaticTypeMapper\StaticTypeMapper; use ReflectionParameter; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; final class AnonymousFunctionFactory { /** @@ -98,7 +98,7 @@ final class AnonymousFunctionFactory private $astResolver; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ private $privatesAccessor; /** diff --git a/rules/TypeDeclaration/PhpDocParser/NonInformativeReturnTagRemover.php b/rules/TypeDeclaration/PhpDocParser/NonInformativeReturnTagRemover.php index 70c43cb2e4e..f3e46b2f68a 100644 --- a/rules/TypeDeclaration/PhpDocParser/NonInformativeReturnTagRemover.php +++ b/rules/TypeDeclaration/PhpDocParser/NonInformativeReturnTagRemover.php @@ -24,11 +24,11 @@ use PHPStan\Type\UnionType; use PHPStan\Type\VoidType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Core\Util\MultiInstanceofChecker; use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; use Rector\StaticTypeMapper\ValueObject\Type\ParentStaticType; use Rector\StaticTypeMapper\ValueObject\Type\SelfObjectType; use Rector\StaticTypeMapper\ValueObject\Type\ShortenedObjectType; -use RectorPrefix202209\Symplify\PackageBuilder\Php\TypeChecker; final class NonInformativeReturnTagRemover { /** @@ -42,13 +42,13 @@ final class NonInformativeReturnTagRemover private $phpDocInfoFactory; /** * @readonly - * @var \Symplify\PackageBuilder\Php\TypeChecker + * @var \Rector\Core\Util\MultiInstanceofChecker */ - private $typeChecker; - public function __construct(PhpDocInfoFactory $phpDocInfoFactory, TypeChecker $typeChecker) + private $multiInstanceofChecker; + public function __construct(PhpDocInfoFactory $phpDocInfoFactory, MultiInstanceofChecker $multiInstanceofChecker) { $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->typeChecker = $typeChecker; + $this->multiInstanceofChecker = $multiInstanceofChecker; } /** * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike @@ -66,7 +66,7 @@ final class NonInformativeReturnTagRemover } $returnType = $phpDocInfo->getReturnType(); // is bare type - if ($this->typeChecker->isInstanceOf($returnType, [FloatType::class, StringType::class, IntegerType::class])) { + if ($this->multiInstanceofChecker->isInstanceOf($returnType, [FloatType::class, StringType::class, IntegerType::class])) { $phpDocInfo->removeByType(ReturnTagValueNode::class); return; } diff --git a/rules/TypeDeclaration/Rector/ClassMethod/AddArrayReturnDocTypeRector.php b/rules/TypeDeclaration/Rector/ClassMethod/AddArrayReturnDocTypeRector.php index fd87a94a6c6..39664f8ba57 100644 --- a/rules/TypeDeclaration/Rector/ClassMethod/AddArrayReturnDocTypeRector.php +++ b/rules/TypeDeclaration/Rector/ClassMethod/AddArrayReturnDocTypeRector.php @@ -4,21 +4,25 @@ declare (strict_types=1); namespace Rector\TypeDeclaration\Rector\ClassMethod; use PhpParser\Node; +use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PHPStan\Analyser\Scope; use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode; use PHPStan\PhpDocParser\Ast\Type\ArrayShapeNode; use PHPStan\PhpDocParser\Ast\Type\ArrayTypeNode; use PHPStan\PhpDocParser\Ast\Type\GenericTypeNode; +use PHPStan\Reflection\ClassReflection; use PHPStan\Type\ArrayType; use PHPStan\Type\Generic\GenericObjectType; use PHPStan\Type\IterableType; use PHPStan\Type\MixedType; use PHPStan\Type\Type; use PHPStan\Type\VoidType; +use PHPUnit\Framework\TestCase; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; -use Rector\Core\Rector\AbstractRector; +use Rector\Core\Rector\AbstractScopeAwareRector; use Rector\DeadCode\PhpDoc\TagRemover\ReturnTagRemover; use Rector\Privatization\TypeManipulator\NormalizeTypeToRespectArrayScalarType; use Rector\Privatization\TypeManipulator\TypeNormalizer; @@ -34,7 +38,7 @@ use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\AddArrayReturnDocTypeRector\AddArrayReturnDocTypeRectorTest */ -final class AddArrayReturnDocTypeRector extends AbstractRector +final class AddArrayReturnDocTypeRector extends AbstractScopeAwareRector { /** * @readonly @@ -144,9 +148,9 @@ CODE_SAMPLE /** * @param ClassMethod $node */ - public function refactor(Node $node) : ?Node + public function refactorWithScope(Node $node, Scope $scope) : ?Node { - if ($this->isDataProviderClassMethod($node)) { + if ($this->isDataProviderClassMethod($node, $scope)) { return null; } $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); @@ -264,8 +268,11 @@ CODE_SAMPLE } return \false; } - private function isDataProviderClassMethod(ClassMethod $classMethod) : bool + private function isDataProviderClassMethod(ClassMethod $classMethod, Scope $scope) : bool { + if ($this->isPublicMethodInTestCaseWithReturnIterator($scope, $classMethod)) { + return \true; + } // should skip data provider, because complex structures $class = $this->betterNodeFinder->findParentType($classMethod, Class_::class); if (!$class instanceof Class_) { @@ -275,4 +282,21 @@ CODE_SAMPLE $classMethodName = $classMethod->name->toString(); return \in_array($classMethodName, $dataProviderMethodNames, \true); } + private function isPublicMethodInTestCaseWithReturnIterator(Scope $scope, ClassMethod $classMethod) : bool + { + $classReflection = $scope->getClassReflection(); + if (!$classReflection instanceof ClassReflection) { + return \false; + } + if (!$classReflection->isSubclassOf(TestCase::class)) { + return \false; + } + if (!$classMethod->returnType instanceof FullyQualified) { + return \false; + } + if (!$this->isName($classMethod->returnType, 'Iterator')) { + return \false; + } + return $classMethod->isPublic(); + } } diff --git a/rules/TypeDeclaration/TypeNormalizer.php b/rules/TypeDeclaration/TypeNormalizer.php index 2db842c8f6d..072a2544ae1 100644 --- a/rules/TypeDeclaration/TypeNormalizer.php +++ b/rules/TypeDeclaration/TypeNormalizer.php @@ -13,9 +13,9 @@ use PHPStan\Type\StringType; use PHPStan\Type\Type; use PHPStan\Type\TypeTraverser; use PHPStan\Type\UnionType; +use Rector\Core\Util\Reflection\PrivatesAccessor; use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; use Rector\TypeDeclaration\ValueObject\NestedArrayType; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor; /** * @see \Rector\Tests\TypeDeclaration\TypeNormalizerTest */ @@ -32,7 +32,7 @@ final class TypeNormalizer private $typeFactory; /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ private $privatesAccessor; public function __construct(TypeFactory $typeFactory, PrivatesAccessor $privatesAccessor) diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 17b68f6e2c8..bb70c93710f 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -17,12 +17,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = 'c6c1026bbeb8312e0f1598eb0d57f466b076f420'; + public const PACKAGE_VERSION = '8961d20f56fa4b39bb21feec1f24422398f13dba'; /** * @api * @var string */ - public const RELEASE_DATE = '2022-09-01 17:12:14'; + public const RELEASE_DATE = '2022-09-01 19:25:30'; /** * @var int */ diff --git a/src/Console/Style/RectorConsoleOutputStyleFactory.php b/src/Console/Style/RectorConsoleOutputStyleFactory.php index 066df2baa51..aa7cffe2fd9 100644 --- a/src/Console/Style/RectorConsoleOutputStyleFactory.php +++ b/src/Console/Style/RectorConsoleOutputStyleFactory.php @@ -3,28 +3,28 @@ declare (strict_types=1); namespace Rector\Core\Console\Style; +use Rector\Core\Util\Reflection\PrivatesAccessor; use RectorPrefix202209\Symfony\Component\Console\Application; use RectorPrefix202209\Symfony\Component\Console\Input\ArgvInput; use RectorPrefix202209\Symfony\Component\Console\Output\ConsoleOutput; use RectorPrefix202209\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesCaller; final class RectorConsoleOutputStyleFactory { /** * @readonly - * @var \Symplify\PackageBuilder\Reflection\PrivatesCaller + * @var \Rector\Core\Util\Reflection\PrivatesAccessor */ - private $privatesCaller; - public function __construct(PrivatesCaller $privatesCaller) + private $privatesAccessor; + public function __construct(PrivatesAccessor $privatesAccessor) { - $this->privatesCaller = $privatesCaller; + $this->privatesAccessor = $privatesAccessor; } public function create() : \Rector\Core\Console\Style\RectorConsoleOutputStyle { $argvInput = new ArgvInput(); $consoleOutput = new ConsoleOutput(); // to configure all -v, -vv, -vvv options without memory-lock to Application run() arguments - $this->privatesCaller->callPrivateMethod(new Application(), 'configureIO', [$argvInput, $consoleOutput]); + $this->privatesAccessor->callPrivateMethod(new Application(), 'configureIO', [$argvInput, $consoleOutput]); // --debug is called if ($argvInput->hasParameterOption('--debug')) { $consoleOutput->setVerbosity(OutputInterface::VERBOSITY_DEBUG); diff --git a/src/NodeManipulator/AssignManipulator.php b/src/NodeManipulator/AssignManipulator.php index c22c0c39e6e..748434a9eb4 100644 --- a/src/NodeManipulator/AssignManipulator.php +++ b/src/NodeManipulator/AssignManipulator.php @@ -21,9 +21,9 @@ use PhpParser\Node\Stmt\Expression; use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer; use Rector\Core\PhpParser\Comparing\NodeComparator; use Rector\Core\PhpParser\Node\BetterNodeFinder; +use Rector\Core\Util\MultiInstanceofChecker; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; -use RectorPrefix202209\Symplify\PackageBuilder\Php\TypeChecker; final class AssignManipulator { /** @@ -52,16 +52,16 @@ final class AssignManipulator private $propertyFetchAnalyzer; /** * @readonly - * @var \Symplify\PackageBuilder\Php\TypeChecker + * @var \Rector\Core\Util\MultiInstanceofChecker */ - private $typeChecker; - public function __construct(NodeNameResolver $nodeNameResolver, NodeComparator $nodeComparator, BetterNodeFinder $betterNodeFinder, PropertyFetchAnalyzer $propertyFetchAnalyzer, TypeChecker $typeChecker) + private $multiInstanceofChecker; + public function __construct(NodeNameResolver $nodeNameResolver, NodeComparator $nodeComparator, BetterNodeFinder $betterNodeFinder, PropertyFetchAnalyzer $propertyFetchAnalyzer, MultiInstanceofChecker $multiInstanceofChecker) { $this->nodeNameResolver = $nodeNameResolver; $this->nodeComparator = $nodeComparator; $this->betterNodeFinder = $betterNodeFinder; $this->propertyFetchAnalyzer = $propertyFetchAnalyzer; - $this->typeChecker = $typeChecker; + $this->multiInstanceofChecker = $multiInstanceofChecker; } /** * Matches: @@ -83,7 +83,7 @@ final class AssignManipulator if ($parentNode instanceof Assign && $this->nodeComparator->areNodesEqual($parentNode->var, $node)) { return \true; } - if ($parentNode !== null && $this->typeChecker->isInstanceOf($parentNode, self::MODIFYING_NODE_TYPES)) { + if ($parentNode !== null && $this->multiInstanceofChecker->isInstanceOf($parentNode, self::MODIFYING_NODE_TYPES)) { return \true; } // traverse up to array dim fetches diff --git a/src/NodeManipulator/PropertyManipulator.php b/src/NodeManipulator/PropertyManipulator.php index 6c61cbd45ba..8f0151003fc 100644 --- a/src/NodeManipulator/PropertyManipulator.php +++ b/src/NodeManipulator/PropertyManipulator.php @@ -27,7 +27,6 @@ use PhpParser\Node\Stmt\Unset_; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; use PHPStan\Type\ObjectType; -use PHPStan\Type\Type; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer; @@ -35,6 +34,7 @@ use Rector\Core\PhpParser\AstResolver; use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Core\PhpParser\NodeFinder\PropertyFetchFinder; use Rector\Core\Reflection\ReflectionResolver; +use Rector\Core\Util\MultiInstanceofChecker; use Rector\Core\ValueObject\MethodName; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -45,7 +45,6 @@ use Rector\Php80\NodeAnalyzer\PromotedPropertyResolver; use Rector\ReadWrite\Guard\VariableToConstantGuard; use Rector\ReadWrite\NodeAnalyzer\ReadWritePropertyAnalyzer; use Rector\TypeDeclaration\AlreadyAssignDetector\ConstructorAssignDetector; -use RectorPrefix202209\Symplify\PackageBuilder\Php\TypeChecker; /** * For inspiration to improve this service, * @see examples of variable modifications in https://wiki.php.net/rfc/readonly_properties_v2#proposal @@ -85,11 +84,6 @@ final class PropertyManipulator * @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory */ private $phpDocInfoFactory; - /** - * @readonly - * @var \Symplify\PackageBuilder\Php\TypeChecker - */ - private $typeChecker; /** * @readonly * @var \Rector\Core\PhpParser\NodeFinder\PropertyFetchFinder @@ -135,14 +129,18 @@ final class PropertyManipulator * @var \Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer */ private $propertyFetchAnalyzer; - public function __construct(\Rector\Core\NodeManipulator\AssignManipulator $assignManipulator, BetterNodeFinder $betterNodeFinder, VariableToConstantGuard $variableToConstantGuard, ReadWritePropertyAnalyzer $readWritePropertyAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, TypeChecker $typeChecker, PropertyFetchFinder $propertyFetchFinder, ReflectionResolver $reflectionResolver, NodeNameResolver $nodeNameResolver, PhpAttributeAnalyzer $phpAttributeAnalyzer, NodeTypeResolver $nodeTypeResolver, PromotedPropertyResolver $promotedPropertyResolver, ConstructorAssignDetector $constructorAssignDetector, AstResolver $astResolver, PropertyFetchAnalyzer $propertyFetchAnalyzer) + /** + * @readonly + * @var \Rector\Core\Util\MultiInstanceofChecker + */ + private $multiInstanceofChecker; + public function __construct(\Rector\Core\NodeManipulator\AssignManipulator $assignManipulator, BetterNodeFinder $betterNodeFinder, VariableToConstantGuard $variableToConstantGuard, ReadWritePropertyAnalyzer $readWritePropertyAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, PropertyFetchFinder $propertyFetchFinder, ReflectionResolver $reflectionResolver, NodeNameResolver $nodeNameResolver, PhpAttributeAnalyzer $phpAttributeAnalyzer, NodeTypeResolver $nodeTypeResolver, PromotedPropertyResolver $promotedPropertyResolver, ConstructorAssignDetector $constructorAssignDetector, AstResolver $astResolver, PropertyFetchAnalyzer $propertyFetchAnalyzer, MultiInstanceofChecker $multiInstanceofChecker) { $this->assignManipulator = $assignManipulator; $this->betterNodeFinder = $betterNodeFinder; $this->variableToConstantGuard = $variableToConstantGuard; $this->readWritePropertyAnalyzer = $readWritePropertyAnalyzer; $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->typeChecker = $typeChecker; $this->propertyFetchFinder = $propertyFetchFinder; $this->reflectionResolver = $reflectionResolver; $this->nodeNameResolver = $nodeNameResolver; @@ -152,6 +150,7 @@ final class PropertyManipulator $this->constructorAssignDetector = $constructorAssignDetector; $this->astResolver = $astResolver; $this->propertyFetchAnalyzer = $propertyFetchAnalyzer; + $this->multiInstanceofChecker = $multiInstanceofChecker; } /** * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $propertyOrPromotedParam @@ -296,7 +295,7 @@ final class PropertyManipulator if (!$parentNode instanceof Node) { return \false; } - if ($this->typeChecker->isInstanceOf($parentNode, [PreInc::class, PreDec::class, PostInc::class, PostDec::class])) { + if ($this->multiInstanceofChecker->isInstanceOf($parentNode, [PreInc::class, PreDec::class, PostInc::class, PostDec::class])) { $parentNode = $parentNode->getAttribute(AttributeKey::PARENT_NODE); } if (!$parentNode instanceof Node) { diff --git a/src/PhpParser/Node/BetterNodeFinder.php b/src/PhpParser/Node/BetterNodeFinder.php index 495c012f6b0..5413c07193f 100644 --- a/src/PhpParser/Node/BetterNodeFinder.php +++ b/src/PhpParser/Node/BetterNodeFinder.php @@ -23,9 +23,9 @@ use PhpParser\Node\Stmt\Return_; use PhpParser\NodeFinder; use Rector\Core\NodeAnalyzer\ClassAnalyzer; use Rector\Core\PhpParser\Comparing\NodeComparator; +use Rector\Core\Util\MultiInstanceofChecker; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; -use RectorPrefix202209\Symplify\PackageBuilder\Php\TypeChecker; use RectorPrefix202209\Webmozart\Assert\Assert; /** * @see \Rector\Core\Tests\PhpParser\Node\BetterNodeFinder\BetterNodeFinderTest @@ -42,11 +42,6 @@ final class BetterNodeFinder * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; - /** - * @readonly - * @var \Symplify\PackageBuilder\Php\TypeChecker - */ - private $typeChecker; /** * @readonly * @var \Rector\Core\PhpParser\Comparing\NodeComparator @@ -57,13 +52,18 @@ final class BetterNodeFinder * @var \Rector\Core\NodeAnalyzer\ClassAnalyzer */ private $classAnalyzer; - public function __construct(NodeFinder $nodeFinder, NodeNameResolver $nodeNameResolver, TypeChecker $typeChecker, NodeComparator $nodeComparator, ClassAnalyzer $classAnalyzer) + /** + * @readonly + * @var \Rector\Core\Util\MultiInstanceofChecker + */ + private $multiInstanceofChecker; + public function __construct(NodeFinder $nodeFinder, NodeNameResolver $nodeNameResolver, NodeComparator $nodeComparator, ClassAnalyzer $classAnalyzer, MultiInstanceofChecker $multiInstanceofChecker) { $this->nodeFinder = $nodeFinder; $this->nodeNameResolver = $nodeNameResolver; - $this->typeChecker = $typeChecker; $this->nodeComparator = $nodeComparator; $this->classAnalyzer = $classAnalyzer; + $this->multiInstanceofChecker = $multiInstanceofChecker; } /** * @template TNode of \PhpParser\Node @@ -294,7 +294,7 @@ final class BetterNodeFinder public function findFirstPreviousOfTypes(Node $mainNode, array $types) : ?Node { return $this->findFirstPrevious($mainNode, function (Node $node) use($types) : bool { - return $this->typeChecker->isInstanceOf($node, $types); + return $this->multiInstanceofChecker->isInstanceOf($node, $types); }); } /** diff --git a/src/Util/MultiInstanceofChecker.php b/src/Util/MultiInstanceofChecker.php new file mode 100644 index 00000000000..da282383fed --- /dev/null +++ b/src/Util/MultiInstanceofChecker.php @@ -0,0 +1,21 @@ + $types + * @param object|string $object + */ + public function isInstanceOf($object, array $types) : bool + { + foreach ($types as $type) { + if (\is_a($object, $type, \true)) { + return \true; + } + } + return \false; + } +} diff --git a/src/Util/Reflection/PrivatesAccessor.php b/src/Util/Reflection/PrivatesAccessor.php new file mode 100644 index 00000000000..794886657eb --- /dev/null +++ b/src/Util/Reflection/PrivatesAccessor.php @@ -0,0 +1,112 @@ +newInstanceWithoutConstructor(); + } + $methodReflection = $this->createAccessibleMethodReflection($object, $methodName); + return $methodReflection->invokeArgs($object, $arguments); + } + /** + * @param object|class-string $object + * @param mixed $argument + * @return mixed + */ + public function callPrivateMethodWithReference($object, string $methodName, $argument) + { + if (\is_string($object)) { + $reflectionClass = new ReflectionClass($object); + $object = $reflectionClass->newInstanceWithoutConstructor(); + } + $methodReflection = $this->createAccessibleMethodReflection($object, $methodName); + $methodReflection->invokeArgs($object, [&$argument]); + return $argument; + } + /** + * @template T of object + * + * @param class-string $valueClassName + * @return T + */ + public function getPrivatePropertyOfClass(object $object, string $propertyName, string $valueClassName) : object + { + $value = $this->getPrivateProperty($object, $propertyName); + if ($value instanceof $valueClassName) { + return $value; + } + $errorMessage = \sprintf('The type "%s" is required, but "%s" type given', $valueClassName, \get_class($value)); + throw new InvalidPrivatePropertyTypeException($errorMessage); + } + /** + * @return mixed + */ + public function getPrivateProperty(object $object, string $propertyName) + { + $propertyReflection = $this->resolvePropertyReflection($object, $propertyName); + $propertyReflection->setAccessible(\true); + return $propertyReflection->getValue($object); + } + /** + * @template T of object + * + * @param class-string $valueClassName + * @param mixed $value + */ + public function setPrivatePropertyOfClass(object $object, string $propertyName, $value, string $valueClassName) : void + { + if ($value instanceof $valueClassName) { + $this->setPrivateProperty($object, $propertyName, $value); + return; + } + $errorMessage = \sprintf('The type "%s" is required, but "%s" type given', $valueClassName, \get_class($value)); + throw new InvalidPrivatePropertyTypeException($errorMessage); + } + /** + * @param mixed $value + */ + public function setPrivateProperty(object $object, string $propertyName, $value) : void + { + $propertyReflection = $this->resolvePropertyReflection($object, $propertyName); + $propertyReflection->setAccessible(\true); + $propertyReflection->setValue($object, $value); + } + private function createAccessibleMethodReflection(object $object, string $methodName) : ReflectionMethod + { + $reflectionMethod = new ReflectionMethod(\get_class($object), $methodName); + $reflectionMethod->setAccessible(\true); + return $reflectionMethod; + } + private function resolvePropertyReflection(object $object, string $propertyName) : ReflectionProperty + { + if (\property_exists($object, $propertyName)) { + return new ReflectionProperty($object, $propertyName); + } + $parentClass = \get_parent_class($object); + if ($parentClass !== \false) { + return new ReflectionProperty($parentClass, $propertyName); + } + $errorMessage = \sprintf('Property "$%s" was not found in "%s" class', $propertyName, \get_class($object)); + throw new MissingPrivatePropertyException($errorMessage); + } +} diff --git a/vendor/autoload.php b/vendor/autoload.php index 709c0e272ef..c7123a4be4b 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit49c7847968b4d07e4659a00d91db5255::getLoader(); +return ComposerAutoloaderInitb981bffc907afb7807601aec8347a8ad::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 1ec8d3f94d1..6eb48c3495f 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1063,26 +1063,6 @@ return array( 'RectorPrefix202209\\Symplify\\PackageBuilder\\ValueObject\\MethodName' => $vendorDir . '/symplify/package-builder/src/ValueObject/MethodName.php', 'RectorPrefix202209\\Symplify\\PackageBuilder\\ValueObject\\Option' => $vendorDir . '/symplify/package-builder/src/ValueObject/Option.php', 'RectorPrefix202209\\Symplify\\PackageBuilder\\Yaml\\ParametersMerger' => $vendorDir . '/symplify/package-builder/src/Yaml/ParametersMerger.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symplify/smart-file-system/src/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Exception\\FileNotFoundException' => $vendorDir . '/symplify/smart-file-system/src/Exception/FileNotFoundException.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\FileSystemFilter' => $vendorDir . '/symplify/smart-file-system/src/FileSystemFilter.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\FileSystemGuard' => $vendorDir . '/symplify/smart-file-system/src/FileSystemGuard.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Finder\\FinderSanitizer' => $vendorDir . '/symplify/smart-file-system/src/Finder/FinderSanitizer.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Finder\\SmartFinder' => $vendorDir . '/symplify/smart-file-system/src/Finder/SmartFinder.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Json\\JsonFileSystem' => $vendorDir . '/symplify/smart-file-system/src/Json/JsonFileSystem.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Normalizer\\PathNormalizer' => $vendorDir . '/symplify/smart-file-system/src/Normalizer/PathNormalizer.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\SmartFileInfo' => $vendorDir . '/symplify/smart-file-system/src/SmartFileInfo.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\SmartFileSystem' => $vendorDir . '/symplify/smart-file-system/src/SmartFileSystem.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Config\\Loader\\ParameterMergingLoaderFactory' => $vendorDir . '/symplify/symplify-kernel/src/Config/Loader/ParameterMergingLoaderFactory.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\ContainerBuilderFactory' => $vendorDir . '/symplify/symplify-kernel/src/ContainerBuilderFactory.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Contract\\Config\\LoaderFactoryInterface' => $vendorDir . '/symplify/symplify-kernel/src/Contract/Config/LoaderFactoryInterface.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Contract\\LightKernelInterface' => $vendorDir . '/symplify/symplify-kernel/src/Contract/LightKernelInterface.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\DependencyInjection\\LoadExtensionConfigsCompilerPass' => $vendorDir . '/symplify/symplify-kernel/src/DependencyInjection/LoadExtensionConfigsCompilerPass.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Exception\\BootException' => $vendorDir . '/symplify/symplify-kernel/src/Exception/BootException.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Exception\\ShouldNotHappenException' => $vendorDir . '/symplify/symplify-kernel/src/Exception/ShouldNotHappenException.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\HttpKernel\\AbstractSymplifyKernel' => $vendorDir . '/symplify/symplify-kernel/src/HttpKernel/AbstractSymplifyKernel.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\ValueObject\\KernelBootAndApplicationRun' => $vendorDir . '/symplify/symplify-kernel/src/ValueObject/KernelBootAndApplicationRun.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\ValueObject\\SymplifyKernelConfig' => $vendorDir . '/symplify/symplify-kernel/src/ValueObject/SymplifyKernelConfig.php', 'RectorPrefix202209\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', 'RectorPrefix202209\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', 'RectorPrefix202209\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', @@ -1502,7 +1482,9 @@ return array( 'Rector\\Core\\StaticReflection\\SourceLocator\\ParentAttributeSourceLocator' => $baseDir . '/src/StaticReflection/SourceLocator/ParentAttributeSourceLocator.php', 'Rector\\Core\\StaticReflection\\SourceLocator\\RenamedClassesSourceLocator' => $baseDir . '/src/StaticReflection/SourceLocator/RenamedClassesSourceLocator.php', 'Rector\\Core\\Util\\MemoryLimiter' => $baseDir . '/src/Util/MemoryLimiter.php', + 'Rector\\Core\\Util\\MultiInstanceofChecker' => $baseDir . '/src/Util/MultiInstanceofChecker.php', 'Rector\\Core\\Util\\PhpVersionFactory' => $baseDir . '/src/Util/PhpVersionFactory.php', + 'Rector\\Core\\Util\\Reflection\\PrivatesAccessor' => $baseDir . '/src/Util/Reflection/PrivatesAccessor.php', 'Rector\\Core\\Util\\StringUtils' => $baseDir . '/src/Util/StringUtils.php', 'Rector\\Core\\Validation\\Collector\\EmptyConfigurableRectorCollector' => $baseDir . '/src/Validation/Collector/EmptyConfigurableRectorCollector.php', 'Rector\\Core\\Validation\\EmptyConfigurableRectorChecker' => $baseDir . '/src/Validation/EmptyConfigurableRectorChecker.php', @@ -2039,6 +2021,7 @@ return array( 'Rector\\PHPStanStaticTypeMapper\\TypeAnalyzer\\UnionTypeAnalyzer' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeAnalyzer/UnionTypeAnalyzer.php', 'Rector\\PHPStanStaticTypeMapper\\TypeAnalyzer\\UnionTypeCommonTypeNarrower' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeAnalyzer/UnionTypeCommonTypeNarrower.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\AccessoryNonEmptyStringTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonEmptyStringTypeMapper.php', + 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\AccessoryNonFalsyStringTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonFalsyStringTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\AccessoryNumericStringTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNumericStringTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\ArrayShapeTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayShapeTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\ArrayTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php', @@ -2049,6 +2032,7 @@ return array( 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\FloatTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/FloatTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasMethodTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasMethodTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasOffsetTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetTypeMapper.php', + 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasOffsetValueTypeTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetValueTypeTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasPropertyTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasPropertyTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\IntegerTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/IntegerTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\IntersectionTypeMapper' => $baseDir . '/packages/PHPStanStaticTypeMapper/TypeMapper/IntersectionTypeMapper.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 199be0bc2a1..2a42785d102 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -20,8 +20,6 @@ return array( 'Rector\\CakePHP\\' => array($vendorDir . '/rector/rector-cakephp/src'), 'Rector\\' => array($baseDir . '/packages', $baseDir . '/rules', $vendorDir . '/rector/rector-downgrade-php/src', $vendorDir . '/rector/rector-downgrade-php/rules'), 'RectorPrefix202209\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\' => array($vendorDir . '/symplify/symplify-kernel/src'), - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\' => array($vendorDir . '/symplify/smart-file-system/src'), 'RectorPrefix202209\\Symplify\\PackageBuilder\\' => array($vendorDir . '/symplify/package-builder/src'), 'RectorPrefix202209\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), 'RectorPrefix202209\\Symplify\\AutowireArrayParameter\\' => array($vendorDir . '/symplify/autowire-array-parameter/src'), diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 7be0df17996..c12a9e22ce3 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit49c7847968b4d07e4659a00d91db5255 +class ComposerAutoloaderInitb981bffc907afb7807601aec8347a8ad { private static $loader; @@ -22,19 +22,19 @@ class ComposerAutoloaderInit49c7847968b4d07e4659a00d91db5255 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit49c7847968b4d07e4659a00d91db5255', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitb981bffc907afb7807601aec8347a8ad', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit49c7847968b4d07e4659a00d91db5255', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitb981bffc907afb7807601aec8347a8ad', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit49c7847968b4d07e4659a00d91db5255::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitb981bffc907afb7807601aec8347a8ad::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $includeFiles = \Composer\Autoload\ComposerStaticInit49c7847968b4d07e4659a00d91db5255::$files; + $includeFiles = \Composer\Autoload\ComposerStaticInitb981bffc907afb7807601aec8347a8ad::$files; foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire49c7847968b4d07e4659a00d91db5255($fileIdentifier, $file); + composerRequireb981bffc907afb7807601aec8347a8ad($fileIdentifier, $file); } return $loader; @@ -46,7 +46,7 @@ class ComposerAutoloaderInit49c7847968b4d07e4659a00d91db5255 * @param string $file * @return void */ -function composerRequire49c7847968b4d07e4659a00d91db5255($fileIdentifier, $file) +function composerRequireb981bffc907afb7807601aec8347a8ad($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 3faf1f90eaf..91466525598 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 +class ComposerStaticInitb981bffc907afb7807601aec8347a8ad { public static $files = array ( '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', @@ -37,8 +37,6 @@ class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 'Rector\\CakePHP\\' => 15, 'Rector\\' => 7, 'RectorPrefix202209\\Webmozart\\Assert\\' => 36, - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\' => 43, - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\' => 44, 'RectorPrefix202209\\Symplify\\PackageBuilder\\' => 43, 'RectorPrefix202209\\Symplify\\EasyParallel\\' => 41, 'RectorPrefix202209\\Symplify\\AutowireArrayParameter\\' => 51, @@ -137,14 +135,6 @@ class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\' => - array ( - 0 => __DIR__ . '/..' . '/symplify/symplify-kernel/src', - ), - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\' => - array ( - 0 => __DIR__ . '/..' . '/symplify/smart-file-system/src', - ), 'RectorPrefix202209\\Symplify\\PackageBuilder\\' => array ( 0 => __DIR__ . '/..' . '/symplify/package-builder/src', @@ -1333,26 +1323,6 @@ class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 'RectorPrefix202209\\Symplify\\PackageBuilder\\ValueObject\\MethodName' => __DIR__ . '/..' . '/symplify/package-builder/src/ValueObject/MethodName.php', 'RectorPrefix202209\\Symplify\\PackageBuilder\\ValueObject\\Option' => __DIR__ . '/..' . '/symplify/package-builder/src/ValueObject/Option.php', 'RectorPrefix202209\\Symplify\\PackageBuilder\\Yaml\\ParametersMerger' => __DIR__ . '/..' . '/symplify/package-builder/src/Yaml/ParametersMerger.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Exception/FileNotFoundException.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\FileSystemFilter' => __DIR__ . '/..' . '/symplify/smart-file-system/src/FileSystemFilter.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\FileSystemGuard' => __DIR__ . '/..' . '/symplify/smart-file-system/src/FileSystemGuard.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Finder\\FinderSanitizer' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Finder/FinderSanitizer.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Finder\\SmartFinder' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Finder/SmartFinder.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Json\\JsonFileSystem' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Json/JsonFileSystem.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\Normalizer\\PathNormalizer' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Normalizer/PathNormalizer.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\SmartFileInfo' => __DIR__ . '/..' . '/symplify/smart-file-system/src/SmartFileInfo.php', - 'RectorPrefix202209\\Symplify\\SmartFileSystem\\SmartFileSystem' => __DIR__ . '/..' . '/symplify/smart-file-system/src/SmartFileSystem.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Config\\Loader\\ParameterMergingLoaderFactory' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/Config/Loader/ParameterMergingLoaderFactory.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\ContainerBuilderFactory' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/ContainerBuilderFactory.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Contract\\Config\\LoaderFactoryInterface' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/Contract/Config/LoaderFactoryInterface.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Contract\\LightKernelInterface' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/Contract/LightKernelInterface.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\DependencyInjection\\LoadExtensionConfigsCompilerPass' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/DependencyInjection/LoadExtensionConfigsCompilerPass.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Exception\\BootException' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/Exception/BootException.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\Exception\\ShouldNotHappenException' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/Exception/ShouldNotHappenException.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\HttpKernel\\AbstractSymplifyKernel' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/HttpKernel/AbstractSymplifyKernel.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\ValueObject\\KernelBootAndApplicationRun' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/ValueObject/KernelBootAndApplicationRun.php', - 'RectorPrefix202209\\Symplify\\SymplifyKernel\\ValueObject\\SymplifyKernelConfig' => __DIR__ . '/..' . '/symplify/symplify-kernel/src/ValueObject/SymplifyKernelConfig.php', 'RectorPrefix202209\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', 'RectorPrefix202209\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', 'RectorPrefix202209\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', @@ -1772,7 +1742,9 @@ class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 'Rector\\Core\\StaticReflection\\SourceLocator\\ParentAttributeSourceLocator' => __DIR__ . '/../..' . '/src/StaticReflection/SourceLocator/ParentAttributeSourceLocator.php', 'Rector\\Core\\StaticReflection\\SourceLocator\\RenamedClassesSourceLocator' => __DIR__ . '/../..' . '/src/StaticReflection/SourceLocator/RenamedClassesSourceLocator.php', 'Rector\\Core\\Util\\MemoryLimiter' => __DIR__ . '/../..' . '/src/Util/MemoryLimiter.php', + 'Rector\\Core\\Util\\MultiInstanceofChecker' => __DIR__ . '/../..' . '/src/Util/MultiInstanceofChecker.php', 'Rector\\Core\\Util\\PhpVersionFactory' => __DIR__ . '/../..' . '/src/Util/PhpVersionFactory.php', + 'Rector\\Core\\Util\\Reflection\\PrivatesAccessor' => __DIR__ . '/../..' . '/src/Util/Reflection/PrivatesAccessor.php', 'Rector\\Core\\Util\\StringUtils' => __DIR__ . '/../..' . '/src/Util/StringUtils.php', 'Rector\\Core\\Validation\\Collector\\EmptyConfigurableRectorCollector' => __DIR__ . '/../..' . '/src/Validation/Collector/EmptyConfigurableRectorCollector.php', 'Rector\\Core\\Validation\\EmptyConfigurableRectorChecker' => __DIR__ . '/../..' . '/src/Validation/EmptyConfigurableRectorChecker.php', @@ -2309,6 +2281,7 @@ class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 'Rector\\PHPStanStaticTypeMapper\\TypeAnalyzer\\UnionTypeAnalyzer' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeAnalyzer/UnionTypeAnalyzer.php', 'Rector\\PHPStanStaticTypeMapper\\TypeAnalyzer\\UnionTypeCommonTypeNarrower' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeAnalyzer/UnionTypeCommonTypeNarrower.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\AccessoryNonEmptyStringTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonEmptyStringTypeMapper.php', + 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\AccessoryNonFalsyStringTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNonFalsyStringTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\AccessoryNumericStringTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/AccessoryNumericStringTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\ArrayShapeTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayShapeTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\ArrayTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php', @@ -2319,6 +2292,7 @@ class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\FloatTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/FloatTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasMethodTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasMethodTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasOffsetTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetTypeMapper.php', + 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasOffsetValueTypeTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasOffsetValueTypeTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\HasPropertyTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/HasPropertyTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\IntegerTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/IntegerTypeMapper.php', 'Rector\\PHPStanStaticTypeMapper\\TypeMapper\\IntersectionTypeMapper' => __DIR__ . '/../..' . '/packages/PHPStanStaticTypeMapper/TypeMapper/IntersectionTypeMapper.php', @@ -3139,9 +3113,9 @@ class ComposerStaticInit49c7847968b4d07e4659a00d91db5255 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit49c7847968b4d07e4659a00d91db5255::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit49c7847968b4d07e4659a00d91db5255::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit49c7847968b4d07e4659a00d91db5255::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitb981bffc907afb7807601aec8347a8ad::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitb981bffc907afb7807601aec8347a8ad::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitb981bffc907afb7807601aec8347a8ad::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 2334de93239..964eea338c5 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -733,17 +733,17 @@ }, { "name": "phpstan\/phpstan", - "version": "1.8.2", - "version_normalized": "1.8.2.0", + "version": "1.8.3", + "version_normalized": "1.8.3.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpstan.git", - "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c" + "reference": "5583623b61caafebd62bc78a99533aa9d769d097" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/c53312ecc575caf07b0e90dee43883fdf90ca67c", - "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/5583623b61caafebd62bc78a99533aa9d769d097", + "reference": "5583623b61caafebd62bc78a99533aa9d769d097", "shasum": "" }, "require": { @@ -752,7 +752,7 @@ "conflict": { "phpstan\/phpstan-shim": "*" }, - "time": "2022-07-20T09:57:31+00:00", + "time": "2022-09-01T15:27:34+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -769,9 +769,13 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], "support": { "issues": "https:\/\/github.com\/phpstan\/phpstan\/issues", - "source": "https:\/\/github.com\/phpstan\/phpstan\/tree\/1.8.2" + "source": "https:\/\/github.com\/phpstan\/phpstan\/tree\/1.8.3" }, "funding": [ { @@ -782,10 +786,6 @@ "url": "https:\/\/github.com\/phpstan", "type": "github" }, - { - "url": "https:\/\/www.patreon.com\/phpstan", - "type": "patreon" - }, { "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/phpstan\/phpstan", "type": "tidelift" @@ -1922,12 +1922,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "e91434a1c47d80b5f157188f841768c4c22da112" + "reference": "f2439d57667adba44960e0d5d7afcff6dd6ad221" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/e91434a1c47d80b5f157188f841768c4c22da112", - "reference": "e91434a1c47d80b5f157188f841768c4c22da112", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/f2439d57667adba44960e0d5d7afcff6dd6ad221", + "reference": "f2439d57667adba44960e0d5d7afcff6dd6ad221", "shasum": "" }, "require": { @@ -1944,7 +1944,7 @@ "phpunit\/phpunit": "^9.5", "rector\/phpstan-rules": "^0.6", "rector\/rector-debugging": "dev-main", - "rector\/rector-src": "dev-main", + "rector\/rector-src": "dev-main#7ad13da", "symplify\/easy-ci": "^11.1", "symplify\/easy-coding-standard": "^11.1", "symplify\/phpstan-extensions": "^11.1", @@ -1952,7 +1952,7 @@ "symplify\/rule-doc-generator": "^11.1", "symplify\/vendor-patches": "^11.1" }, - "time": "2022-09-01T09:35:16+00:00", + "time": "2022-09-01T15:54:46+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1993,12 +1993,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-laravel.git", - "reference": "435188d2295e32a8d3fb0352c522e362ed503bdf" + "reference": "b5d0ad891f5df71df0bb52ea5b8455007de67239" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-laravel\/zipball\/435188d2295e32a8d3fb0352c522e362ed503bdf", - "reference": "435188d2295e32a8d3fb0352c522e362ed503bdf", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-laravel\/zipball\/b5d0ad891f5df71df0bb52ea5b8455007de67239", + "reference": "b5d0ad891f5df71df0bb52ea5b8455007de67239", "shasum": "" }, "require": { @@ -2015,7 +2015,7 @@ "phpunit\/phpunit": "^9.5", "rector\/phpstan-rules": "^0.6", "rector\/rector-debugging": "dev-main", - "rector\/rector-src": "dev-main", + "rector\/rector-src": "dev-main#7ad13da", "symplify\/easy-coding-standard": "^11.0", "symplify\/monorepo-builder": "^11.0", "symplify\/phpstan-extensions": "^11.0", @@ -2023,7 +2023,7 @@ "symplify\/rule-doc-generator": "^11.0", "symplify\/vendor-patches": "^11.0" }, - "time": "2022-09-01T09:34:06+00:00", + "time": "2022-09-01T15:53:21+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -2197,12 +2197,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "3aaa1edf5b7ba887fa9a8d306d9d4aaa15918a30" + "reference": "1a89172121f2a6a4cd010b727e6456ca49d1f8e1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/3aaa1edf5b7ba887fa9a8d306d9d4aaa15918a30", - "reference": "3aaa1edf5b7ba887fa9a8d306d9d4aaa15918a30", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/1a89172121f2a6a4cd010b727e6456ca49d1f8e1", + "reference": "1a89172121f2a6a4cd010b727e6456ca49d1f8e1", "shasum": "" }, "require": { @@ -2222,7 +2222,7 @@ "rector\/phpstan-rules": "^0.6", "rector\/rector-debugging": "dev-main", "rector\/rector-generator": "^0.6", - "rector\/rector-src": "dev-main", + "rector\/rector-src": "dev-main#7ad13da", "symfony\/routing": "^6.1", "symfony\/security-core": "^6.1", "symfony\/security-http": "^6.1", @@ -2233,7 +2233,7 @@ "symplify\/rule-doc-generator": "^11.1", "symplify\/vendor-patches": "^11.1" }, - "time": "2022-09-01T09:33:28+00:00", + "time": "2022-09-01T15:56:27+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -3108,24 +3108,24 @@ }, { "name": "symplify\/autowire-array-parameter", - "version": "dev-main", - "version_normalized": "dev-main", + "version": "11.1.6", + "version_normalized": "11.1.6.0", "source": { "type": "git", "url": "https:\/\/github.com\/symplify\/autowire-array-parameter.git", - "reference": "f4896e243ae465a278e254b0213fc50ef4f33b5a" + "reference": "4bd09786fd6c8cad3fcf1824fc1f5f387d30e4b0" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symplify\/autowire-array-parameter\/zipball\/f4896e243ae465a278e254b0213fc50ef4f33b5a", - "reference": "f4896e243ae465a278e254b0213fc50ef4f33b5a", + "url": "https:\/\/api.github.com\/repos\/symplify\/autowire-array-parameter\/zipball\/4bd09786fd6c8cad3fcf1824fc1f5f387d30e4b0", + "reference": "4bd09786fd6c8cad3fcf1824fc1f5f387d30e4b0", "shasum": "" }, "require": { "nette\/utils": "^3.2", "php": ">=8.0", "symfony\/dependency-injection": "^6.0", - "symplify\/package-builder": "^11.2" + "symplify\/package-builder": "^11.1.6" }, "conflict": { "symplify\/coding-standard": "<11.1.6", @@ -3141,6 +3141,7 @@ "symplify\/phpstan-rules": "<11.1.6", "symplify\/rule-doc-generator": "<11.1.6", "symplify\/rule-doc-generator-contracts": "<11.1.6", + "symplify\/skipper": "<11.1.6", "symplify\/smart-file-system": "<11.1.6", "symplify\/symfony-static-dumper": "<11.1.6", "symplify\/symplify-kernel": "<11.1.6", @@ -3149,8 +3150,7 @@ "require-dev": { "phpunit\/phpunit": "^9.5.23" }, - "time": "2022-08-31T14:54:01+00:00", - "default-branch": true, + "time": "2022-08-31T08:17:59+00:00", "type": "library", "extra": { "branch-alias": { @@ -3169,7 +3169,7 @@ ], "description": "Autowire array parameters for your Symfony applications", "support": { - "source": "https:\/\/github.com\/symplify\/autowire-array-parameter\/tree\/main" + "source": "https:\/\/github.com\/symplify\/autowire-array-parameter\/tree\/11.1.6" }, "funding": [ { @@ -3261,12 +3261,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/symplify\/package-builder.git", - "reference": "63ad966820ad00573769b472ad6e0948c7fd8c78" + "reference": "abb61fa4dc9b1d7c01df23993ecbebeafdb89592" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symplify\/package-builder\/zipball\/63ad966820ad00573769b472ad6e0948c7fd8c78", - "reference": "63ad966820ad00573769b472ad6e0948c7fd8c78", + "url": "https:\/\/api.github.com\/repos\/symplify\/package-builder\/zipball\/abb61fa4dc9b1d7c01df23993ecbebeafdb89592", + "reference": "abb61fa4dc9b1d7c01df23993ecbebeafdb89592", "shasum": "" }, "require": { @@ -3276,8 +3276,7 @@ "symfony\/config": "^6.0", "symfony\/console": "^6.0", "symfony\/dependency-injection": "^6.0", - "symfony\/finder": "^6.0", - "symplify\/symplify-kernel": "^11.2" + "symfony\/finder": "^6.0" }, "conflict": { "symplify\/autowire-array-parameter": "<11.1.6", @@ -3299,9 +3298,10 @@ "symplify\/vendor-patches": "<11.1.6" }, "require-dev": { - "phpunit\/phpunit": "^9.5.23" + "phpunit\/phpunit": "^9.5.23", + "symplify\/symplify-kernel": "^11.2" }, - "time": "2022-08-31T14:54:02+00:00", + "time": "2022-09-01T15:48:20+00:00", "default-branch": true, "type": "library", "extra": { @@ -3408,152 +3408,6 @@ ], "install-path": "..\/symplify\/rule-doc-generator-contracts" }, - { - "name": "symplify\/smart-file-system", - "version": "dev-main", - "version_normalized": "dev-main", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symplify\/smart-file-system.git", - "reference": "1ca346104fae0e9a25a87af34afa8f27613bf924" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symplify\/smart-file-system\/zipball\/1ca346104fae0e9a25a87af34afa8f27613bf924", - "reference": "1ca346104fae0e9a25a87af34afa8f27613bf924", - "shasum": "" - }, - "require": { - "nette\/utils": "^3.2", - "php": ">=8.0", - "symfony\/filesystem": "^6.0", - "symfony\/finder": "^6.0" - }, - "conflict": { - "symplify\/autowire-array-parameter": "<11.1.6", - "symplify\/coding-standard": "<11.1.6", - "symplify\/composer-json-manipulator": "<11.1.6", - "symplify\/config-transformer": "<11.1.6", - "symplify\/easy-ci": "<11.1.6", - "symplify\/easy-coding-standard": "<11.1.6", - "symplify\/easy-parallel": "<11.1.6", - "symplify\/easy-testing": "<11.1.6", - "symplify\/monorepo-builder": "<11.1.6", - "symplify\/package-builder": "<11.1.6", - "symplify\/php-config-printer": "<11.1.6", - "symplify\/phpstan-extensions": "<11.1.6", - "symplify\/phpstan-rules": "<11.1.6", - "symplify\/rule-doc-generator": "<11.1.6", - "symplify\/rule-doc-generator-contracts": "<11.1.6", - "symplify\/symfony-static-dumper": "<11.1.6", - "symplify\/symplify-kernel": "<11.1.6", - "symplify\/vendor-patches": "<11.1.6" - }, - "require-dev": { - "nette\/finder": "^2.5.3", - "phpunit\/phpunit": "^9.5.23" - }, - "time": "2022-08-31T14:54:16+00:00", - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "11.2-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202209\\Symplify\\SmartFileSystem\\": "src" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "description": "Sanitized FileInfo with safe getRealPath() and other handy methods", - "support": { - "source": "https:\/\/github.com\/symplify\/smart-file-system\/tree\/main" - }, - "funding": [ - { - "url": "https:\/\/www.paypal.me\/rectorphp", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/tomasvotruba", - "type": "github" - } - ], - "install-path": "..\/symplify\/smart-file-system" - }, - { - "name": "symplify\/symplify-kernel", - "version": "dev-main", - "version_normalized": "dev-main", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symplify\/symplify-kernel.git", - "reference": "26b1e948bc1369859548b617640980d22ec62b20" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symplify\/symplify-kernel\/zipball\/26b1e948bc1369859548b617640980d22ec62b20", - "reference": "26b1e948bc1369859548b617640980d22ec62b20", - "shasum": "" - }, - "require": { - "php": ">=8.0", - "symfony\/console": "^6.0", - "symfony\/dependency-injection": "^6.0", - "symplify\/autowire-array-parameter": "^11.2", - "symplify\/package-builder": "^11.2", - "symplify\/smart-file-system": "^11.2", - "webmozart\/assert": "^1.10" - }, - "conflict": { - "symplify\/coding-standard": "<11.1.6", - "symplify\/config-transformer": "<11.1.6", - "symplify\/easy-ci": "<11.1.6", - "symplify\/easy-coding-standard": "<11.1.6", - "symplify\/easy-parallel": "<11.1.6", - "symplify\/easy-testing": "<11.1.6", - "symplify\/monorepo-builder": "<11.1.6", - "symplify\/php-config-printer": "<11.1.6", - "symplify\/phpstan-extensions": "<11.1.6", - "symplify\/phpstan-rules": "<11.1.6", - "symplify\/rule-doc-generator": "<11.1.6", - "symplify\/rule-doc-generator-contracts": "<11.1.6", - "symplify\/symfony-static-dumper": "<11.1.6", - "symplify\/vendor-patches": "<11.1.6" - }, - "require-dev": { - "phpunit\/phpunit": "^9.5.23" - }, - "time": "2022-08-31T14:54:06+00:00", - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "11.2-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202209\\Symplify\\SymplifyKernel\\": "src" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "description": "Internal Kernel for Symplify packages", - "support": { - "source": "https:\/\/github.com\/symplify\/symplify-kernel\/tree\/main" - }, - "install-path": "..\/symplify\/symplify-kernel" - }, { "name": "webmozart\/assert", "version": "1.11.0", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 307d2b28b3f..ad459e3d04c 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202209; -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.14.x-dev'), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => '708411c7e45ac85371a99d50f52284971494bede', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'e300eb6c535192decd27a85bc72a9290f0d6b3bd', '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.4', 'version' => '2.0.4.0', 'reference' => '8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89', '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), 'nette/utils' => array('pretty_version' => 'v3.2.7', 'version' => '3.2.7.0', 'reference' => '0af4e3de4df9f1543534beab255ccf459e7a2c99', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.14.0', 'version' => '4.14.0.0', 'reference' => '34bea19b6e03d8153165d8f30bba4c3be86184c1', '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.7.0', 'version' => '1.7.0.0', 'reference' => '367a8d9d5f7da2a0136422d27ce8840583926955', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.8.2', 'version' => '1.8.2.0', 'reference' => 'c53312ecc575caf07b0e90dee43883fdf90ca67c', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan-phpunit' => array('pretty_version' => '1.1.1', 'version' => '1.1.1.0', 'reference' => '4a3c437c09075736285d1cabb5c75bf27ed0bc84', 'type' => 'phpstan-extension', 'install_path' => __DIR__ . '/../phpstan/phpstan-phpunit', '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')), 'react/cache' => array('pretty_version' => 'v1.1.1', 'version' => '1.1.1.0', 'reference' => '4bf736a2cccec7298bdf745db77585966fc2ca7e', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.4', 'version' => '0.6.4.0', 'reference' => 'a778f3fb828d68caf8a9ab6567fd8342a86f12fe', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.9.0', 'version' => '1.9.0.0', 'reference' => '6d38296756fa644e6cb1bfe95eff0f9a4ed6edcb', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '187fb56f46d424afb6ec4ad089269c72eec2e137', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.9.0', 'version' => '2.9.0.0', 'reference' => '234f8fd1023c9158e2314fa9d7d0e6a83db42910', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise-timer' => array('pretty_version' => 'v1.9.0', 'version' => '1.9.0.0', 'reference' => 'aa7a73c74b8d8c0f622f5982ff7b0351bc29e495', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise-timer', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.12.0', 'version' => '1.12.0.0', 'reference' => '81e1b4d7f5450ebd8d2e9a95bb008bb15ca95a7b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => '7a423506ee1903e89f1e08ec5f0ed430ff784ae9', '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.14.x-dev', 1 => 'dev-main')), 'rector/rector-cakephp' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bfaf952b7093bd0b253ffcba4b1a1561d3b4e743', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-cakephp', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '3ef708535ac9223b873e7002ced898bc8d2bf301', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e91434a1c47d80b5f157188f841768c4c22da112', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-laravel' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '435188d2295e32a8d3fb0352c522e362ed503bdf', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-laravel', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-phpoffice' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e5a1d4c4cfab26fe21c05b32e2c3b186f35f368e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpoffice', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '087730ed2ff1cbb084a542fc90984b27b22cf9eb', '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.14.x-dev'), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '3aaa1edf5b7ba887fa9a8d306d9d4aaa15918a30', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '4.0.4', 'version' => '4.0.4.0', 'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/config' => array('pretty_version' => 'v6.1.3', 'version' => '6.1.3.0', 'reference' => 'a0645dc585d378b73c01115dd7ab9348f7d40c85', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.1.4', 'version' => '6.1.4.0', 'reference' => '7fccea8728aa2d431a6725b02b3ce759049fc84d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/contracts' => array('pretty_version' => 'v3.1.1', 'version' => '3.1.1.0', 'reference' => '8656c9e7f44435eaf428f2aa7f083c65297fb22f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/dependency-injection' => array('pretty_version' => 'v6.1.3', 'version' => '6.1.3.0', 'reference' => '079e336a1880f457b219aecc3d41bef2f1093b0b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/event-dispatcher-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/filesystem' => array('pretty_version' => 'v6.1.4', 'version' => '6.1.4.0', 'reference' => '3f39c04d2630c34019907b02f85672dac99f8659', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.1.3', 'version' => '6.1.3.0', 'reference' => '39696bff2c2970b3779a5cac7bf9f0b88fc2b709', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-client-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), '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.26.0', 'version' => '1.26.0.0', 'reference' => '219aa369ceff116e673852dce47c3a41794c14bd', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0|3.0')), 'symfony/string' => array('pretty_version' => 'v6.1.4', 'version' => '6.1.4.0', 'reference' => '290972cad7b364e3befaa74ba0ec729800fb161c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symplify/autowire-array-parameter' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'f4896e243ae465a278e254b0213fc50ef4f33b5a', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/autowire-array-parameter', 'aliases' => array(0 => '11.2.x-dev'), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.1.6', 'version' => '11.1.6.0', 'reference' => '94dc8a3744341c18233ac46686a177972611a20a', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/package-builder' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '63ad966820ad00573769b472ad6e0948c7fd8c78', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/package-builder', 'aliases' => array(0 => '11.2.x-dev'), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.6', 'version' => '11.1.6.0', 'reference' => '9a770657a2f7be08d87286201cd6a79bb10cbea1', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/smart-file-system' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1ca346104fae0e9a25a87af34afa8f27613bf924', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/smart-file-system', 'aliases' => array(0 => '11.2.x-dev'), 'dev_requirement' => \false), 'symplify/symplify-kernel' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '26b1e948bc1369859548b617640980d22ec62b20', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/symplify-kernel', 'aliases' => array(0 => '11.2.x-dev'), '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.14.x-dev'), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => '708411c7e45ac85371a99d50f52284971494bede', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'e300eb6c535192decd27a85bc72a9290f0d6b3bd', '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.4', 'version' => '2.0.4.0', 'reference' => '8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89', '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), 'nette/utils' => array('pretty_version' => 'v3.2.7', 'version' => '3.2.7.0', 'reference' => '0af4e3de4df9f1543534beab255ccf459e7a2c99', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.14.0', 'version' => '4.14.0.0', 'reference' => '34bea19b6e03d8153165d8f30bba4c3be86184c1', '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.7.0', 'version' => '1.7.0.0', 'reference' => '367a8d9d5f7da2a0136422d27ce8840583926955', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.8.3', 'version' => '1.8.3.0', 'reference' => '5583623b61caafebd62bc78a99533aa9d769d097', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan-phpunit' => array('pretty_version' => '1.1.1', 'version' => '1.1.1.0', 'reference' => '4a3c437c09075736285d1cabb5c75bf27ed0bc84', 'type' => 'phpstan-extension', 'install_path' => __DIR__ . '/../phpstan/phpstan-phpunit', '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')), 'react/cache' => array('pretty_version' => 'v1.1.1', 'version' => '1.1.1.0', 'reference' => '4bf736a2cccec7298bdf745db77585966fc2ca7e', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.4', 'version' => '0.6.4.0', 'reference' => 'a778f3fb828d68caf8a9ab6567fd8342a86f12fe', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.9.0', 'version' => '1.9.0.0', 'reference' => '6d38296756fa644e6cb1bfe95eff0f9a4ed6edcb', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '187fb56f46d424afb6ec4ad089269c72eec2e137', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.9.0', 'version' => '2.9.0.0', 'reference' => '234f8fd1023c9158e2314fa9d7d0e6a83db42910', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise-timer' => array('pretty_version' => 'v1.9.0', 'version' => '1.9.0.0', 'reference' => 'aa7a73c74b8d8c0f622f5982ff7b0351bc29e495', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise-timer', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.12.0', 'version' => '1.12.0.0', 'reference' => '81e1b4d7f5450ebd8d2e9a95bb008bb15ca95a7b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => '7a423506ee1903e89f1e08ec5f0ed430ff784ae9', '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.14.x-dev', 1 => 'dev-main')), 'rector/rector-cakephp' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'bfaf952b7093bd0b253ffcba4b1a1561d3b4e743', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-cakephp', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '3ef708535ac9223b873e7002ced898bc8d2bf301', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'f2439d57667adba44960e0d5d7afcff6dd6ad221', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-laravel' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b5d0ad891f5df71df0bb52ea5b8455007de67239', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-laravel', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-phpoffice' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'e5a1d4c4cfab26fe21c05b32e2c3b186f35f368e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpoffice', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '087730ed2ff1cbb084a542fc90984b27b22cf9eb', '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.14.x-dev'), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '1a89172121f2a6a4cd010b727e6456ca49d1f8e1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '4.0.4', 'version' => '4.0.4.0', 'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/config' => array('pretty_version' => 'v6.1.3', 'version' => '6.1.3.0', 'reference' => 'a0645dc585d378b73c01115dd7ab9348f7d40c85', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.1.4', 'version' => '6.1.4.0', 'reference' => '7fccea8728aa2d431a6725b02b3ce759049fc84d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/contracts' => array('pretty_version' => 'v3.1.1', 'version' => '3.1.1.0', 'reference' => '8656c9e7f44435eaf428f2aa7f083c65297fb22f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/dependency-injection' => array('pretty_version' => 'v6.1.3', 'version' => '6.1.3.0', 'reference' => '079e336a1880f457b219aecc3d41bef2f1093b0b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/event-dispatcher-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/filesystem' => array('pretty_version' => 'v6.1.4', 'version' => '6.1.4.0', 'reference' => '3f39c04d2630c34019907b02f85672dac99f8659', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.1.3', 'version' => '6.1.3.0', 'reference' => '39696bff2c2970b3779a5cac7bf9f0b88fc2b709', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-client-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), '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.26.0', 'version' => '1.26.0.0', 'reference' => '219aa369ceff116e673852dce47c3a41794c14bd', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0|3.0')), 'symfony/string' => array('pretty_version' => 'v6.1.4', 'version' => '6.1.4.0', 'reference' => '290972cad7b364e3befaa74ba0ec729800fb161c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.1.1')), 'symplify/autowire-array-parameter' => array('pretty_version' => '11.1.6', 'version' => '11.1.6.0', 'reference' => '4bd09786fd6c8cad3fcf1824fc1f5f387d30e4b0', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/autowire-array-parameter', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.1.6', 'version' => '11.1.6.0', 'reference' => '94dc8a3744341c18233ac46686a177972611a20a', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/package-builder' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'abb61fa4dc9b1d7c01df23993ecbebeafdb89592', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/package-builder', 'aliases' => array(0 => '11.2.x-dev'), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.6', 'version' => '11.1.6.0', 'reference' => '9a770657a2f7be08d87286201cd6a79bb10cbea1', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', '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/README.md b/vendor/phpstan/phpstan/README.md index a1e47fdb9b4..1e9d2dcb150 100644 --- a/vendor/phpstan/phpstan/README.md +++ b/vendor/phpstan/phpstan/README.md @@ -18,9 +18,9 @@ PHPStan focuses on finding errors in your code without actually running it. It c even before you write tests for the code. It moves PHP closer to compiled languages in the sense that the correctness of each line of the code can be checked before you run the actual line. -**[Read more about PHPStan in an introductory article »](https://phpstan.org/blog/find-bugs-in-your-code-without-writing-tests)** +**[Read more about PHPStan »](https://phpstan.org/)** -**[Try out PHPStan on the on-line playground! »](https://phpstan.org/)** +**[Try out PHPStan on the on-line playground! »](https://phpstan.org/try)** ## Sponsors diff --git a/vendor/phpstan/phpstan/composer.json b/vendor/phpstan/phpstan/composer.json index 2be455ecfe8..68a65baa711 100644 --- a/vendor/phpstan/phpstan/composer.json +++ b/vendor/phpstan/phpstan/composer.json @@ -4,6 +4,10 @@ "license": [ "MIT" ], + "keywords": [ + "dev", + "static analysis" + ], "require": { "php": "^7.2|^8.0" }, diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index d2a91a0d5f8f742a28b145f4b4e6e8ebe7da7fe5..dc6fed23b433d8d4a95a07eb17b01868293533e7 100644 GIT binary patch delta 474927 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%0Dh}I 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