// ĠTODO : Ġmut ed Ġautomatically , Ġinvestigate Ġshould Ġit Ġbe Ġran Ġfor ĠJS Ġor Ġnot Ċ // ĠIG NORE _ BACKEND : ĠJS , ĠN ATIVE Ċ Ċ // ĠWITH _ REF LECT Ċ Ċ import Ġkotlin . reflect . jvm . java Type Ċ import Ġkotlin . test . assertEquals Ċ Ċ fun ĠlistOf Strings (): ĠList < String > Ġ= Ġnull !! Ċ Ċ class ĠFoo < T > Ċ class ĠBar Ċ fun Ġfoo Of Inv Bar (): ĠFoo < Bar > Ġ= Ġnull !! Ċ fun Ġfoo Of In Bar (): ĠFoo < in ĠBar > Ġ= Ġnull !! Ċ fun Ġfoo Of Out Bar (): ĠFoo < out ĠBar > Ġ= Ġnull !! Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ ĠassertEquals ( String :: class . java , Ġ:: listOf Strings . returnType . arguments . single (). type !!. java Type ) ĊĊĠĠĠ ĠassertEquals ( Bar :: class . java , Ġ:: foo Of Inv Bar . returnType . arguments . single (). type !!. java Type ) ĊĠĠĠ ĠassertEquals ( Bar :: class . java , Ġ:: foo Of In Bar . returnType . arguments . single (). type !!. java Type ) ĊĠĠĠ ĠassertEquals ( Bar :: class . java , Ġ:: foo Of Out Bar . returnType . arguments . single (). type !!. java Type ) ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ