| // ISSUE: KT-66148 |
| // FILE: test.kt |
| class Controller<E> |
| |
| fun <E1> generate(block: Controller<E1>.() -> Unit) { |
| block(Controller()) |
| } |
| |
| class A(val r: String) |
| |
| fun foo(c: Controller<String>): A = A("OK") |
| |
| fun bar( |
| propertyForInvoke: A.() -> Unit, |
| ) { |
| generate { |
| foo(this).propertyForInvoke() |
| } |
| } |
| |
| fun box(): String { |
| var result = "fail" |
| bar { |
| result = r |
| } |
| |
| return result |
| } |
| |
| // EXPECTATIONS JVM_IR |
| // test.kt:22 box |
| // test.kt:23 box |
| // test.kt:16 bar |
| // test.kt:6 generate |
| // test.kt:3 <init> |
| // test.kt:6 generate |
| // EXPECTATIONS ClassicFrontend JVM_IR |
| // test.kt:17 invoke |
| // EXPECTATIONS FIR JVM_IR |
| // test.kt:17 bar$lambda$0 |
| // EXPECTATIONS JVM_IR |
| // test.kt:11 foo |
| // test.kt:9 <init> |
| // test.kt:11 foo |
| // EXPECTATIONS ClassicFrontend JVM_IR |
| // test.kt:17 invoke |
| // test.kt:24 invoke |
| // EXPECTATIONS FIR JVM_IR |
| // test.kt:17 bar$lambda$0 |
| // test.kt:24 box$lambda$0 |
| // EXPECTATIONS JVM_IR |
| // test.kt:9 getR |
| // EXPECTATIONS ClassicFrontend JVM_IR |
| // test.kt:24 invoke |
| // test.kt:25 invoke |
| // test.kt:17 invoke |
| // test.kt:18 invoke |
| // EXPECTATIONS FIR JVM_IR |
| // test.kt:24 box$lambda$0 |
| // test.kt:25 box$lambda$0 |
| // test.kt:17 bar$lambda$0 |
| // test.kt:18 bar$lambda$0 |
| // EXPECTATIONS JVM_IR |
| // test.kt:6 generate |
| // test.kt:7 generate |
| // test.kt:19 bar |
| // test.kt:27 box |
| |
| // EXPECTATIONS JS_IR |
| // test.kt:22 box |
| // test.kt:23 box |
| // test.kt:23 box$lambda |
| // test.kt:23 box |
| // test.kt:16 bar |
| // test.kt:16 bar$lambda |
| // test.kt:16 bar |
| // test.kt:6 generate |
| // test.kt:3 <init> |
| // test.kt:6 generate |
| // test.kt:17 bar$lambda$lambda |
| // test.kt:11 foo |
| // test.kt:9 <init> |
| // test.kt:9 <init> |
| // test.kt:17 bar$lambda$lambda |
| // test.kt:24 box$lambda$lambda |
| // test.kt:25 box$lambda$lambda |
| // test.kt:18 bar$lambda$lambda |
| // test.kt:7 generate |
| // test.kt:19 bar |
| // test.kt:27 box |
| |
| // EXPECTATIONS WASM |
| // test.kt:22 $box (17) |
| // test.kt:23 $box (8, 4) |
| // test.kt:16 $bar (13, 4) |
| // test.kt:6 $generate (4, 10) |
| // test.kt:3 $Controller.<init> (19) |
| // test.kt:6 $generate (4) |
| // test.kt:17 $bar$lambda.invoke (18, 12, 8) |
| // test.kt:11 $foo (36, 38, 36) |
| // test.kt:9 $A.<init> (8, 22) |
| // test.kt:11 $foo (43) |
| // test.kt:17 $bar$lambda.invoke (18) |
| // test.kt:24 $box$lambda.invoke (8, 17, 8, 18) |
| // test.kt:25 $box$lambda.invoke (5) |
| // test.kt:17 $bar$lambda.invoke (18, 37) |
| // test.kt:18 $bar$lambda.invoke (5) |
| // test.kt:6 $generate (4) |
| // test.kt:7 $generate (1) |
| // test.kt:19 $bar (1) |
| // test.kt:27 $box (11, 4) |