def METHOD_NAME(get_names):
    definitions = _check_names(get_names, """
    from module import f
    import asyncio
    g = f(f)
    class C:
        h = g
        def __init__(self):
            pass
        async def __aenter__(self):
            pass
    def foo(x=a):
       bar = x
       return bar
    async def async_foo(duration):
        async def wait():
            await asyncio.sleep(100)
        for i in range(duration//100):
            await wait()
        return duration//100*100
    async with C() as cinst:
        d = cinst
    """, ['f', 'asyncio', 'g', 'C', 'foo', 'async_foo', 'cinst', 'd'])
    C_subdefs = definitions[3].defined_names()
    foo_subdefs = definitions[4].defined_names()
    async_foo_subdefs = definitions[5].defined_names()
    cinst_subdefs = definitions[6].defined_names()
    _assert_definition_names(C_subdefs, ['h', '__init__', '__aenter__'])
    _assert_definition_names(foo_subdefs, ['x', 'bar'])
    _assert_definition_names(async_foo_subdefs, ['duration', 'wait', 'i'])
    # We treat d as a name outside `async with` block
    _assert_definition_names(cinst_subdefs, [])