diff --git a/packages/pyright-internal/src/analyzer/typeEvaluator.ts b/packages/pyright-internal/src/analyzer/typeEvaluator.ts index e6d68f15d..79e9018a3 100644 --- a/packages/pyright-internal/src/analyzer/typeEvaluator.ts +++ b/packages/pyright-internal/src/analyzer/typeEvaluator.ts @@ -14897,7 +14897,13 @@ export function createTypeEvaluator( literalTypes.push(type); } - return combineTypes(literalTypes); + let result = combineTypes(literalTypes); + + if (isUnion(result) && unionClassType && isInstantiableClass(unionClassType)) { + result = TypeBase.cloneAsSpecialForm(result, ClassType.cloneAsInstance(unionClassType)); + } + + return result; } // Creates a ClassVar type.