File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff 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]
21412158from typing import Optional, Union
21422159
You can’t perform that action at this time.
0 commit comments