// IGNORE_BACKEND: JS_IR // TODO: muted automatically, investigate should it be ran for JS or not // IGNORE_BACKEND: JS, NATIVE // WITH_REFLECT import kotlin.reflect.* import kotlin.reflect.full.* class A(val readonly: String) { var mutable: String = "before" } fun box(): String { val props = A::class.memberProperties val readonly = props.single { it.name == "readonly" } assert(readonly !is KMutableProperty1) { "Fail 1: $readonly" } val mutable = props.single { it.name == "mutable" } assert(mutable is KMutableProperty1) { "Fail 2: $mutable" } val a = A("") mutable as KMutableProperty1 assert(mutable.get(a) == "before") { "Fail 3: ${mutable.get(a)}" } mutable.set(a, "OK") return mutable.get(a) }