Skip to content

Commit b6a4c1d

Browse files
author
Guido van Rossum
committed
Skip unreachable blocks in ThirdPass. Fixes #1319.
1 parent 57d20fe commit b6a4c1d

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

mypy/semanal.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2388,6 +2388,11 @@ def visit_file(self, file_node: MypyFile, fnam: str) -> None:
23882388
file_node.accept(self)
23892389
self.errors.set_ignored_lines(set())
23902390

2391+
def visit_block(self, b: Block) -> None:
2392+
if b.is_unreachable:
2393+
return
2394+
super().visit_block(b)
2395+
23912396
def visit_func_def(self, fdef: FuncDef) -> None:
23922397
self.errors.push_function(fdef.name())
23932398
self.analyze(fdef.type)

mypy/test/data/check-unreachable-code.test

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,12 @@ if MYPY:
8989
else:
9090
None + ''
9191
[builtins fixtures/bool.py]
92+
93+
[case testConditionalClassDefPY3]
94+
def f(): pass
95+
PY3 = f()
96+
if PY3:
97+
pass
98+
else:
99+
class X(object):
100+
pass

0 commit comments

Comments
 (0)