// ISSUE: KT-58013 // WITH_REFLECT // FIR_DUMP import kotlin.reflect.KProperty data class Ref(val t: D) class GenericDelegate(val value: G) operator fun Ref.provideDelegate(a: Any?, p: KProperty<*>): GenericDelegate = GenericDelegate(this.t) operator fun GenericDelegate.getValue(a: Any?, p: KProperty<*>): W = this.value fun List>.getElement(i: Int): Ref = this[i] as Ref fun test(list: List>) { val data: String by list.getElement(0)!! val data2: String by list.getElement(0) }