@@ -754,35 +754,46 @@ if sys.version_info[0] >= 2:
754754reveal_type('') # N: Revealed type is "Literal['']?"
755755[builtins fixtures/ops.pyi]
756756
757- [case testUnreachableFlagWithBadControlFlow ]
757+ [case testUnreachableFlagWithBadControlFlow1 ]
758758# flags: --warn-unreachable
759759a: int
760760if isinstance(a, int):
761761 reveal_type(a) # N: Revealed type is "builtins.int"
762762else:
763763 reveal_type(a) # E: Statement is unreachable
764+ [builtins fixtures/isinstancelist.pyi]
764765
766+ [case testUnreachableFlagWithBadControlFlow2]
767+ # flags: --warn-unreachable
765768b: int
766769while isinstance(b, int):
767770 reveal_type(b) # N: Revealed type is "builtins.int"
768771else:
769772 reveal_type(b) # E: Statement is unreachable
773+ [builtins fixtures/isinstancelist.pyi]
770774
775+ [case testUnreachableFlagWithBadControlFlow3]
776+ # flags: --warn-unreachable
771777def foo(c: int) -> None:
772778 reveal_type(c) # N: Revealed type is "builtins.int"
773779 assert not isinstance(c, int)
774780 reveal_type(c) # E: Statement is unreachable
781+ [builtins fixtures/isinstancelist.pyi]
775782
783+ [case testUnreachableFlagWithBadControlFlow4]
784+ # flags: --warn-unreachable
776785d: int
777786if False:
778787 reveal_type(d) # E: Statement is unreachable
788+ [builtins fixtures/isinstancelist.pyi]
779789
790+ [case testUnreachableFlagWithBadControlFlow5]
791+ # flags: --warn-unreachable
780792e: int
781793if True:
782794 reveal_type(e) # N: Revealed type is "builtins.int"
783795else:
784796 reveal_type(e) # E: Statement is unreachable
785-
786797[builtins fixtures/isinstancelist.pyi]
787798
788799[case testUnreachableFlagStatementAfterReturn]
@@ -1390,3 +1401,18 @@ def f() -> None:
13901401 if nope():
13911402 x = 1 # E: Statement is unreachable
13921403[builtins fixtures/dict.pyi]
1404+
1405+ [case testUnreachableModuleBody1]
1406+ # flags: --warn-unreachable
1407+ from typing import NoReturn
1408+ def foo() -> NoReturn:
1409+ raise Exception("foo")
1410+ foo()
1411+ x = 1 # E: Statement is unreachable
1412+ [builtins fixtures/exception.pyi]
1413+
1414+ [case testUnreachableModuleBody2]
1415+ # flags: --warn-unreachable
1416+ raise Exception
1417+ x = 1 # E: Statement is unreachable
1418+ [builtins fixtures/exception.pyi]
0 commit comments