# cython: warn.maybe_uninitialized=True
# mode: error
# tag: werror

def with_no_target(m):
    with m:
        print a
        a = 1

def unbound_manager(m1):
    with m2:
        pass
    m2 = m1

def with_target(m):
    with m as f:
        print(f)

def with_mgr(m):
    try:
        with m() as f:
            pass
    except:
        print f

_ERRORS = """
7:15: local variable 'a' referenced before assignment
11:11: local variable 'm2' referenced before assignment
24:15: local variable 'f' might be referenced before assignment
"""
