// ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ // ĠTARGET _ BACKEND : ĠJVM Ċ Ċ // ĠWITH _ RUNTIME Ċ Ċ @ Retention ( Annotation Retention . RUNTIME ) Ċ annotation Ġclass ĠAnn ( ĊĠĠĠĠĠĠĠ Ġval Ġp 1 : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġp 2 : ĠShort , ĊĠĠĠĠĠĠĠ Ġval Ġp 3 : ĠByte , ĊĠĠĠĠĠĠĠ Ġval Ġp 4 : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġp 5 : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġp 6 : ĠInt Ċ ) Ċ Ċ val Ġprop 1 : ĠInt Ġ= Ġ 1 Ġor Ġ 1 Ċ val Ġprop 2 : ĠShort Ġ= Ġ 1 Ġand Ġ 1 Ċ val Ġprop 3 : ĠByte Ġ= Ġ 1 Ġxor Ġ 1 Ċ val Ġprop 4 : ĠInt Ġ= Ġ 1 Ġshl Ġ 1 Ċ val Ġprop 5 : ĠInt Ġ= Ġ 1 Ġshr Ġ 1 Ċ val Ġprop 6 : ĠInt Ġ= Ġ 1 Ġ ush r Ġ 1 Ċ Ċ @ Ann ( 1 Ġor Ġ 1 , Ġ 1 Ġand Ġ 1 , Ġ 1 Ġxor Ġ 1 , Ġ 1 Ġshl Ġ 1 , Ġ 1 Ġshr Ġ 1 , Ġ 1 Ġ ush r Ġ 1 ) Ġclass ĠMy Class Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġannotation Ġ= ĠMy Class :: class . java . getAnnotation ( Ann :: class . java ) !! ĊĠĠĠ Ġif Ġ( annotation . p 1 Ġ!= Ġprop 1 ) Ġreturn Ġ" fail Ġ 1 , Ġexpected Ġ= Ġ${ prop 1 }, Ġactual Ġ= Ġ${ annotation . p 1 }" ĊĠĠĠ Ġif Ġ( annotation . p 2 Ġ!= Ġprop 2 ) Ġreturn Ġ" fail Ġ 2 , Ġexpected Ġ= Ġ${ prop 2 }, Ġactual Ġ= Ġ${ annotation . p 2 }" ĊĠĠĠ Ġif Ġ( annotation . p 3 Ġ!= Ġprop 3 ) Ġreturn Ġ" fail Ġ 3 , Ġexpected Ġ= Ġ${ prop 3 }, Ġactual Ġ= Ġ${ annotation . p 3 }" ĊĠĠĠ Ġif Ġ( annotation . p 4 Ġ!= Ġprop 4 ) Ġreturn Ġ" fail Ġ 4 , Ġexpected Ġ= Ġ${ prop 4 }, Ġactual Ġ= Ġ${ annotation . p 4 }" ĊĠĠĠ Ġif Ġ( annotation . p 5 Ġ!= Ġprop 5 ) Ġreturn Ġ" fail Ġ 5 , Ġexpected Ġ= Ġ${ prop 5 }, Ġactual Ġ= Ġ${ annotation . p 5 }" ĊĠĠĠ Ġif Ġ( annotation . p 6 Ġ!= Ġprop 6 ) Ġreturn Ġ" fail Ġ 6 , Ġexpected Ġ= Ġ${ prop 6 }, Ġactual Ġ= Ġ${ annotation . p 6 }" ĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ