diff --git a/src/Type/TypeCombinator.php b/src/Type/TypeCombinator.php index 5159711e6f..b1060af54c 100644 --- a/src/Type/TypeCombinator.php +++ b/src/Type/TypeCombinator.php @@ -16,7 +16,6 @@ use PHPStan\Type\Constant\ConstantFloatType; use PHPStan\Type\Constant\ConstantIntegerType; use PHPStan\Type\Constant\ConstantStringType; -use PHPStan\Type\Enum\EnumCaseObjectType; use PHPStan\Type\Generic\GenericClassStringType; use PHPStan\Type\Generic\TemplateArrayType; use PHPStan\Type\Generic\TemplateBenevolentUnionType; @@ -201,7 +200,8 @@ public static function union(Type ...$types): Type if ($types[$i] instanceof StringType && !$types[$i] instanceof ClassStringType) { $hasGenericScalarTypes[ConstantStringType::class] = true; } - if ($types[$i] instanceof EnumCaseObjectType) { + $enumCases = $types[$i]->getEnumCases(); + if (count($enumCases) === 1) { $enumCaseTypes[$types[$i]->describe(VerbosityLevel::cache())] = $types[$i]; unset($types[$i]);