Skip to content

Commit ecdea2c

Browse files
committed
Fixed a bug that resulted in a false negative when a Literal with multiple arguments is used in a value expression. It should be treated as a UnionType special form in this case. This addresses #7870.
1 parent 286fdf9 commit ecdea2c

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

packages/pyright-internal/src/analyzer/typeEvaluator.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14897,7 +14897,13 @@ export function createTypeEvaluator(
1489714897
literalTypes.push(type);
1489814898
}
1489914899

14900-
return combineTypes(literalTypes);
14900+
let result = combineTypes(literalTypes);
14901+
14902+
if (isUnion(result) && unionClassType && isInstantiableClass(unionClassType)) {
14903+
result = TypeBase.cloneAsSpecialForm(result, ClassType.cloneAsInstance(unionClassType));
14904+
}
14905+
14906+
return result;
1490114907
}
1490214908

1490314909
// Creates a ClassVar type.

0 commit comments

Comments
 (0)