// ĠWITH _ STD LIB Ċ Ċ import Ġkotlin . test .* Ċ import Ġkotlin . reflect . K Property Ċ Ċ var Ġlog : ĠString Ġ= Ġ"" Ċ Ċ inline Ġfun Ġ< T > Ġrun Logged ( entry : ĠString , Ġaction : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġlog Ġ+= Ġentry ĊĠĠĠ Ġreturn Ġaction () Ċ } Ċ Ċ operator Ġfun ĠString . provide Delegate ( host : ĠAny ?, Ġp : ĠK Property < *> ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( p . name Ġ== Ġthis ) Ġrun Logged (" td f ($ this ); ") Ġ{ Ġthis Ġ} Ġelse Ġ" fail Ġ 1 " Ċ Ċ operator Ġfun ĠString . getValue ( receiver : ĠAny ?, Ġp : ĠK Property < *> ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( p . name Ġ== Ġthis ) Ġrun Logged (" get ($ this ); ") Ġ{ Ġthis Ġ} Ġelse Ġ" fail Ġ 2 " Ċ Ċ val ĠO Ġby Ġrun Logged (" O ; ") Ġ{ Ġ" O " Ġ} Ċ val ĠK Ġby Ġrun Logged (" K ; ") Ġ{ Ġ" K " Ġ} Ċ val ĠOK Ġ= Ġrun Logged (" OK ; ") Ġ{ ĠO Ġ+ ĠK Ġ} Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ ĠassertEquals (" O ; td f ( O ); K ; td f ( K ); OK ; get ( O ); get ( K ); ", Ġlog ) ĊĠĠĠ Ġreturn ĠOK Ċ } Ċ