class A { var value: String = "fail1" private set inner class B { fun foo(): kotlin.reflect.KMutableProperty0 = this@A::value } } class C { var value: String = "fail2" private set fun bar(): kotlin.reflect.KMutableProperty0 { class D { fun foo(): kotlin.reflect.KMutableProperty0 = this@C::value } return D().foo() } } fun box(): String { val a = A() a.B().foo().set("O") val c = C() c.bar().set("K") return a.value + c.value }