| |
| // FILE: test.kt |
| |
| interface A { |
| fun foo() = 32 |
| |
| fun bar(): Int { |
| return foo() |
| } |
| } |
| |
| class B : A |
| |
| fun box() { |
| (object : A {}).bar() |
| B().bar() |
| } |
| |
| // The dispatch methods added to classes directly implementing |
| // interfaces with default methods (forwarding to the actual implementation |
| // on A$DefaultImpls) have the line number of the class declaration. |
| |
| // EXPECTATIONS JVM_IR |
| // test.kt:15 box |
| // test.kt:15 <init> |
| // test.kt:15 box |
| // test.kt:15 bar |
| // test.kt:8 bar |
| // test.kt:15 foo |
| // test.kt:5 foo |
| // test.kt:15 foo |
| // test.kt:8 bar |
| // test.kt:15 bar |
| // test.kt:15 box |
| // test.kt:16 box |
| // test.kt:12 <init> |
| // test.kt:16 box |
| // test.kt:12 bar |
| // test.kt:8 bar |
| // test.kt:12 foo |
| // test.kt:5 foo |
| // test.kt:12 foo |
| // test.kt:8 bar |
| // test.kt:12 bar |
| // test.kt:16 box |
| // test.kt:17 box |
| |
| // EXPECTATIONS JS_IR |
| // test.kt:15 box |
| // test.kt:15 <init> |
| // test.kt:15 box |
| // test.kt:8 bar |
| // test.kt:5 foo |
| // test.kt:16 box |
| // test.kt:12 <init> |
| // test.kt:16 box |
| // test.kt:8 bar |
| // test.kt:5 foo |
| // test.kt:17 box |
| |
| // EXPECTATIONS WASM |
| // test.kt:15 $box (5) |
| // test.kt:15 $<no name provided>.<init> (18) |
| // test.kt:15 $box (20) |
| // test.kt:8 $A.bar (15) |
| // test.kt:5 $A.foo (16, 18) |
| // test.kt:8 $A.bar (8) |
| // test.kt:15 $box (20) |
| // test.kt:16 $box (4) |
| // test.kt:12 $B.<init> (11) |
| // test.kt:16 $box (8) |
| // test.kt:8 $A.bar (15) |
| // test.kt:5 $A.foo (16, 18) |
| // test.kt:8 $A.bar (8) |
| // test.kt:16 $box (8) |
| // test.kt:17 $box (1) |