// Ġ! LANGUAGE : Ġ+ Inline Classes Ċ // ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ Ċ class ĠBox T < T >( val Ġbox ed : ĠT ) Ċ class ĠBox Any ( val Ġbox ed : ĠAny ?) Ċ class ĠBox Foo ( val Ġbox ed : ĠIF oo ?) Ċ Ċ interface ĠIF oo Ċ Ċ inline Ġclass ĠStr ( val Ġvalue : ĠString ) Ġ: ĠIF oo Ċ Ċ inline Ġclass ĠStr 2 ( val Ġvalue : ĠStr ): ĠIF oo Ċ Ċ inline Ġclass ĠStr Arr ( val Ġvalue : ĠArray < String >): ĠIF oo Ċ Ċ fun Ġbox To Type Parameter ( x : ĠStr ?) Ġ= ĠBox T ( x ) Ċ fun Ġbox To Nullable Any ( x : ĠStr ?) Ġ= ĠBox Any ( x ) Ċ fun Ġbox To Nullable Interface ( x : ĠStr ?) Ġ= ĠBox Foo ( x ) Ċ Ċ fun Ġbox 2 To Type Parameter ( x : ĠStr 2 ?) Ġ= ĠBox T ( x ) Ċ fun Ġbox 2 To Nullable Any ( x : ĠStr 2 ?) Ġ= ĠBox Any ( x ) Ċ fun Ġbox 2 To Nullable Interface ( x : ĠStr 2 ?) Ġ= ĠBox Foo ( x ) Ċ Ċ fun Ġbox Arr To Type Parameter ( x : ĠStr Arr ?) Ġ= ĠBox T ( x ) Ċ fun Ġbox Arr To Nullable Any ( x : ĠStr Arr ?) Ġ= ĠBox Any ( x ) Ċ fun Ġbox Arr To Nullable Interface ( x : ĠStr Arr ?) Ġ= ĠBox Foo ( x ) Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( box To Nullable Any ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĠĠĠ Ġif Ġ( box To Type Parameter ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĠĠĠ Ġif Ġ( box To Nullable Interface ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĊĠĠĠ Ġif Ġ( box 2 To Nullable Any ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĠĠĠ Ġif Ġ( box 2 To Type Parameter ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĠĠĠ Ġif Ġ( box 2 To Nullable Interface ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĊĠĠĠ Ġif Ġ( box Arr To Nullable Any ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĠĠĠ Ġif Ġ( box Arr To Type Parameter ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĠĠĠ Ġif Ġ( box Arr To Nullable Interface ( null ). boxed Ġ!= Ġnull ) Ġthrow ĠAssertionError () ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ }