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)