EVOLUTION-NINJA
Edit File: DoctrineTypeAnalyzer.php
<?php declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper; use PHPStan\Type\ArrayType; use PHPStan\Type\Type; use PHPStan\Type\TypeWithClassName; use PHPStan\Type\UnionType; final class DoctrineTypeAnalyzer { public function isDoctrineCollectionWithIterableUnionType(\PHPStan\Type\Type $type) : bool { if (!$type instanceof \PHPStan\Type\UnionType) { return \false; } $arrayType = null; $hasDoctrineCollectionType = \false; foreach ($type->getTypes() as $unionedType) { if ($this->isCollectionObjectType($unionedType)) { $hasDoctrineCollectionType = \true; } if ($unionedType instanceof \PHPStan\Type\ArrayType) { $arrayType = $unionedType; } } if (!$hasDoctrineCollectionType) { return \false; } return $arrayType !== null; } private function isCollectionObjectType(\PHPStan\Type\Type $type) : bool { if (!$type instanceof \PHPStan\Type\TypeWithClassName) { return \false; } return $type->getClassName() === 'Doctrine\\Common\\Collections\\Collection'; } }