Closed
Description
This code doesn't generate errors:
class A:
y = False
a = None # type: object
(a.y for a in [A()])
However, this generates (just added isinstance
):
class A:
y = False
a = None # type: object
if isinstance(a, int): pass # only difference
(a.y for a in [A()])
Output is like this:
program.py:7: error: "object" has no attribute "y"
The latter program shouldn't generate any error. There seems to be some weird interaction between isinstance
and generator scoping.