diff --git a/src/NodeTypeResolver/PHPStan/Type/TypeFactory.php b/src/NodeTypeResolver/PHPStan/Type/TypeFactory.php index 6f12a85490d..4bb63172494 100644 --- a/src/NodeTypeResolver/PHPStan/Type/TypeFactory.php +++ b/src/NodeTypeResolver/PHPStan/Type/TypeFactory.php @@ -64,8 +64,10 @@ public function uniquateTypes(array $types, bool $keepConstant = false): array $hasFalse = false; $hasTrue = false; foreach ($types as $type) { + // mixed only allowed to be standalone if ($type instanceof MixedType) { - $type = new MixedType(); + /** @var array */ + return [new MixedType()]; } $type = $this->normalizeObjectType($totalTypes, $type); @@ -168,12 +170,6 @@ private function createUnionOrSingleType(array $types): Type return $types[0]; } - foreach ($types as $type) { - if ($type instanceof MixedType) { - return new MixedType(); - } - } - return new UnionType($types); }