// ĠOriginal Ġbug : ĠK T - 2 3 8 8 1 Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġclass ĠLe aked Type ( val Ġsource : ĠString ) ĊĠĠĠ Ġclass ĠClass With Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsome Callback : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġdump Callback Fields () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsome Callback !!. java Class . declared Fields ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . get ( some Callback !! ) Ġas ĠLe aked Type Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġprintln (" From Ġcallback Ġfields Ġ:: Ġle aked Type =${ it . source }") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġclass With Callback Ġ= ĠClass With Callback () ĊĊĠĠĠ Ġval Ġouter Ġ= ĠLe aked Type (" Used Ġin Ġcallback ") ĊĠĠĠ Ġval Ġle aked Ġ= ĠLe aked Type (" Used Ġin Ġapply Ġblock Ġbut Ġnot Ġcallback ") ĊĊĠĠĠ Ġclass With Callback . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġsome Callback Ġ= Ġ{ Ġprintln (" In Ġcallback Ġ:: Ġle aked Type =${ outer . source }") Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" In Ġapply Ġblock Ġusing Ġleak Ġarg Ġ:: Ġle aked Type =${ le aked . source }") ĊĠĠĠ Ġ} ĊĠĠĠ Ġclass With Callback . dump Callback Fields () Ċ } Ċ