From bb284f658574249ce2f2da444b8c0d982b811819 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 7 Aug 2023 12:06:43 +0700 Subject: [PATCH] [PHPStanStaticTypeMapper] Reduce autowire() parameter on ArrayTypeMapper (#4696) * [PHPStanStaticTypeMapper] Reduce autowire() parameter on ArrayTypeMapper * [PHPStanStaticTypeMapper] Reduce autowire() parameter on ArrayTypeMapper * [ci-review] Rector Rectify --------- Co-authored-by: GitHub Action --- .../TypeMapper/ArrayTypeMapper.php | 29 +++++++------------ .../LazyContainerFactory.php | 9 +----- 2 files changed, 11 insertions(+), 27 deletions(-) diff --git a/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php b/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php index 12db369ca24..f426d35dde0 100644 --- a/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php +++ b/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php @@ -41,31 +41,22 @@ final class ArrayTypeMapper implements TypeMapperInterface */ public const HAS_GENERIC_TYPE_PARENT = 'has_generic_type_parent'; - private PHPStanStaticTypeMapper $phpStanStaticTypeMapper; - - private UnionTypeCommonTypeNarrower $unionTypeCommonTypeNarrower; - - private ReflectionProvider $reflectionProvider; - - private GenericClassStringTypeNormalizer $genericClassStringTypeNormalizer; + public function __construct( + private readonly UnionTypeCommonTypeNarrower $unionTypeCommonTypeNarrower, + private readonly ReflectionProvider $reflectionProvider, + private readonly GenericClassStringTypeNormalizer $genericClassStringTypeNormalizer, + private readonly DetailedTypeAnalyzer $detailedTypeAnalyzer + ) { + } - private DetailedTypeAnalyzer $detailedTypeAnalyzer; + private PHPStanStaticTypeMapper $phpStanStaticTypeMapper; // To avoid circular dependency #[Required] - public function autowire( - PHPStanStaticTypeMapper $phpStanStaticTypeMapper, - UnionTypeCommonTypeNarrower $unionTypeCommonTypeNarrower, - ReflectionProvider $reflectionProvider, - GenericClassStringTypeNormalizer $genericClassStringTypeNormalizer, - DetailedTypeAnalyzer $detailedTypeAnalyzer, - ): void { + public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper): void + { $this->phpStanStaticTypeMapper = $phpStanStaticTypeMapper; - $this->unionTypeCommonTypeNarrower = $unionTypeCommonTypeNarrower; - $this->reflectionProvider = $reflectionProvider; - $this->genericClassStringTypeNormalizer = $genericClassStringTypeNormalizer; - $this->detailedTypeAnalyzer = $detailedTypeAnalyzer; } /** diff --git a/src/DependencyInjection/LazyContainerFactory.php b/src/DependencyInjection/LazyContainerFactory.php index 7490360fca5..aeb1cabcbfc 100644 --- a/src/DependencyInjection/LazyContainerFactory.php +++ b/src/DependencyInjection/LazyContainerFactory.php @@ -82,7 +82,6 @@ use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper; -use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeCommonTypeNarrower; use Rector\PHPStanStaticTypeMapper\TypeMapper\AccessoryLiteralStringTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\AccessoryNonEmptyStringTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\AccessoryNonFalsyStringTypeMapper; @@ -135,8 +134,6 @@ use Rector\StaticTypeMapper\PhpParser\StringNodeMapper; use Rector\StaticTypeMapper\PhpParser\UnionTypeNodeMapper; use Rector\StaticTypeMapper\StaticTypeMapper; -use Rector\TypeDeclaration\NodeTypeAnalyzer\DetailedTypeAnalyzer; -use Rector\TypeDeclaration\TypeAnalyzer\GenericClassStringTypeNormalizer; use Symfony\Component\Console\Application; use Webmozart\Assert\Assert; @@ -400,11 +397,7 @@ static function (NameScopeFactory $nameScopeFactory, Container $container): void ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container): void { $arrayTypeMapper->autowire( - $container->make(PHPStanStaticTypeMapper::class), - $container->make(UnionTypeCommonTypeNarrower::class), - $container->make(ReflectionProvider::class), - $container->make(GenericClassStringTypeNormalizer::class), - $container->make(DetailedTypeAnalyzer::class), + $container->make(PHPStanStaticTypeMapper::class) ); } );