def METHOD_NAME():
    class X(m.Circuit):
        io = m.IO(I=m.In(m.Bit), O=m.Out(m.Bit))
    class Bar(m.Circuit):
        _INLINED_ = True
        io = m.IO(I=m.In(m.Bit), O=m.Out(m.Bit))
        x = X(name="x")
        io.O @= x(io.I)
    class Baz(m.Circuit):
        io = m.IO(I=m.In(m.Bit), O=m.Out(m.Bit))
        bar = Bar(name="bar")
        io.O @= bar(io.I)
    class Foo(m.Circuit):
        io = m.IO(I=m.In(m.Bit), O=m.Out(m.Bit))
        bar = Bar(name="bar")
        io.O @= bar(io.I)
    class Top(m.Circuit):
        io = m.IO(I=m.In(m.Bit), O=m.Out(m.Bit))
        foo = Foo(name="foo")
        baz = Baz(name="baz")
        io.O @= foo(baz(io.I))
    symbol_table = _compile("build/Top", Top)
    # NOTE: These two conditions would only hold in the post-CoreIR
    # mapping. Since we only test the magma-to-CoreIR symbol table for now,
    # these will not hold.
    #
    # assert (symbol_table.get_instance_name("Foo", "bar") ==
    #         m.symbol_table.INLINED)
    # assert symbol_table.get_inlined_instance_name("Foo", "bar", "x") == "bar_x"