// Ġ! USE _ EXPERIMENT AL : Ġkotlin . Experimental Std lib Api Ċ // ĠTARGET _ BACKEND : ĠJS Ċ // ĠWITH _ REF LECT Ċ // ĠK JS _ WITH _ FULL _ RUNTIME Ċ Ċ package Ġtest Ċ Ċ import Ġkotlin . reflect . K Type Ċ import Ġkotlin . reflect . type Of Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠC Ċ Ċ fun Ġcheck ( expected : ĠString , Ġactual : ĠK Type ) Ġ{ ĊĠĠĠ ĠassertEquals ( expected , Ġactual . toString ()) Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġcheck (" Any ", ĠtypeOf < Any >()) ĊĠĠĠ Ġcheck (" String ", ĠtypeOf < String >()) ĊĠĠĠ Ġcheck (" String ?", ĠtypeOf < String ?> ()) ĊĠĠĠ Ġcheck (" Unit ", ĠtypeOf < Unit >()) ĊĊĠĠĠ Ġcheck (" C ", ĠtypeOf < C >()) ĊĠĠĠ Ġcheck (" C ?", ĠtypeOf < C ?> ()) ĊĊĠĠĠ Ġcheck (" List < String >", ĠtypeOf < List < String >> ()) ĊĠĠĠ Ġcheck (" Map < in ĠNumber , Ġ* >? ", ĠtypeOf < Map < in ĠNumber , Ġ*> ?> ()) ĊĠĠĠ Ġcheck (" Enum <* >", ĠtypeOf < Enum <* >> ()) ĊĠĠĠ Ġcheck (" Enum < Annotation Retention >", ĠtypeOf < Enum < Annotation Retention >> ()) ĊĊĠĠĠ Ġcheck (" Array < Any >", ĠtypeOf < Array < Any >> ()) ĊĠĠĠ Ġcheck (" Array <* >", ĠtypeOf < Array <* >> ()) ĊĠĠĠ Ġcheck (" Array < IntArray >", ĠtypeOf < Array < IntArray >> ()) ĊĠĠĠ Ġcheck (" Array < in ĠArray < C > ?> ", ĠtypeOf < Array < in ĠArray < C >? >> ()) ĊĊĠĠĠ Ġcheck (" Int ", ĠtypeOf < Int >()) ĊĠĠĠ Ġcheck (" Int ?", ĠtypeOf < Int ?> ()) ĊĠĠĠ Ġcheck (" Boolean ", ĠtypeOf < Boolean >()) ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ