// ĠNO _ CHECK _ L AMBDA _ IN LIN ING Ċ // ĠFILE : Ġ 1 . kt Ċ Ċ inline Ġfun Ġ< T > Ġrun ( c : Ġ() Ġ-> ĠT ): ĠT Ġ= Ġc () Ċ Ċ // ĠFILE : Ġ 2 . kt Ċ Ċ interface ĠRunnable Ġ{ ĊĠĠĠ Ġfun Ġrun (): ĠString Ċ } Ċ Ċ interface ĠRunnable String Ġ{ ĊĠĠĠ Ġfun Ġrun ( s : ĠString ): ĠString Ċ } Ċ Ċ fun Ġfoo Int (): ĠString Ġ{ ĊĠĠĠ Ġval Ġr Ġ= Ġ" O " ĊĠĠĠ Ġval Ġa Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġf ( x : ĠInt , Ġy : ĠString ? Ġ= Ġnull ): ĠString Ġ= Ġr Ġ+ Ġx Ġ+ Ġy ĊĠĠĠĠĠĠĠ Ġf ( 1 , Ġ" K ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġa Ċ } Ċ Ċ fun Ġfoo Long (): ĠString Ġ{ ĊĠĠĠ Ġval Ġr Ġ= Ġ" O " ĊĠĠĠ Ġval Ġa Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġf ( x : ĠLong , Ġy : ĠString ? Ġ= Ġnull ): ĠString Ġ= Ġr Ġ+ Ġx Ġ+ Ġy ĊĠĠĠĠĠĠĠ Ġf ( 2 , Ġ" K ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġa Ċ } Ċ Ċ fun Ġfoo Long Inside Object (): ĠString Ġ{ ĊĠĠĠ Ġval Ġr Ġ= Ġ" O " ĊĠĠĠ Ġval Ġa Ġ= Ġobject : ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġf ( x : ĠLong , Ġy : ĠString ? Ġ= Ġnull ): ĠString Ġ= Ġr Ġ+ Ġx Ġ+ Ġy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġf ( 3 , Ġ" K ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġa . run () Ċ } Ċ Ċ fun Ġfoo Long Callable Reference (): ĠString Ġ{ ĊĠĠĠ Ġval Ġr Ġ= Ġ" O " ĊĠĠĠ Ġval Ġa Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġf ( x : ĠLong , Ġy : ĠString ? Ġ= Ġnull ): ĠString Ġ= Ġr Ġ+ Ġx Ġ+ Ġy ĊĠĠĠĠĠĠĠ Ġ(:: f )( 4 , Ġ" K ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġa Ċ } Ċ Ċ class ĠA Ġ{ ĊĠĠĠ Ġfun Ġfoo Long Synt hetic Accessor ( capt : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo : ĠRunnable String Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject : ĠRunnable String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( captured : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Private ( capt , Ġcaptured ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcall Private ( x : ĠInt , Ġy : ĠString ?): ĠString Ġ= Ġ" O " Ġ+ Ġx Ġ+ Ġy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġo . run (" K ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġvar Ġres Ġ= Ġfoo Int () ĊĠĠĠ Ġif Ġ( res Ġ!= Ġ" O 1 K ") Ġreturn Ġres ĊĠĠĠ Ġres Ġ= Ġfoo Long () ĊĠĠĠ Ġif Ġ( res Ġ!= Ġ" O 2 K ") Ġreturn Ġres ĊĠĠĠ Ġres Ġ= Ġfoo Long Inside Object () ĊĠĠĠ Ġif Ġ( res Ġ!= Ġ" O 3 K ") Ġreturn Ġres ĊĠĠĠ Ġres Ġ= Ġfoo Long Callable Reference () ĊĠĠĠ Ġif Ġ( res Ġ!= Ġ" O 4 K ") Ġreturn Ġres ĊĠĠĠ Ġres Ġ= ĠA (). foo Long Synt hetic Accessor ( 5 ) ĊĠĠĠ Ġif Ġ( res Ġ!= Ġ" O 5 K ") Ġreturn Ġres ĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ