*/ final class NullableTypeNodeMapper implements PhpParserNodeMapperInterface { /** * @var \Rector\StaticTypeMapper\Mapper\PhpParserNodeMapper */ private $phpParserNodeMapper; /** * @readonly * @var \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory */ private $typeFactory; public function __construct(TypeFactory $typeFactory) { $this->typeFactory = $typeFactory; } /** * @required */ public function autowire(PhpParserNodeMapper $phpParserNodeMapper) : void { $this->phpParserNodeMapper = $phpParserNodeMapper; } public function getNodeType() : string { return NullableType::class; } /** * @param NullableType $node */ public function mapToPHPStan(Node $node) : Type { $types = [$this->phpParserNodeMapper->mapToPHPStanType($node->type), new NullType()]; return $this->typeFactory->createMixedPassedOrUnionType($types); } }