package Ġdev . false hon est y . asm helper . dsl . code Ċ Ċ import Ġdev . false hon est y . asm helper . dsl . instructions . Insn List Builder Ċ Ċ class ĠCode Block Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġblock Ġyou Ġprovide Ġto Ġthis Ġfunction Ġis Ġthe Ġliteral Ġcode Ġthat Ġwill Ġbe Ġwritten Ġto Ġthe Ġtarget . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcode ( code : Ġ() Ġ-> ĠUnit ) Ġ{} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShadow s Ġa Ġfield . ĠThe Ġname Ġof Ġthe Ġvariable Ġyou Ġassign Ġthis Ġto Ġmust Ġmatch Ġexactly Ġthe Ġtarget Ġfield . ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġtype Ġof Ġthe Ġfield Ġis Ġan Ġinterface , Ġi . e . Ġa ĠList , Ġuse Ġsome Ġimplementation Ġas Ġthe Ġgeneric Ġtype Ġ[ T ], ĊĠĠĠĠ Ġ* Ġand Ġcast Ġit Ġback Ġto Ġthe Ġinterface . ĠEx . Ġshadow Field < ArrayList < String >>() Ġas ĠList < String > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġshadow Field (): ĠT Ġ= Ġnull Ġas ĠT ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShadow s Ġa Ġlocal Ġvariable Ġin Ġthe Ġtarget Ġmethod . ĊĠĠĠĠ Ġ* ĠThe Ġname Ġof Ġthe Ġvariable Ġyou Ġassign Ġthis Ġto Ġmust Ġbe Ġin Ġthe Ġfollowing Ġpattern Ġ` local \ d + ` Ġwhere Ġthe Ġdigit ĊĠĠĠĠ Ġ* Ġat Ġthe Ġend Ġis Ġthe Ġindex Ġof Ġthe Ġlocal Ġvariable Ġyou Ġare Ġshadow ing . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġshadow Local (): ĠT Ġ= Ġnull Ġas ĠT ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShadow s Ġa Ġmethod . ĠThe Ġname Ġof Ġthe Ġvariable Ġyou Ġassign Ġthis Ġto Ġmust Ġmatch Ġexactly Ġthe Ġtarget Ġmethod 's Ġname . ĠIf Ġyou ĊĠĠĠĠ Ġ* Ġare Ġattempting Ġto Ġshadow Ġa Ġsuper Ġmethod , Ġprefix Ġthe Ġmethod Ġname Ġwith Ġ` super ` Ġand Ġcapital ize Ġthe Ġfirst Ġletter ĊĠĠĠĠ Ġ* Ġof Ġthe Ġtarget Ġmethod Ġlike Ġso : Ġ` super . methodName ` Ġ-> Ġ` super MethodName `. ĠIf Ġyou Ġare Ġtrying Ġto Ġshadow Ġa Ġnon - super ĊĠĠĠĠ Ġ* Ġmethod Ġthat Ġactually Ġstarts Ġwith Ġthe Ġword Ġ" super ", Ġprefix Ġit Ġwith Ġan Ġunderscore . ĠIf Ġyou Ġare Ġtrying Ġto Ġshadow Ġa ĊĠĠĠĠ Ġ* Ġsuper Ġmethod Ġwhere Ġthe Ġname Ġstarts Ġwith Ġa Ġcapital ized Ġletter , Ġprefix Ġit Ġwith Ġ` super _` Ġinstead . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR > Ġshadow Method (): Ġ() Ġ-> ĠR Ġ= Ġ{ Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull ): Ġ( P 1 ) Ġ-> ĠR Ġ= Ġ{ Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 , ĠP 4 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull , Ġp 4 : ĠP 4 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 , ĠP 4 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull , Ġp 4 : ĠP 4 ? Ġ= Ġnull , Ġp 5 : ĠP 5 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull , Ġp 4 : ĠP 4 ? Ġ= Ġnull , Ġp 5 : ĠP 5 ? Ġ= Ġnull , Ġp 6 : ĠP 6 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull , Ġp 4 : ĠP 4 ? Ġ= Ġnull , Ġp 5 : ĠP 5 ? Ġ= Ġnull , Ġp 6 : ĠP 6 ? Ġ= Ġnull , Ġp 7 : ĠP 7 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 , ĠP 8 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull , Ġp 4 : ĠP 4 ? Ġ= Ġnull , Ġp 5 : ĠP 5 ? Ġ= Ġnull , Ġp 6 : ĠP 6 ? Ġ= Ġnull , Ġp 7 : ĠP 7 ? Ġ= Ġnull , Ġp 8 : ĠP 8 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 , ĠP 8 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 , ĠP 8 , ĠP 9 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull , Ġp 4 : ĠP 4 ? Ġ= Ġnull , Ġp 5 : ĠP 5 ? Ġ= Ġnull , Ġp 6 : ĠP 6 ? Ġ= Ġnull , Ġp 7 : ĠP 7 ? Ġ= Ġnull , Ġp 8 : ĠP 8 ? Ġ= Ġnull , Ġp 9 : ĠP 9 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 , ĠP 8 , ĠP 9 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġshadow Method ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠR , ĠP 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 , ĠP 8 , ĠP 9 , ĠP 1 0 > Ġshadow Method ( p 1 : ĠP 1 ? Ġ= Ġnull , Ġp 2 : ĠP 2 ? Ġ= Ġnull , Ġp 3 : ĠP 3 ? Ġ= Ġnull , Ġp 4 : ĠP 4 ? Ġ= Ġnull , Ġp 5 : ĠP 5 ? Ġ= Ġnull , Ġp 6 : ĠP 6 ? Ġ= Ġnull , Ġp 7 : ĠP 7 ? Ġ= Ġnull , Ġp 8 : ĠP 8 ? Ġ= Ġnull , Ġp 9 : ĠP 9 ? Ġ= Ġnull , Ġp 1 0 : ĠP 1 0 ? Ġ= Ġnull ): Ġ( P 1 , ĠP 2 , ĠP 3 , ĠP 4 , ĠP 5 , ĠP 6 , ĠP 7 , ĠP 8 , ĠP 9 , ĠP 1 0 ) Ġ-> ĠR Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġnull Ġas ĠR Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġmethod Return () Ġ{} ĊĠĠĠĠĠĠĠ Ġfun Ġa Return ( obj : ĠAny ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġfun Ġi Return ( num : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġfun Ġl Return ( num : ĠLong ) Ġ{} ĊĠĠĠĠĠĠĠ Ġfun Ġf Return ( num : ĠFloat ) Ġ{} ĊĠĠĠĠĠĠĠ Ġfun Ġd Return ( num : ĠDouble ) Ġ{} ĊĠĠĠĠĠĠĠ Ġfun Ġasm ( byte code : ĠIn sn List Builder . () Ġ-> ĠUnit ) Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ