package Ġoptim ised Variable sWith When Ċ Ċ // ĠATT ACH _ LIBRARY : Ġmaven ( org . jetbrains . kotlin x : kotlin x - coroutines - core : 1 . 4 . 2 ) Ċ // ĠSHOW _ K OT LIN _ VARIABLE S Ċ Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ suspend Ġfun Ġfoo () Ġ{ ĊĠĠĠ Ġval Ġa Ġ= Ġ" a " ĊĠĠĠ Ġ// Breakpoint ! ĊĠĠĠ Ġwhen Ġ( val Ġb Ġ= Ġ" b ") Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġ" c " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġ" d " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġinline Block Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġ" e " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġf Ġ= Ġ" f ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġ" g " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( g ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġ" h " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Block Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġfoo () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ" x " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( x ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ" y " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuspend Use ( b ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Breakpoint ! ĊĠĠĠ Ġsuspend Use ( a ) ĊĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Breakpoint ! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠ Ġfoo () Ċ } Ċ Ċ suspend Ġfun Ġsuspend Use ( value : ĠAny ) Ġ{ Ċ Ċ } Ċ Ċ inline Ġfun Ġinline Block ( block : Ġ() Ġ-> ĠUnit ) Ġ= Ġblock () Ċ Ċ fun Ġblock ( block : Ġ() Ġ-> ĠUnit ) Ġ= Ġblock () Ċ