Skip to content

Commit c9692c5

Browse files
committed
Add other test case to document current behaviour
1 parent 81dae26 commit c9692c5

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

test-data/unit/check-isinstance.test

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2137,6 +2137,23 @@ else:
21372137
reveal_type(z) # N: Revealed type is "Any"
21382138
[builtins fixtures/isinstance.pyi]
21392139

2140+
[case testIsinstanceSubclassAny]
2141+
from typing import Any, Union
2142+
X: Any
2143+
class BadParent(X): pass
2144+
class GoodParent(object): pass
2145+
a: Union[GoodParent, BadParent]
2146+
if isinstance(a, BadParent):
2147+
reveal_type(a) # N: Revealed type is "__main__.BadParent"
2148+
else:
2149+
reveal_type(a) # N: Revealed type is "Union[__main__.GoodParent, __main__.BadParent]"
2150+
b: Union[int, BadParent]
2151+
if isinstance(b, (X, GoodParent)):
2152+
reveal_type(b) # N: Revealed type is "Union[Any, __main__.BadParent]"
2153+
else:
2154+
reveal_type(b) # N: Revealed type is "Union[builtins.int, __main__.BadParent]"
2155+
[builtins fixtures/isinstance.pyi]
2156+
21402157
[case testIsInstanceInitialNoneCheckSkipsImpossibleCasesNoStrictOptional]
21412158
from typing import Optional, Union
21422159

0 commit comments

Comments
 (0)