// !WITH_NEW_INFERENCE // !DIAGNOSTICS: -UNUSED_PARAMETER import kotlin.reflect.KProperty class A() { operator fun getValue(t: Any?, p: KProperty<*>): T = null!! operator fun setValue(t: Any?, p: KProperty<*>, x: T) = Unit } var a1: Int by A() var a2: Int by A() class B() { operator fun getValue(t: Any?, p: KProperty<*>): T = null!! operator fun setValue(t: Any?, p: KProperty<*>, x: R) = Unit } var b1: Int by B() var b2: Int by B() class C() { operator fun getValue(t: Any?, p: KProperty<*>): R = null!! operator fun setValue(t: Any?, p: KProperty<*>, x: T) = Unit } var c1: Int by C() var c2: Int by C()