| // RUN_PIPELINE_TILL: BACKEND |
| // FIR_IDENTICAL |
| // ISSUE: KT-58874 |
| // WITH_STDLIB |
| // FIR_DUMP |
| |
| import kotlin.reflect.KProperty |
| |
| class State<S>(var value: S) |
| operator fun <V> State<V>.getValue(thisRef: Any?, property: KProperty<*>) = value |
| inline fun <M> remember(block: () -> M): M = block() |
| |
| // list should have a type of List<Int>, not Any? |
| val list0 by remember { State(listOf(1)) } |
| |
| fun expectInt(i: Int) { |
| println(i) |
| } |
| |
| fun main() { |
| val list1 by remember { State(listOf(1)) } |
| expectInt(list0[0]) |
| expectInt(list1[0]) |
| } |
| |
| /* GENERATED_FIR_TAGS: classDeclaration, funWithExtensionReceiver, functionDeclaration, functionalType, inline, |
| integerLiteral, lambdaLiteral, localProperty, nullableType, operator, primaryConstructor, propertyDeclaration, |
| propertyDelegate, starProjection, typeParameter */ |