Closed
Description
As mentioned in #3952 (comment) some double-forward references (and other corner cases) are currently not resolved. For example this does not work:
x: A
A = B
B = List[int]
This is because third pass happens only once. In checker.py
we have deferred nodes, and there are mini-passes over them until they are all done, I think we can adopt the same idea here and have repeated third passes.
This is however low priority since these edge cases are extremely rare and don't cause crashes, only false positives.