-------------------- <A: void <init>()> (cg) --------------------
[0@L9] invokespecial %this.<java.lang.Object: void <init>()>(); [<java.lang.Object: void <init>()>]

-------------------- <A: void foo()> (cg) --------------------
[1@L11] invokespecial temp$0.<B: void <init>()>(); [<B: void <init>()>]
[3@L12] invokevirtual b.<B: void bar()>(); [<B: void bar()>]

-------------------- <B: void <init>()> (cg) --------------------
[0@L16] invokespecial %this.<java.lang.Object: void <init>()>(); [<java.lang.Object: void <init>()>]

-------------------- <B: void bar()> (cg) --------------------
[1@L18] invokespecial temp$0.<C: void <init>()>(); [<C: void <init>()>]
[3@L19] invokevirtual c.<C: void baz()>(); [<C: void baz()>]

-------------------- <C: void <init>()> (cg) --------------------
[0@L23] invokespecial %this.<java.lang.Object: void <init>()>(); [<java.lang.Object: void <init>()>]

-------------------- <C: void baz()> (cg) --------------------
[0@L25] invokestatic <Recursion: void main(java.lang.String[])>(%nullconst); [<Recursion: void main(java.lang.String[])>]

-------------------- <Recursion: void main(java.lang.String[])> (cg) --------------------
[1@L4] invokespecial temp$0.<A: void <init>()>(); [<A: void <init>()>]
[3@L5] invokevirtual a.<A: void foo()>(); [<A: void foo()>]

