// Ġ! CHECK _ TYPE Ċ Ċ // KT - 2 1 7 9 ĠNested Ġfunction Ġliteral Ġbreaks Ġcompiler Ċ package Ġi Ċ Ċ //+ JDK Ċ import Ġjava . util .* Ċ import Ġcheck Subtype Ċ Ċ fun Ġtest () Ġ{ ĊĠĠĠ Ġval Ġsample 1 : ĠList < List < Int ? >> Ġ= Ġarray List ( array List < Int ? >( 1 , Ġ 7 , Ġnull , Ġ 8 )) ĊĊĠĠĠ Ġ// break s Ġcompiler ĊĠĠĠ Ġval Ġsample 2 Ġ= Ġsample 1 . map ({ it . map ({ it }) }) ĊĠĠĠ Ġcheck Subtype < List < List < Int ? >> >( sample 2 ) ĊĊĠĠĠ Ġ// break s Ġcompiler ĊĠĠĠ Ġval Ġsample 3 Ġ= Ġsample 1 . map ({ row Ġ-> Ġrow . map ({ column Ġ-> Ġcolumn }) }) ĊĠĠĠ Ġcheck Subtype < List < List < Int ? >> >( sample 3 ) ĊĊĠĠĠ Ġ// does n 't Ġbreak Ġcompiler ĊĠĠĠ Ġval Ġidentity : Ġ( Int ?) Ġ-> ĠInt ? Ġ= Ġ{ column Ġ-> Ġcolumn } ĊĠĠĠ Ġval Ġsample 4 Ġ= Ġsample 1 . map ({ row Ġ-> Ġrow . map ( identity )}) ĊĠĠĠ Ġcheck Subtype < List < List < Int ? >> >( sample 4 ) Ċ } Ċ Ċ // ------------ Ċ Ċ fun Ġ< T > Ġarray List ( var arg Ġvalues : ĠT ) Ġ: ĠArrayList < T > Ġ= Ġvalues . to Collection ( ArrayList < T >( values . size )) Ċ Ċ fun Ġ< T , ĠR > ĠCollection < T >. map ( transform Ġ: Ġ( T ) Ġ-> ĠR ) Ġ: ĠList < R > Ġ{ ĊĠĠĠ Ġreturn Ġmap To ( java . util . ArrayList < R >( this . size ), Ġtransform ) Ċ } Ċ Ċ fun Ġ< T , ĠR , ĠC : ĠMutable Collection < in ĠR >> ĠCollection < T >. map To ( result : ĠC , Ġtransform Ġ: Ġ( T ) Ġ-> ĠR ) Ġ: ĠC Ġ{ ĊĠ Ġfor Ġ( item Ġin Ġthis ) ĊĠĠĠ Ġresult . add ( transform ( item )) ĊĠ Ġreturn Ġresult Ċ } Ċ Ċ fun Ġ< T , ĠC : ĠMutable Collection < in ĠT >> ĠArray < T >. to Collection ( result : ĠC ) Ġ: ĠC Ġ{ ĊĠĠĠ Ġfor Ġ( element Ġin Ġthis ) Ġresult . add ( element ) ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ val ĠCollection <* >. size Ġ: ĠInt ĊĠĠĠ Ġget () Ġ= Ġsize Ċ