-------------------- <AnonInner: void <init>()> (live-var) --------------------
[0@L5] invokespecial %this.<java.lang.Object: void <init>()>(); []
[1@L5] return; []

-------------------- <AnonInner: Adder makeAdder(int)> (live-var) --------------------
[0@L7] temp$0 = new AnonInner$1Anonymous0; [i, temp$0]
[1@L8] invokespecial temp$0.<AnonInner$1Anonymous0: void <init>(int)>(i); [temp$0]
[2@L8] return temp$0; []

-------------------- <AnonInner: void show()> (live-var) --------------------
[0@L17] temp$0 = <java.lang.System: java.io.PrintStream out>; [temp$0]
[1@L17] %intconst0 = 2; [%intconst0, temp$0]
[2@L17] temp$1 = invokestatic <AnonInner: Adder makeAdder(int)>(%intconst0); [temp$0, temp$1]
[3@L17] %intconst1 = 5; [%intconst1, temp$0, temp$1]
[4@L17] temp$2 = invokeinterface temp$1.<Adder: int add(int)>(%intconst1); [temp$0, temp$2]
[5@L17] invokevirtual temp$0.<java.io.PrintStream: void println(int)>(temp$2); []
[6@L17] return; []

-------------------- <AnonInner$1Anonymous0: void <init>(int)> (live-var) --------------------
[0@L8] invokespecial %this.<java.lang.Object: void <init>()>(); [%this, val$i]
[1@L8] %this.<AnonInner$1Anonymous0: int val$i> = val$i; []
[2@L8] return; []

-------------------- <AnonInner$1Anonymous0: int add(int)> (live-var) --------------------
[0@L10] temp$0 = %this.<AnonInner$1Anonymous0: int val$i>; [j, temp$0]
[1@L10] temp$1 = temp$0 + j; [temp$1]
[2@L11] return temp$1; []

