// ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ // ĠTARGET _ BACKEND : ĠJVM Ċ // ĠWITH _ REF LECT Ċ Ċ import Ġkotlin . reflect . K Mutable Property Ċ import Ġkotlin . reflect . jvm . java Type Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠA ( private Ġvar Ġfoo : ĠString ) Ċ Ċ object ĠO Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġprivate Ġvar Ġbar : ĠString Ġ= Ġ"" Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġfoo Ġ= ĠA :: class . members . single Ġ{ Ġit . name Ġ== Ġ" foo " Ġ} Ġas ĠK Mutable Property < *> ĊĠĠĠ ĠassertEquals ( listOf ( A :: class . java ), Ġfoo . parameters . map Ġ{ Ġit . type . java Type Ġ}) ĊĠĠĠ ĠassertEquals ( listOf ( A :: class . java ), Ġfoo . getter . parameters . map Ġ{ Ġit . type . java Type Ġ}) ĊĠĠĠ ĠassertEquals ( listOf ( A :: class . java , ĠString :: class . java ), Ġfoo . setter . parameters . map Ġ{ Ġit . type . java Type Ġ}) ĊĊĠĠĠ Ġval Ġbar Ġ= ĠO :: class . members . single Ġ{ Ġit . name Ġ== Ġ" bar " Ġ} Ġas ĠK Mutable Property < *> ĊĠĠĠ ĠassertEquals ( listOf ( O :: class . java ), Ġbar . parameters . map Ġ{ Ġit . type . java Type Ġ}) ĊĠĠĠ ĠassertEquals ( listOf ( O :: class . java ), Ġbar . getter . parameters . map Ġ{ Ġit . type . java Type Ġ}) ĊĠĠĠ ĠassertEquals ( listOf ( O :: class . java , ĠString :: class . java ), Ġbar . setter . parameters . map Ġ{ Ġit . type . java Type Ġ}) ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ