// File ĠA . java Ċ import Ġkotlin . Metadata ; Ċ Ċ public Ġclass ĠA Ġimplements ĠIn Ġ{ Ċ } ĊĊ Ċ // File ĠB . java Ċ import Ġkotlin . Metadata ; Ċ Ċ public Ġclass ĠB Ġimplements ĠIn Ġ{ Ċ } ĊĊ Ċ // File ĠMain . kt Ċ // ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ // ĠTARGET _ BACKEND : ĠJVM Ċ Ċ // ĠWITH _ RUNTIME Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġselect ( x : ĠT , Ġy : ĠT ) Ġ= ĠT :: class . java . simple Name Ċ Ċ // ĠThis Ġtest Ġchecks Ġmostly Ġthat Ġno ĠStack Overflow Ġhappens Ġwhile Ġmapping Ġtype Ġargument Ġof Ġselect - call Ġ( In < A Ġ& ĠB >) Ċ // ĠSee ĠK T - 1 0 9 7 2 Ċ fun Ġfoo (): ĠString Ġ= Ġselect ( A (), ĠB ()) Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( foo () Ġ!= Ġ" In ") Ġreturn Ġ" fail " ĊĠĠĠ Ġreturn Ġ" OK " Ċ } ĊĊĊ Ċ // File ĠIn . java Ċ import Ġkotlin . Metadata ; Ċ Ċ public Ġinterface ĠIn Ġ{ Ċ } Ċ