// ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ // ĠTARGET _ BACKEND : ĠJVM Ċ // ĠWITH _ REF LECT Ċ Ċ package Ġtest Ċ Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . test . assertEquals Ċ Ċ @ Target ( Annotation Target . TYPE ) Ċ annotation Ġclass ĠAnno ( ĊĠĠĠ Ġval Ġk 1 : ĠK Class < out ĠCharSequence >, ĊĠĠĠ Ġval Ġk 2 : ĠK Class < in ĠString >, ĊĠĠĠ Ġval Ġka : ĠArray < K Class < out ĠNumber >> Ċ ) Ċ Ċ fun Ġf (): Ġ@ Anno ( String :: class , ĠCharSequence :: class , Ġ[ Double :: class , ĠLong :: class , ĠInt :: class ]) ĠUnit Ġ{} Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠ Ġ"[ @ test . Anno ( k 1 = class Ġjava . lang . String , Ġk 2 = interface Ġjava . lang . CharSequence , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ka =[ class Ġjava . lang . Double , Ġclass Ġjava . lang . Long , Ġclass Ġjava . lang . Integer ]) ]", ĊĠĠĠĠĠĠĠ Ġ:: f . returnType . annotations . toString () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ