diff --git a/mypy/partially_defined.py b/mypy/partially_defined.py index da0bb517189ac..38154cf697e15 100644 --- a/mypy/partially_defined.py +++ b/mypy/partially_defined.py @@ -45,7 +45,7 @@ from mypy.patterns import AsPattern, StarredPattern from mypy.reachability import ALWAYS_TRUE, infer_pattern_value from mypy.traverser import ExtendedTraverserVisitor -from mypy.types import Type, UninhabitedType +from mypy.types import Type, UninhabitedType, get_proper_type class BranchState: @@ -507,7 +507,8 @@ def visit_break_stmt(self, o: BreakStmt) -> None: self.tracker.skip_branch() def visit_expression_stmt(self, o: ExpressionStmt) -> None: - if isinstance(self.type_map.get(o.expr, None), (UninhabitedType, type(None))): + typ = self.type_map.get(o.expr) + if typ is None or isinstance(get_proper_type(typ), UninhabitedType): self.tracker.skip_branch() super().visit_expression_stmt(o)