x = None # In the real world x is in an untyped module and sometimes gets set
def method() -> None:
if x is not None and x > 10: # Unsupported operand types for < ("int" and None)
pass
$ mypy --strict-optional test_none_branch.py
test_none_branch.py:4: error: Unsupported operand types for < ("int" and None)
I'm guessing the correct behavior of binder.py should assume the type is Any if previous statements in a boolean expression invalidate the only possible types.