diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 364cb4dade3..f55281090ae 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '8cf4340f3e9ace06e20827147e1065cfd5182efa'; + public const PACKAGE_VERSION = '33b1f2f39ce2e1f3c42c33749cf65e5c3b780e2c'; /** * @api * @var string */ - public const RELEASE_DATE = '2024-04-17 15:33:21'; + public const RELEASE_DATE = '2024-04-17 09:10:23'; /** * @var int */ diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 48fcdde9f5e..532d1a6d439 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -300,10 +300,21 @@ final class LazyContainerFactory }); // tagged services $rectorConfig->when(BetterPhpDocParser::class)->needs('$phpDocNodeDecorators')->giveTagged(PhpDocNodeDecoratorInterface::class); + $rectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container) : void { + $arrayTypeMapper->autowire($container->make(PHPStanStaticTypeMapper::class)); + }); $rectorConfig->afterResolving(ConditionalTypeForParameterMapper::class, static function (ConditionalTypeForParameterMapper $conditionalTypeForParameterMapper, Container $container) : void { $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); $conditionalTypeForParameterMapper->autowire($phpStanStaticTypeMapper); }); + $rectorConfig->afterResolving(ConditionalTypeMapper::class, static function (ConditionalTypeMapper $conditionalTypeMapper, Container $container) : void { + $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); + $conditionalTypeMapper->autowire($phpStanStaticTypeMapper); + }); + $rectorConfig->afterResolving(\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, static function (\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper $unionTypeMapper, Container $container) : void { + $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); + $unionTypeMapper->autowire($phpStanStaticTypeMapper); + }); $rectorConfig->when(PHPStanStaticTypeMapper::class)->needs('$typeMappers')->giveTagged(TypeMapperInterface::class); $rectorConfig->when(PhpDocTypeMapper::class)->needs('$phpDocTypeMappers')->giveTagged(PhpDocTypeMapperInterface::class); $rectorConfig->when(PhpParserNodeMapper::class)->needs('$phpParserNodeMappers')->giveTagged(PhpParserNodeMapperInterface::class); @@ -348,22 +359,9 @@ final class LazyContainerFactory $rectorConfig->afterResolving(NameScopeFactory::class, static function (NameScopeFactory $nameScopeFactory, Container $container) : void { $nameScopeFactory->autowire($container->make(PhpDocInfoFactory::class), $container->make(StaticTypeMapper::class)); }); - $rectorConfig->afterResolving(TypeMapperInterface::class, static function (TypeMapperInterface $typeMapper, Container $container) : void { - if (!\method_exists($typeMapper, 'autowire')) { - return; - } - $typeMapper->autowire($container->make(PHPStanStaticTypeMapper::class)); - }); - $rectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container) : void { - $arrayTypeMapper->autowire($container->make(PHPStanStaticTypeMapper::class)); - }); $rectorConfig->afterResolving(PlainValueParser::class, static function (PlainValueParser $plainValueParser, Container $container) : void { $plainValueParser->autowire($container->make(StaticDoctrineAnnotationParser::class), $container->make(ArrayParser::class)); }); - $rectorConfig->afterResolving(\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, static function (\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper $unionTypeMapper, Container $container) : void { - $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); - $unionTypeMapper->autowire($phpStanStaticTypeMapper); - }); $rectorConfig->afterResolving(CurlyListNodeAnnotationToAttributeMapper::class, static function (CurlyListNodeAnnotationToAttributeMapper $curlyListNodeAnnotationToAttributeMapper, Container $container) : void { $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); $curlyListNodeAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); diff --git a/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php b/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php index 6d6e87fcda4..a0a6ec772b0 100644 --- a/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php +++ b/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php @@ -24,9 +24,6 @@ final class ConditionalTypeMapper implements TypeMapperInterface * @var \Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper */ private $phpStanStaticTypeMapper; - /** - * @api used in autowire, @todo add to lazy container or remove - */ public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper) : void { $this->phpStanStaticTypeMapper = $phpStanStaticTypeMapper;