Another --warn-unreachable false positive · Issue #7207 · python/mypy (original) (raw)

I'm not sure if this is the same issue as #7204, but here's another --warn-unreahcable false positive with a much smaller test case:

from numbers import Number

def test(x: float) -> None: if not isinstance(x, Number): raise print("Not unreachable!")

...gives with mypy 0.720:

t.py:6: error: Statement is unreachable

Assuming mypy relies on x always being a float like the type hint says, the "not isinstance" is actually always False and I guess it would be legitimate for the error to be issued on line 5 (raise). But surely the print statement on line 6 is never unreachable, right?