| // RUN_PIPELINE_TILL: CODEGEN | |
| // ISSUE: KT-86292 | |
| // WITH_STDLIB | |
| import kotlin.reflect.KProperty | |
| fun <T> mk(): T = TODO() | |
| class Foo<out T>(val v: T) | |
| operator fun <T, S : T> Foo<T>.getValue(t: Any?, p: KProperty<*>): S = | |
| @Suppress("UNCHECKED_CAST") (v as S) | |
| fun main() { | |
| val m: Map<String, Int> = mapOf("d" to 42) | |
| val f: Foo<Int> = Foo(42) | |
| val dm: String by <!INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING!>m<!> | |
| val dmD: String = m.<!INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING!>getValue<!>(null, mk()) | |
| val df: String by <!INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING!>f<!> | |
| val dfD: String = f.<!INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING!>getValue<!>(null, mk()) | |
| } | |
| /* GENERATED_FIR_TAGS: asExpression, classDeclaration, funWithExtensionReceiver, functionDeclaration, integerLiteral, | |
| intersectionType, localProperty, nullableType, operator, out, primaryConstructor, propertyDeclaration, propertyDelegate, | |
| stringLiteral, typeConstraint, typeParameter */ |