// WITH_STDLIB // WORKS_WHEN_VALUE_CLASS // LANGUAGE: +ValueClasses, +GenericInlineClassParameter import kotlin.reflect.KMutableProperty0 import kotlin.reflect.KProperty operator fun KMutableProperty0.setValue(host: Any?, property: KProperty<*>, value: R) = set(value) operator fun KMutableProperty0.getValue(host: Any?, property: KProperty<*>): R = get() OPTIONAL_JVM_INLINE_ANNOTATION value class Foo(val i: T) var f = Foo(4) fun modify(ref: KMutableProperty0>) { var a by ref a = Foo(1) as Foo } fun box(): String { modify(::f) if (f.i != 1) throw AssertionError() return "OK" }