x : int = 0 y : int = 5 z : Foo = None class Foo(object): x : int = 3 def foo(x : int) -> int: y : str = "test" def foo2() -> str: nonlocal y return y nonlocal x # The reference compiler prioritized for duplicate declaration # error and stopped compilation. # But our implementation prioritized this for an invalid nonlocal # and recovered the complation process. return x x = 1 and 2 foo(y, 5)