Tests: remove stepping tests on old JVM backend

This commit is contained in:
Alexander Udalov
2023-12-07 18:51:17 +01:00
committed by Space Team
parent f39c72360d
commit 5e330acd28
109 changed files with 175 additions and 1231 deletions
+2 -2
View File
@@ -9,7 +9,7 @@ fun box() {
false
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:3 cond
// test.kt:6 box
@@ -19,4 +19,4 @@ fun box() {
// EXPECTATIONS JS_IR
// test.kt:6 box
// test.kt:3 cond
// test.kt:10 box
// test.kt:10 box
+2 -2
View File
@@ -9,7 +9,7 @@ fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:7 box
// test.kt:4 eval
// test.kt:8 invoke
@@ -21,4 +21,4 @@ fun box() {
// test.kt:7 box
// test.kt:4 eval
// test.kt:8 box$lambda
// test.kt:10 box
// test.kt:10 box
@@ -9,14 +9,9 @@ fun box() {
// EXPECTATIONS JVM_IR
// test.kt:6 box
// EXPECTATIONS JVM
// test.kt:5 box
// test.kt:6 invoke
// test.kt:5 box
// EXPECTATIONS JVM JVM_IR
// test.kt:8 box
// EXPECTATIONS JS_IR
// test.kt:5 box
// test.kt:6 box$lambda
// test.kt:8 box
// test.kt:8 box
+1 -1
View File
@@ -31,7 +31,7 @@ fun box(): String {
return "OK"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:26 box
// test.kt:17 box
// test.kt:18 box
+1 -1
View File
@@ -20,7 +20,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:20 box
// test.kt:12 foo
// test.kt:13 foo
@@ -14,7 +14,7 @@ fun box() {
)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 box
// test.kt:4 <init>
// test.kt:9 box
@@ -45,4 +45,4 @@ fun box() {
// test.kt:10 box
// test.kt:6 bar
// test.kt:4 <init>
// test.kt:15 box
// test.kt:15 box
+1 -1
View File
@@ -15,7 +15,7 @@ fun box() {
.bar()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:10 box
// test.kt:4 <init>
// test.kt:10 box
+1 -1
View File
@@ -11,7 +11,7 @@ fun f(block: () -> Unit) {
block()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:5 box
// test.kt:11 f
+1 -1
View File
@@ -15,7 +15,7 @@ fun box() {
.bar()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:10 box
// test.kt:4 <init>
// test.kt:10 box
+2 -8
View File
@@ -15,17 +15,11 @@ fun box() {
a.foo()
}
// TODO: The JVM_IR backend has an extra line number on the return. This causes line
// three to be hit both on entry to the constructor and on exit after storing the
// value of prop.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:13 box
// test.kt:4 <init>
// test.kt:5 <init>
// EXPECTATIONS JVM_IR
// test.kt:4 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:13 box
// test.kt:14 box
// test.kt:5 getProp
@@ -41,4 +35,4 @@ fun box() {
// test.kt:4 <init>
// test.kt:15 box
// test.kt:9 foo
// test.kt:16 box
// test.kt:16 box
+2 -2
View File
@@ -17,7 +17,7 @@ fun box() {
A.foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:15 box
// test.kt:6 <clinit>
// test.kt:7 <clinit>
@@ -48,4 +48,4 @@ fun box() {
// test.kt:17 box
// test.kt:17 box
// test.kt:9 foo
// test.kt:18 box
// test.kt:18 box
+1 -1
View File
@@ -10,7 +10,7 @@ class A {
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:9 <init>
// test.kt:5 box
@@ -12,7 +12,7 @@ fun box() {
AWithCompanion.compPropVal
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:12 box
// test.kt:7 <clinit>
// test.kt:7 getCompPropVal
@@ -10,7 +10,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:10 box
// test.kt:6 foo
// test.kt:10 box
+1 -1
View File
@@ -32,7 +32,7 @@ class A {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:16 <init>
// test.kt:6 box
+2 -2
View File
@@ -6,11 +6,11 @@ fun box() {
42
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:5 box
// test.kt:7 box
// EXPECTATIONS JS_IR
// test.kt:6 box
// test.kt:7 box
// test.kt:7 box
+1 -1
View File
@@ -19,7 +19,7 @@ fun getC() = false
fun getD() = true
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:14 getA
// test.kt:4 box
+2 -4
View File
@@ -15,11 +15,9 @@ fun test(): Long {
return 1
}
// EXPECTATIONS JVM JVM_IR
// test.kt:6 box
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:10 test
// EXPECTATIONS JVM JVM_IR
// test.kt:11 test
// test.kt:12 test
// test.kt:6 box
@@ -28,4 +26,4 @@ fun test(): Long {
// EXPECTATIONS JS_IR
// test.kt:6 box
// test.kt:12 test
// test.kt:7 box
// test.kt:7 box
+2 -2
View File
@@ -14,7 +14,7 @@ fun box() {
4)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:7 box
// test.kt:4 <init>
// test.kt:7 box
@@ -46,4 +46,4 @@ fun box() {
// test.kt:13 box
// test.kt:4 <init>
// test.kt:4 <init>
// test.kt:15 box
// test.kt:15 box
+1 -43
View File
@@ -75,17 +75,7 @@ class O<T>(i: T) {
}
}
// JVM_IR consistently steps through constructor start line, constructor body constructor end line.
// JVM does not. The JVM behavior is unfortunate for instance for the L class above. Stepping through
// construction on the JVM will give the sequence 49, 52, 53, 49 which makes it unclear if the assignment
// on line 49 was carried out before or after the assignment in the init block. The JVM_IR sequence is
// 48, 52, 53, 54, 49, 50 which makes the sequence clear.
// In addition JVM_IR consistently steps on the init line and on the init end brace. The line numbers
// are there in the class file fro JVM, but there is no guarantee that there is an instruction to
// step on and sometimes there is no step on the end brace.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:20 <init>
// test.kt:5 box
@@ -99,78 +89,50 @@ class O<T>(i: T) {
// test.kt:26 <init>
// test.kt:8 box
// test.kt:9 box
// EXPECTATIONS JVM_IR
// test.kt:29 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:30 <init>
// EXPECTATIONS JVM_IR
// test.kt:31 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:9 box
// test.kt:10 box
// EXPECTATIONS JVM_IR
// test.kt:34 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:35 <init>
// EXPECTATIONS JVM_IR
// test.kt:36 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:10 box
// test.kt:11 box
// test.kt:38 <init>
// test.kt:39 <init>
// test.kt:40 <init>
// test.kt:41 <init>
// EXPECTATIONS JVM_IR
// test.kt:38 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:11 box
// test.kt:12 box
// test.kt:43 <init>
// test.kt:44 <init>
// test.kt:45 <init>
// test.kt:46 <init>
// EXPECTATIONS JVM_IR
// test.kt:43 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:12 box
// test.kt:13 box
// EXPECTATIONS JVM
// test.kt:50 <init>
// EXPECTATIONS JVM_IR
// test.kt:49 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:53 <init>
// test.kt:54 <init>
// EXPECTATIONS JVM_IR
// test.kt:55 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:50 <init>
// EXPECTATIONS JVM_IR
// test.kt:51 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:13 box
// test.kt:14 box
// test.kt:58 <init>
// test.kt:62 <init>
// EXPECTATIONS JVM_IR
// test.kt:63 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:59 <init>
// EXPECTATIONS JVM_IR
// test.kt:60 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:14 box
// test.kt:15 box
// test.kt:66 <init>
// test.kt:70 <init>
// EXPECTATIONS JVM_IR
// test.kt:71 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:67 <init>
// EXPECTATIONS JVM_IR
// test.kt:68 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:15 box
// test.kt:16 box
// test.kt:73 <init>
@@ -178,11 +140,7 @@ class O<T>(i: T) {
// test.kt:17 box
// test.kt:74 <init>
// test.kt:73 <init>
// EXPECTATIONS JVM
// test.kt:74 <init>
// EXPECTATIONS JVM_IR
// test.kt:75 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:17 box
// test.kt:18 box
+1 -1
View File
@@ -16,7 +16,7 @@ fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:8 box
// test.kt:9 box
// test.kt:10 box
+1 -1
View File
@@ -25,7 +25,7 @@ fun box() {
e.copy()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:14 box
// test.kt:4 <init>
// test.kt:14 box
+1 -1
View File
@@ -13,7 +13,7 @@ fun box() {
}
// FORCE_STEP_INTO
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:12 box
// test.kt:4 <init>
// test.kt:12 box
+1 -4
View File
@@ -18,12 +18,9 @@ fun box() {
c.f()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:17 box
// test.kt:14 <init>
// EXPECTATIONS JVM
// test.kt:8 <clinit>
// EXPECTATIONS JVM JVM_IR
// test.kt:17 box
// test.kt:18 box
// test.kt:11 f
+1 -16
View File
@@ -24,31 +24,16 @@ fun box() {
E2.C;
}
// JVM_IR maintains line number information in the class initializer for the
// initialization of the enum entries. There is line number information for
// the allocation of the object, for the evaluation of arguments to the
// constructor, and for the call to the constructor. This is consistent
// with the line number information generated for normal object allocation.
// JVM has no line number information in <clinit> if there are no arguments
// to the enum constructor. If there are arguments it has line number information
// for the evaluation of the arguments constructor and for the constructor call,
// but not for the allocation of the object.
// EXPECTATIONS JVM JVM_IR
// test.kt:23 box
// EXPECTATIONS JVM_IR
// test.kt:23 box
// test.kt:5 <clinit>
// test.kt:6 <clinit>
// EXPECTATIONS JVM JVM_IR
// test.kt:8 foo
// test.kt:10 foo
// test.kt:23 box
// test.kt:24 box
// test.kt:16 <clinit>
// EXPECTATIONS JVM_IR
// test.kt:17 <clinit>
// EXPECTATIONS JVM JVM_IR
// test.kt:18 <clinit>
// test.kt:17 <clinit>
// test.kt:25 box
+1 -1
View File
@@ -8,7 +8,7 @@ fun box() {
inline fun foo(n: Int) {}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:5 box
// test.kt:9 box
@@ -13,7 +13,7 @@ inline fun bar(i: Int = 1) {
}
// FORCE_STEP_INTO
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:9 foo$default (synthetic)
// test.kt:10 foo
@@ -17,7 +17,7 @@ inline fun foo(f: () -> Unit) {
f()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:16 box
// test.kt:17 box
@@ -15,7 +15,7 @@ fun foo(f: () -> Unit) {
f()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:15 foo
// test.kt:6 invoke
@@ -41,4 +41,4 @@ fun foo(f: () -> Unit) {
// test.kt:10 box$lambda
// test.kt:11 box$lambda
// test.kt:16 foo
// test.kt:12 box
// test.kt:12 box
+5 -5
View File
@@ -2,10 +2,10 @@
// FILE: foo.kt
import bar
fun foo(x: Int): Int {
if (x >= 0) { // 4
return x // 5
if (x >= 0) { // 5
return x // 6
}
return bar(x) // 7
return bar(x) // 8
}
// FILE: test.kt
@@ -21,7 +21,7 @@ fun bar(x: Int) =
foo(x)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:14 box
// foo.kt:5 foo
// foo.kt:8 foo
@@ -44,4 +44,4 @@ fun bar(x: Int) =
// foo.kt:5 foo
// foo.kt:6 foo
// test.kt:22 bar
// test.kt:15 box
// test.kt:15 box
+1 -1
View File
@@ -15,7 +15,7 @@ inline fun getB(): Int {
return 1
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:15 box
// test.kt:7 box
+1 -1
View File
@@ -22,7 +22,7 @@ fun box() {
foo(0)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:21 box
// test.kt:5 foo
// test.kt:6 foo
+2 -2
View File
@@ -15,7 +15,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:13 box
// test.kt:5 foo
// test.kt:6 foo
@@ -33,4 +33,4 @@ fun box() {
// test.kt:15 box
// test.kt:5 foo
// test.kt:8 foo
// test.kt:16 box
// test.kt:16 box
+2 -2
View File
@@ -23,7 +23,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:21 box
// test.kt:5 foo
// test.kt:6 foo
@@ -55,4 +55,4 @@ fun box() {
// test.kt:14 foo
// test.kt:11 foo
// test.kt:16 foo
// test.kt:24 box
// test.kt:24 box
+2 -2
View File
@@ -18,7 +18,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:16 box
// test.kt:9 foo
// test.kt:6 cond
@@ -48,4 +48,4 @@ fun box() {
// test.kt:10 foo
// test.kt:6 cond
// test.kt:13 foo
// test.kt:19 box
// test.kt:19 box
@@ -30,7 +30,7 @@ inline fun Boolean.rid(): Boolean = this
fun nop() {}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:25 box
// test.kt:4 box
+3 -12
View File
@@ -1,5 +1,5 @@
// IGNORE_BACKEND: WASM
// IGNORE_BACKEND: JVM
// FILE: test.kt
fun box() {
var i = 0
@@ -18,16 +18,7 @@ fun box() {
1
}
// The current backend has strange stepping behavior for assignments.
// It generates the line number for the assignment first, and then
// the evaluation of the right hand side with line numbers.
// That leads to the line number with the assignment typically
// not being hit at all as it has no instructions. Also, stepping
// through the evaluation of the right hand side and then hitting
// the line number for the actual assignment makes more sense as
// that is the actual evaluation order.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:6 box
// test.kt:7 box
@@ -57,4 +48,4 @@ fun box() {
// test.kt:13 box
// test.kt:15 box
// test.kt:17 box
// test.kt:19 box
// test.kt:19 box
+1 -2
View File
@@ -28,14 +28,13 @@ class A {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:21 <clinit>
// test.kt:16 <init>
// test.kt:21 <clinit>
// test.kt:21 <clinit>
// test.kt:5 box
// test.kt:8 <init>
// test.kt:5 box
// test.kt:11 test
+1 -2
View File
@@ -17,14 +17,13 @@ fun test(b: B) {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:8 <init>
// test.kt:5 box
// test.kt:10 <init>
// test.kt:5 box
// test.kt:15 test
// test.kt:16 test
// test.kt:10 getA
// test.kt:16 test
@@ -20,7 +20,7 @@ inline fun baz() {
fun nop() {}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:13 box
// test.kt:21 nop
+2 -13
View File
@@ -52,10 +52,7 @@ fun box() {
Zoo()
}
// JVM_IR has an extra step back to the line of the class
// declaration for the return in the constructor.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:49 box
// test.kt:4 <init>
// test.kt:7 <init>
@@ -63,9 +60,7 @@ fun box() {
// test.kt:46 x
// test.kt:8 <init>
// test.kt:9 <init>
// EXPECTATIONS JVM_IR
// test.kt:4 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:49 box
// test.kt:50 box
// test.kt:12 <init>
@@ -75,9 +70,7 @@ fun box() {
// test.kt:17 <init>
// test.kt:18 <init>
// test.kt:19 <init>
// EXPECTATIONS JVM_IR
// test.kt:12 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:50 box
// test.kt:51 box
// test.kt:22 <init>
@@ -90,9 +83,7 @@ fun box() {
// test.kt:29 <init>
// test.kt:30 <init>
// test.kt:31 <init>
// EXPECTATIONS JVM_IR
// test.kt:22 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:51 box
// test.kt:52 box
// test.kt:34 <init>
@@ -102,9 +93,7 @@ fun box() {
// test.kt:40 <init>
// test.kt:41 <init>
// test.kt:43 <init>
// EXPECTATIONS JVM_IR
// test.kt:34 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:52 box
// test.kt:53 box
@@ -129,4 +118,4 @@ fun box() {
// test.kt:40 <init>
// test.kt:43 <init>
// test.kt:34 <init>
// test.kt:53 box
// test.kt:53 box
+2 -2
View File
@@ -31,7 +31,7 @@ fun box() {
A.s
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:30 box
// test.kt:8 <clinit>
// test.kt:9 <clinit>
@@ -63,4 +63,4 @@ fun box() {
// test.kt:22 <init>
// test.kt:5 <init>
// test.kt:31 box
// test.kt:32 box
// test.kt:32 box
@@ -16,7 +16,7 @@ inline fun f(block: () -> Unit) {
block()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:5 box
// test.kt:16 box
@@ -40,4 +40,4 @@ inline fun f(block: () -> Unit) {
// test.kt:6 box
// test.kt:9 box
// test.kt:11 box
// test.kt:13 box
// test.kt:13 box
@@ -11,7 +11,7 @@ inline fun f(block: () -> Unit) {
fun g() {}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:5 box
// test.kt:9 box
@@ -25,4 +25,4 @@ fun g() {}
// test.kt:4 box
// test.kt:5 box
// test.kt:12 g
// test.kt:6 box
// test.kt:6 box
+1 -1
View File
@@ -24,7 +24,7 @@ fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:10 box
// test.kt:6 box
// test.kt:11 box
+4 -5
View File
@@ -1,5 +1,5 @@
// IGNORE_BACKEND: WASM
// IGNORE_BACKEND: JVM_IR
// FILE: test.kt
interface ObjectFace
@@ -12,13 +12,12 @@ fun box() {
makeFace()
}
// IR backend has additional steps on the way _out_ of the init block.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:12 box
// test.kt:6 makeFace
// test.kt:6 <init>
// test.kt:8 <init>
// test.kt:6 <init>
// test.kt:9 makeFace
// test.kt:12 box
// test.kt:13 box
@@ -27,4 +26,4 @@ fun box() {
// test.kt:12 box
// test.kt:9 makeFace
// test.kt:6 <init>
// test.kt:13 box
// test.kt:13 box
+5 -5
View File
@@ -1,12 +1,12 @@
// IGNORE_BACKEND: WASM
// IGNORE_BACKEND: JVM_IR
// FILE: test.kt
class A {
val a = 1
fun bar() = 2
fun foo() {
3
//Breakpoint! from the Evaluate Expression test suite.
.toString()
}
}
@@ -15,12 +15,12 @@ fun box() {
A().foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:15 box
// test.kt:4 <init>
// test.kt:5 <init>
// test.kt:4 <init>
// test.kt:15 box
// test.kt:8 foo
// test.kt:10 foo
// test.kt:11 foo
// test.kt:16 box
@@ -31,4 +31,4 @@ fun box() {
// test.kt:4 <init>
// test.kt:15 box
// test.kt:11 foo
// test.kt:16 box
// test.kt:16 box
+2 -3
View File
@@ -9,15 +9,14 @@ fun box() {
// aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
inline fun foo() = {
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test1.kt:10 box
// test1.kt:11 box
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test1.kt:11 invoke
// test.kt:6 box
// EXPECTATIONS JVM JVM_IR
// test.kt:7 box
// EXPECTATIONS JS_IR
+2 -7
View File
@@ -10,20 +10,15 @@ fun box() {
// aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
inline fun foo() = {
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test1.kt:11 box
// test1.kt:12 box
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:7 box
// test1.kt:12 invoke
// test.kt:7 box
// EXPECTATIONS JVM_IR
// test.kt:8 box
// EXPECTATIONS JVM
// test.kt:6 box
// test.kt:7 box
// test.kt:8 box
// EXPECTATIONS JS_IR
+2 -5
View File
@@ -15,26 +15,23 @@ inline fun foo() = {
fun baz(v:(() -> Unit)) {
v()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test1.kt:12 box
// test1.kt:13 box
// test.kt:6 box
// test3.kt:16 baz
// EXPECTATIONS JVM_IR
// test1.kt:13 invoke
// test3.kt:16 baz
// EXPECTATIONS JVM JVM_IR
// test3.kt:17 baz
// test.kt:7 box
// test1.kt:12 box
// test1.kt:13 box
// test.kt:7 box
// test.kt:8 box
// EXPECTATIONS JVM_IR
// test3.kt:16 baz
// test1.kt:13 invoke
// EXPECTATIONS JVM JVM_IR
// test3.kt:16 baz
// test3.kt:17 baz
// test.kt:9 box
+1 -1
View File
@@ -14,7 +14,7 @@ fun box(): String {
return "OK"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 box
// test.kt:5 box
// test.kt:9 box
@@ -17,7 +17,7 @@ fun box(): String {
return "OK"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:15 box
// test.kt:3 box
// test.kt:4 box
+2 -2
View File
@@ -24,7 +24,7 @@ fun box() {
test2()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:23 box
// test.kt:13 test1
// test.kt:9 test1
@@ -46,4 +46,4 @@ fun box() {
// test.kt:18 test2
// test.kt:6 normalFunction
// test.kt:20 test2
// test.kt:25 box
// test.kt:25 box
@@ -13,7 +13,7 @@ inline fun lookAtMe(f: (String) -> Unit) {
f(a)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:12 box
// test.kt:13 box
+1 -9
View File
@@ -12,20 +12,12 @@ fun box() {
"OK"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// EXPECTATIONS JVM
// test.kt:7 box
// EXPECTATIONS JVM JVM_IR
// test.kt:10 box
// test.kt:11 box
// EXPECTATIONS JVM
// test.kt:8 invoke
// test.kt:9 invoke
// EXPECTATIONS JVM_IR
// test.kt:8 box$bar
// test.kt:9 box$bar
// EXPECTATIONS JVM JVM_IR
// test.kt:12 box
// test.kt:13 box
@@ -10,18 +10,11 @@ fun box() {
"OK"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// EXPECTATIONS JVM
// test.kt:7 box
// EXPECTATIONS JVM JVM_IR
// test.kt:8 box
// test.kt:9 box
// EXPECTATIONS JVM
// test.kt:7 invoke
// EXPECTATIONS JVM_IR
// test.kt:7 box$bar
// EXPECTATIONS JVM JVM_IR
// test.kt:9 box
// test.kt:10 box
// test.kt:11 box
+1 -2
View File
@@ -14,8 +14,7 @@ fun box(): String {
return o + k
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 box
// test.kt:7 box
// test.kt:12 box
+2 -2
View File
@@ -16,7 +16,7 @@ fun box() {
b()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:15 box
// a.kt:5 a
// test.kt:15 box
@@ -30,4 +30,4 @@ fun box() {
// a.kt:5 a
// test.kt:16 box
// b.kt:9 b
// test.kt:17 box
// test.kt:17 box
+2 -4
View File
@@ -12,12 +12,10 @@ fun test(a: Boolean, b: Boolean, c: Boolean): Boolean {
&& c
}
// EXPECTATIONS JVM JVM_IR
// test.kt:6 box
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:10 test
// test.kt:11 test
// EXPECTATIONS JVM JVM_IR
// test.kt:12 test
// test.kt:10 test
// test.kt:6 box
@@ -26,4 +24,4 @@ fun test(a: Boolean, b: Boolean, c: Boolean): Boolean {
// EXPECTATIONS JS_IR
// test.kt:6 box
// test.kt:10 test
// test.kt:7 box
// test.kt:7 box
+2 -2
View File
@@ -10,7 +10,7 @@ fun box() {
fun foo(i: Int) {
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:5 box
// test.kt:11 foo
@@ -19,4 +19,4 @@ fun foo(i: Int) {
// EXPECTATIONS JS_IR
// test.kt:5 box
// test.kt:11 foo
// test.kt:8 box
// test.kt:8 box
+2 -2
View File
@@ -9,7 +9,7 @@ fun box() {
infix fun Int.foo(i: Int) {
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:6 box
// test.kt:5 box
@@ -19,4 +19,4 @@ infix fun Int.foo(i: Int) {
// EXPECTATIONS JS_IR
// test.kt:5 box
// test.kt:10 foo
// test.kt:7 box
// test.kt:7 box
+1 -9
View File
@@ -11,19 +11,11 @@ fun f(block: () -> Unit) {
fun g() {}
// The synthetic invoke bridge method generated for in the callable reference has line numbers
// in the JVM_IR backend (as all bridges). In the JVM backend, only some bridges have line numbers.
// For some reason, when the bridge does not have line numbers, there is no method entry event
// for the invoke method bridged to. Therefore, the entry line number for invoke only shows
// up for JVM_IR.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:5 box
// test.kt:9 f
// EXPECTATIONS JVM_IR
// test.kt:5 invoke
// EXPECTATIONS JVM JVM_IR
// test.kt:12 g
// test.kt:5 invoke
// test.kt:9 f
+1 -1
View File
@@ -42,7 +42,7 @@ inline fun html(init: () -> Unit) {
return init(init)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:20 box
// test.kt:8 box
// test.kt:10 box
@@ -23,7 +23,7 @@ fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:18 box
// test.kt:10 builder
// Continuation.kt:66 <init>
@@ -13,7 +13,7 @@ inline fun lookAtMe(f: () -> Int) {
a + f()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:6 box
// test.kt:12 box
// test.kt:13 box
+1 -22
View File
@@ -21,27 +21,6 @@ fun testExpressionBody(nullable: String?) =
// Some comment
nullable.length == 2
// EXPECTATIONS JVM
// test.kt:7 box
// test.kt:16 test
// test.kt:14 test
// test.kt:7 box
// test.kt:8 box
// test.kt:16 test
// test.kt:14 test
// test.kt:8 box
// test.kt:9 box
// test.kt:22 testExpressionBody
// test.kt:9 box
// test.kt:10 box
// test.kt:22 testExpressionBody
// test.kt:10 box
// test.kt:11 box
// EXPECTATIONS JVM_IR
// test.kt:7 box
// test.kt:14 test
@@ -76,4 +55,4 @@ fun testExpressionBody(nullable: String?) =
// test.kt:22 testExpressionBody
// test.kt:10 box
// test.kt:22 testExpressionBody
// test.kt:11 box
// test.kt:11 box
+1 -3
View File
@@ -34,14 +34,12 @@ fun box() {
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:31 box
// test.kt:16 <init>
// test.kt:18 <init>
// test.kt:21 <init>
// EXPECTATIONS JVM_IR
// test.kt:16 <init>
// EXPECTATIONS JVM JVM_IR
// test.kt:31 box
// test.kt:32 box
// test.kt:16 testPropertyInInterface
+1 -1
View File
@@ -7,7 +7,7 @@ fun box(): String {
return "OK"!!
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:6 box
// test.kt:7 box
+2 -2
View File
@@ -12,7 +12,7 @@ fun box() {
A().prop
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:12 box
// test.kt:4 <init>
// test.kt:12 box
@@ -25,4 +25,4 @@ fun box() {
// test.kt:4 <init>
// test.kt:12 box
// test.kt:7 <get-prop>
// test.kt:13 box
// test.kt:13 box
+2 -2
View File
@@ -9,7 +9,7 @@ fun box() {
main(arrayOf("OK"))
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 box
// test.kt:5 main
// test.kt:6 main
@@ -19,4 +19,4 @@ fun box() {
// test.kt:9 box
// test.kt:5 main
// test.kt:6 main
// test.kt:10 box
// test.kt:10 box
+2 -2
View File
@@ -12,7 +12,7 @@ fun foo(n :Int ) : Int {
return foo(n-1) * n
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:5 box
// test.kt:9 foo
@@ -37,4 +37,4 @@ fun foo(n :Int ) : Int {
// test.kt:10 foo
// test.kt:12 foo
// test.kt:12 foo
// test.kt:6 box
// test.kt:6 box
+2 -2
View File
@@ -10,7 +10,7 @@ fun box(): String {
}
// FORCE_STEP_INTO
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 box
// test.kt:4 ifoo$default (synthetic)
// test.kt:5 ifoo
@@ -18,4 +18,4 @@ fun box(): String {
// test.kt:9 box
// EXPECTATIONS JS_IR
// test.kt:9 box
// test.kt:9 box
@@ -16,7 +16,7 @@ fun box(): String {
}
// FORCE_STEP_INTO
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:14 box
// test.kt:5 box
// test.kt:6 box
+1 -20
View File
@@ -11,30 +11,11 @@ fun box(): String {
return ifoo()
}
// `alsoInline` is inlined in the `ifoo$default` stub. When exiting the inline
// codegen, the line number is reset. Therefore any code generated with line
// number information will emit a new line number so that stepping continues
// in the caller.
//
// For JVM none of the code after `alsoInline` leads to line number generation.
// This seems problematic as the line number for the inline function is then
// in effect for instructions outside the scope of the `$i$f$alsoInline`
// variable life time.
//
// For JVM_IR a line number is generated for the code following `alsoInline`.
// Therefore, we stop on line 5 before entering `alsoInline`
// and we step back to line 5 after `alsoInline` and before the body of
// `ifoo`. This seems reasonable and also help ensure that line numbers
// for the inline function are only used for instructions covered by
// the `$i$f$alsoInline` variable life time.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:11 box
// test.kt:6 box
// test.kt:4 box
// EXPECTATIONS JVM_IR
// test.kt:6 box
// EXPECTATIONS JVM JVM_IR
// test.kt:7 box
// test.kt:11 box
+1 -1
View File
@@ -13,7 +13,7 @@ fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:11 box
// test.kt:7 box
// test.kt:12 box
+1 -1
View File
@@ -21,7 +21,7 @@ fun fail() : String {
return "fail"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:17 box
// test.kt:6 box
@@ -19,7 +19,7 @@ fun fail() : String {
return "fail"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:7 box
// test.kt:15 box
// test.kt:8 box
@@ -21,7 +21,7 @@ fun fail() : String {
return "fail"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:17 box
// test.kt:6 box
@@ -1,5 +1,5 @@
// IGNORE_BACKEND: WASM
// IGNORE_BACKEND: JVM
// FILE: test.kt
fun box(){
test() +
@@ -17,12 +17,7 @@ fun fail() : String {
return "fail"
}
// The JVM backend does not go back to line 4 and 7 for the
// addition. Instead it treats the addition of the evaluated
// arguments as being on line 5 and 8. That seems incorrect
// and the JVM_IR stepping is more correct.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:13 box
// test.kt:5 box
+1 -30
View File
@@ -33,16 +33,7 @@ fun box() {
stringSwitch("nope")
}
// JVM_IR uses the line number of the start of the `when` as the line number
// for the lookup/table switch. Therefore when the subject and the when is
// on separate lines the first step is on the subject, then steop to the when,
// then to the right branch.
// JVM_IR uses optimized lookup/table switches for all these cases. JVM
// does not. So on JVM there are steps on each condition evaluation for
// the first `when`.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:30 box
// test.kt:5 stringSwitch
// test.kt:6 stringSwitch
@@ -51,63 +42,43 @@ fun box() {
// test.kt:13 stringSwitch
// test.kt:12 stringSwitch
// test.kt:20 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:19 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:22 stringSwitch
// test.kt:19 stringSwitch
// test.kt:27 stringSwitch
// test.kt:31 box
// test.kt:5 stringSwitch
// EXPECTATIONS JVM
// test.kt:6 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:7 stringSwitch
// test.kt:5 stringSwitch
// test.kt:12 stringSwitch
// test.kt:14 stringSwitch
// test.kt:12 stringSwitch
// test.kt:20 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:19 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:23 stringSwitch
// test.kt:19 stringSwitch
// test.kt:27 stringSwitch
// test.kt:32 box
// test.kt:5 stringSwitch
// EXPECTATIONS JVM
// test.kt:6 stringSwitch
// test.kt:7 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:8 stringSwitch
// test.kt:5 stringSwitch
// test.kt:12 stringSwitch
// test.kt:15 stringSwitch
// test.kt:12 stringSwitch
// test.kt:20 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:19 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:24 stringSwitch
// test.kt:19 stringSwitch
// test.kt:27 stringSwitch
// test.kt:33 box
// test.kt:5 stringSwitch
// EXPECTATIONS JVM
// test.kt:6 stringSwitch
// test.kt:7 stringSwitch
// test.kt:8 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:9 stringSwitch
// test.kt:5 stringSwitch
// test.kt:12 stringSwitch
// test.kt:16 stringSwitch
// test.kt:12 stringSwitch
// test.kt:20 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:19 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:25 stringSwitch
// test.kt:19 stringSwitch
// test.kt:27 stringSwitch
+1 -20
View File
@@ -29,16 +29,7 @@ fun box() {
stringSwitch("nope")
}
// JVM_IR uses the line number of the start of the `when` as the line number
// for the lookup/table switch. Therefore when the subject and the when is
// on separate lines the first step is on the subject, then steop to the when,
// then to the right branch.
// JVM_IR uses unoptimized lookup/table switches for all these cases. JVM
// does not. So on JVM there are direct jumps to the right branch for the
// last two whens.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:27 box
// test.kt:5 stringSwitch
// test.kt:6 stringSwitch
@@ -47,9 +38,7 @@ fun box() {
// test.kt:12 stringSwitch
// test.kt:11 stringSwitch
// test.kt:18 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:17 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:20 stringSwitch
// test.kt:17 stringSwitch
// test.kt:24 stringSwitch
@@ -59,16 +48,12 @@ fun box() {
// test.kt:7 stringSwitch
// test.kt:5 stringSwitch
// test.kt:11 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:12 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:13 stringSwitch
// test.kt:11 stringSwitch
// test.kt:18 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:17 stringSwitch
// test.kt:20 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:21 stringSwitch
// test.kt:17 stringSwitch
// test.kt:24 stringSwitch
@@ -79,18 +64,14 @@ fun box() {
// test.kt:8 stringSwitch
// test.kt:5 stringSwitch
// test.kt:11 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:12 stringSwitch
// test.kt:13 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:14 stringSwitch
// test.kt:11 stringSwitch
// test.kt:18 stringSwitch
// EXPECTATIONS JVM_IR
// test.kt:17 stringSwitch
// test.kt:20 stringSwitch
// test.kt:21 stringSwitch
// EXPECTATIONS JVM JVM_IR
// test.kt:22 stringSwitch
// test.kt:17 stringSwitch
// test.kt:24 stringSwitch
@@ -11,7 +11,7 @@ suspend fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 box
// test.kt:5 foo
// test.kt:10 invoke
@@ -17,7 +17,7 @@ suspend fun box() {
// That means that we never step into the lambda as that is only
// called via code in the kotlin package.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:10 box
// test.kt:6 foo
// test.kt:10 box
+2 -1
View File
@@ -15,7 +15,8 @@ fun throwIfLess(a: Int, b: Int) {
if (a<b)
throw IllegalStateException()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:4 box
// test.kt:5 box
// test.kt:6 box
+2 -2
View File
@@ -9,7 +9,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 box
// test.kt:4 foo
// test.kt:9 box
@@ -18,4 +18,4 @@ fun box() {
// EXPECTATIONS JS_IR
// test.kt:9 box
// test.kt:4 foo
// test.kt:10 box
// test.kt:10 box
+2 -2
View File
@@ -20,7 +20,7 @@ fun box() {
// interfaces with default methods (forwarding to the actual implementation
// on A$DefaultImpls) have the line number of the class declaration.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:15 box
// test.kt:15 <init>
// test.kt:15 box
@@ -56,4 +56,4 @@ fun box() {
// test.kt:16 box
// test.kt:8 bar
// test.kt:5 foo
// test.kt:17 box
// test.kt:17 box
+1 -1
View File
@@ -15,7 +15,7 @@ fun box() {
foo(true)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:14 box
// test.kt:5 foo
// test.kt:6 foo
+1 -1
View File
@@ -48,7 +48,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:42 box
// test.kt:5 foo
// test.kt:6 foo
+1 -1
View File
@@ -38,7 +38,7 @@ fun box() {
foo()
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:34 box
// test.kt:5 foo
// test.kt:6 foo
+2 -14
View File
@@ -35,12 +35,7 @@ fun box() {
foo()
}
// The JVM backend steps back to line 11 when leaving the
// `mightThrow2` call. The JVM_IR backend does not. The
// JVM_IR behavior is consistent with what happens for the
// try-finally where the value is discarded which seems good.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:30 box
// test.kt:5 foo
// test.kt:6 foo
@@ -52,9 +47,6 @@ fun box() {
// test.kt:12 foo
// test.kt:26 mightThrow2
// test.kt:27 mightThrow2
// EXPECTATIONS JVM
// test.kt:12 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:14 foo
// test.kt:15 foo
// test.kt:11 foo
@@ -70,10 +62,6 @@ fun box() {
// test.kt:11 foo
// test.kt:12 foo
// test.kt:26 mightThrow2
// EXPECTATIONS JVM
// test.kt:15 foo
// test.kt:11 foo
// EXPECTATIONS JVM_IR
// test.kt:14 foo
// EXPECTATIONS JS_IR
@@ -93,4 +81,4 @@ fun box() {
// test.kt:23 mightThrow
// test.kt:12 foo
// test.kt:26 mightThrow2
// test.kt:26 mightThrow2
// test.kt:26 mightThrow2
@@ -12,12 +12,7 @@ fun box() {
}
}
// The JVM IR backend does generate line number information for the
// declaration of local variables without initializer.
// Stepping through those is useful for breakpoinnts.
// The JVM backend does generate these line numbers as well.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:6 box
// test.kt:7 box
@@ -32,4 +27,4 @@ fun box() {
// test.kt:9 box
// test.kt:10 box
// test.kt:11 box
// test.kt:13 box
// test.kt:13 box
+1 -1
View File
@@ -9,7 +9,7 @@ fun box(): String {
return "OK"
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// fake.kt:1 box
// test.kt:5 box
+1 -50
View File
@@ -19,51 +19,24 @@ fun box() {
foo(21)
}
// JVM_IR backend optimized the when to a switch in the java bytecode.
// Therefore, the stepping for JVM_IR does not step through the evaluation
// of each of the conditions, but goes directly to the right body. The
// JVM_IR stepping behavior here is the same as for `whenSubject.kt`.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:19 box
// test.kt:5 foo
// test.kt:6 foo
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:7 foo
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// test.kt:7 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:8 foo
// test.kt:11 foo
// EXPECTATIONS JVM
// test.kt:12 foo
// test.kt:13 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:14 foo
// test.kt:11 foo
// test.kt:16 foo
// test.kt:7 foo
// test.kt:11 foo
// EXPECTATIONS JVM
// test.kt:12 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:13 foo
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// test.kt:7 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:8 foo
// test.kt:11 foo
// EXPECTATIONS JVM
// test.kt:12 foo
// test.kt:13 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:14 foo
// test.kt:11 foo
// test.kt:16 foo
@@ -74,41 +47,19 @@ fun box() {
// test.kt:11 foo
// test.kt:12 foo
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:7 foo
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// test.kt:7 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:8 foo
// test.kt:11 foo
// EXPECTATIONS JVM
// test.kt:12 foo
// test.kt:13 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:14 foo
// test.kt:11 foo
// test.kt:16 foo
// test.kt:7 foo
// test.kt:11 foo
// EXPECTATIONS JVM
// test.kt:12 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:13 foo
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// test.kt:7 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:8 foo
// test.kt:11 foo
// EXPECTATIONS JVM
// test.kt:12 foo
// test.kt:13 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:14 foo
// test.kt:11 foo
// test.kt:16 foo
+1 -11
View File
@@ -19,10 +19,7 @@ fun box() {
foo(2)
}
// The JVM_IR backend optimizes the inner when to a switch and therefore goes directly to the
// right case without stepping through evaluation of each condition.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:17 box
// test.kt:6 foo
// test.kt:7 foo
@@ -31,18 +28,11 @@ fun box() {
// test.kt:14 foo
// test.kt:18 box
// test.kt:6 foo
// EXPECTATIONS JVM
// test.kt:7 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:8 foo
// test.kt:5 foo
// test.kt:14 foo
// test.kt:19 box
// test.kt:6 foo
// EXPECTATIONS JVM
// test.kt:7 foo
// test.kt:8 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:9 foo
// test.kt:5 foo
// test.kt:11 foo
+1 -5
View File
@@ -12,14 +12,10 @@ fun box() {
}
}
// JVM_IR and JVM backends have different heuristics for when to use a switch.
// EXPECTATIONS JVM JVM_IR
// test.kt:5 box
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:6 box
// test.kt:8 box
// EXPECTATIONS JVM JVM_IR
// test.kt:11 box
// test.kt:13 box
+1 -1
View File
@@ -16,7 +16,7 @@ fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:6 box
// test.kt:7 box
+1 -1
View File
@@ -18,7 +18,7 @@ fun box() {
foo(1)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:16 box
// test.kt:5 foo
// test.kt:6 foo
+1 -28
View File
@@ -29,54 +29,27 @@ fun box() {
foo(63)
}
// JVM_IR backend optimized the when to a switch in the java bytecode.
// Therefore, the stepping for JVM_IR does not step through the evaluation
// of each of the conditions, but goes directly to the right body.
// JVM_IR stepping behavior here is the same as for `whenMultiLineSubject.kt`.
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:27 box
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:7 foo
// test.kt:14 foo
// EXPECTATIONS JVM
// test.kt:15 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:16 foo
// test.kt:14 foo
// test.kt:23 foo
// test.kt:27 box
// test.kt:28 box
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// test.kt:8 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:9 foo
// test.kt:14 foo
// EXPECTATIONS JVM
// test.kt:15 foo
// test.kt:17 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:18 foo
// test.kt:14 foo
// test.kt:23 foo
// test.kt:28 box
// test.kt:29 box
// test.kt:5 foo
// EXPECTATIONS JVM
// test.kt:6 foo
// test.kt:8 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:11 foo
// test.kt:14 foo
// EXPECTATIONS JVM
// test.kt:15 foo
// test.kt:17 foo
// EXPECTATIONS JVM JVM_IR
// test.kt:20 foo
// test.kt:14 foo
// test.kt:23 foo
+1 -1
View File
@@ -29,7 +29,7 @@ fun box() {
foo(63)
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:27 box
// test.kt:5 foo
// test.kt:7 foo
+1 -1
View File
@@ -16,7 +16,7 @@ fun box() {
}
}
// EXPECTATIONS JVM JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box
// test.kt:6 box
// test.kt:7 box

Some files were not shown because too many files have changed in this diff Show More