diff --git a/compiler/testData/debug/stepping/IfTrueThenFalse.kt b/compiler/testData/debug/stepping/IfTrueThenFalse.kt index a2e0b315e1a..61e9b7aa8df 100644 --- a/compiler/testData/debug/stepping/IfTrueThenFalse.kt +++ b/compiler/testData/debug/stepping/IfTrueThenFalse.kt @@ -1,4 +1,4 @@ -//FILE: test.kt +// FILE: test.kt fun cond() = false fun box() { @@ -9,8 +9,8 @@ fun box() { } // LINENUMBERS -// test.kt:5 -// test.kt:2 -// test.kt:5 -// test.kt:8 -// test.kt:9 +// test.kt:5 box +// test.kt:2 cond +// test.kt:5 box +// test.kt:8 box +// test.kt:9 box diff --git a/compiler/testData/debug/stepping/anonymousFunction.kt b/compiler/testData/debug/stepping/anonymousFunction.kt new file mode 100644 index 00000000000..f8770c87f79 --- /dev/null +++ b/compiler/testData/debug/stepping/anonymousFunction.kt @@ -0,0 +1,13 @@ +// FILE: test.kt + +fun box() { + { + "OK" + }() +} + +// LINENUMBERS +// test.kt:4 box +// test.kt:5 invoke +// test.kt:4 box +// test.kt:7 box \ No newline at end of file diff --git a/compiler/testData/debug/stepping/assertion.kt b/compiler/testData/debug/stepping/assertion.kt index baf90a80c2c..e0befbeafcf 100644 --- a/compiler/testData/debug/stepping/assertion.kt +++ b/compiler/testData/debug/stepping/assertion.kt @@ -30,17 +30,17 @@ fun box(): String { } // LINENUMBERS -// test.kt:24 -// test.kt:15 -// test.kt:16 -// test.kt:3 -// test.kt:16 -// test.kt:17 -// test.kt:21 -// test.kt:25 -// test.kt:6 -// test.kt:3 -// test.kt:6 -// test.kt:7 -// test.kt:12 -// test.kt:29 \ No newline at end of file +// test.kt:24 box +// test.kt:15 box +// test.kt:16 box +// test.kt:3 getMASSERTIONS_ENABLED +// test.kt:16 box +// test.kt:17 box +// test.kt:21 box +// test.kt:25 box +// test.kt:6 box +// test.kt:3 getMASSERTIONS_ENABLED +// test.kt:6 box +// test.kt:7 box +// test.kt:12 box +// test.kt:29 box diff --git a/compiler/testData/debug/stepping/callableReference.kt b/compiler/testData/debug/stepping/callableReference.kt index 37754ad2aa5..0952688d6c6 100644 --- a/compiler/testData/debug/stepping/callableReference.kt +++ b/compiler/testData/debug/stepping/callableReference.kt @@ -11,13 +11,11 @@ fun f(block: () -> Unit) { } // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:10 -// test.kt:5 -// test.kt:6 -// test.kt:-1 -// test.kt:-1 -// test.kt:10 -// test.kt:11 -// test.kt:7 +// test.kt:3 box +// test.kt:4 box +// test.kt:10 f +// test.kt:5 invoke +// test.kt:6 invoke +// test.kt:10 f +// test.kt:11 f +// test.kt:7 box diff --git a/compiler/testData/debug/stepping/class.kt b/compiler/testData/debug/stepping/class.kt new file mode 100644 index 00000000000..3caa69394e0 --- /dev/null +++ b/compiler/testData/debug/stepping/class.kt @@ -0,0 +1,35 @@ +// FILE: test.kt + +class A { + val prop = 1 + + fun foo() { + prop + } +} + +fun box() { + val a = A() + a.prop + 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. + +// LINENUMBERS +// test.kt:12 box +// test.kt:3 +// test.kt:4 +// LINENUMBERS JVM_IR +// test.kt:3 +// LINENUMBERS +// test.kt:12 box +// test.kt:13 box +// test.kt:4 getProp +// test.kt:13 box +// test.kt:14 box +// test.kt:7 foo +// test.kt:8 foo +// test.kt:15 box diff --git a/compiler/testData/debug/stepping/classObject.kt b/compiler/testData/debug/stepping/classObject.kt new file mode 100644 index 00000000000..f1d4022d147 --- /dev/null +++ b/compiler/testData/debug/stepping/classObject.kt @@ -0,0 +1,50 @@ +// FILE: test.kt + +class A { + companion object { + val prop0 = 1 + val prop1 = 2 + fun foo(): Int { + return prop0 + prop1 + } + } +} + +fun box() { + A.prop0 + A.prop1 + A.foo() +} + +// The JVM version hits get getProp line numbers twice. That appears +// to be because the synthetic accessibility bridges (access$getProp0$cp) +// have line numbers (of the start of the surrounding class) in the JVM +// version and they do not have line numbers in the JVM_IR version. + +// LINENUMBERS +// test.kt:14 box +// test.kt:5 getProp0 +// LINENUMBERS JVM +// test.kt:5 getProp0 +// LINENUMBERS +// test.kt:14 box +// test.kt:15 box +// test.kt:6 getProp1 +// LINENUMBERS JVM +// test.kt:6 getProp1 +// LINENUMBERS +// test.kt:15 box +// test.kt:16 box +// test.kt:8 foo +// test.kt:5 getProp0 +// LINENUMBERS JVM +// test.kt:5 getProp0 +// LINENUMBERS +// test.kt:8 foo +// test.kt:6 getProp1 +// LINENUMBERS JVM +// test.kt:6 getProp1 +// LINENUMBERS +// test.kt:8 foo +// test.kt:16 box +// test.kt:17 box diff --git a/compiler/testData/debug/stepping/conjunction.kt b/compiler/testData/debug/stepping/conjunction.kt index a6b802ac3f8..29b4ff4fc4b 100644 --- a/compiler/testData/debug/stepping/conjunction.kt +++ b/compiler/testData/debug/stepping/conjunction.kt @@ -1,4 +1,4 @@ -//FILE: test.kt +// FILE: test.kt fun box() { val k = if (getA() && getB() @@ -19,15 +19,15 @@ fun getC() = false fun getD() = true // LINENUMBERS -// test.kt:3 -// test.kt:13 -// test.kt:3 -// test.kt:4 -// test.kt:15 -// test.kt:4 -// test.kt:5 -// test.kt:17 -// test.kt:5 -// test.kt:9 -// test.kt:3 -// test.kt:11 +// test.kt:3 box +// test.kt:13 getA +// test.kt:3 box +// test.kt:4 box +// test.kt:15 getB +// test.kt:4 box +// test.kt:5 box +// test.kt:17 getC +// test.kt:5 box +// test.kt:9 box +// test.kt:3 box +// test.kt:11 box diff --git a/compiler/testData/debug/stepping/defaultParameter.kt b/compiler/testData/debug/stepping/defaultParameter.kt new file mode 100644 index 00000000000..4192e259992 --- /dev/null +++ b/compiler/testData/debug/stepping/defaultParameter.kt @@ -0,0 +1,24 @@ +// FILE: test.kt + +class A { + fun computeParam() = 32 + + fun foo(param: Int = computeParam()) { + } +} + +fun box() { + A().foo() +} + +// FORCE_STEP_INTO +// LINENUMBERS +// test.kt:11 box +// test.kt:3 +// test.kt:11 box +// test.kt:6 foo$default (synthetic) +// test.kt:4 computeParam +// test.kt:6 foo$default (synthetic) +// test.kt:7 foo +// test.kt:6 foo$default (synthetic) +// test.kt:12 box diff --git a/compiler/testData/debug/stepping/enum.kt b/compiler/testData/debug/stepping/enum.kt new file mode 100644 index 00000000000..070c0bfcef0 --- /dev/null +++ b/compiler/testData/debug/stepping/enum.kt @@ -0,0 +1,22 @@ +// FILE: test.kt + +enum class E { + E1; + + fun foo() = { + prop + } + + val prop = 22 +} + +fun box() { + E.E1.foo() +} + +// LINENUMBERS +// test.kt:14 box +// test.kt:6 foo +// test.kt:8 foo +// test.kt:14 box +// test.kt:15 box diff --git a/compiler/testData/debug/stepping/for.kt b/compiler/testData/debug/stepping/for.kt index 51edf4015cb..85c8bd57913 100644 --- a/compiler/testData/debug/stepping/for.kt +++ b/compiler/testData/debug/stepping/for.kt @@ -1,4 +1,4 @@ -//FILE: test.kt +// FILE: test.kt fun box() { for (i in 1..3) { foo(i) @@ -8,14 +8,14 @@ fun box() { inline fun foo(n: Int) {} // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:8 -// test.kt:3 -// test.kt:4 -// test.kt:8 -// test.kt:3 -// test.kt:4 -// test.kt:8 -// test.kt:3 -// test.kt:6 \ No newline at end of file +// test.kt:3 box +// test.kt:4 box +// test.kt:8 box +// test.kt:3 box +// test.kt:4 box +// test.kt:8 box +// test.kt:3 box +// test.kt:4 box +// test.kt:8 box +// test.kt:3 box +// test.kt:6 box diff --git a/compiler/testData/debug/stepping/functionInAnotherFile.kt b/compiler/testData/debug/stepping/functionInAnotherFile.kt index 9ca45ccbb40..c85c3b40be3 100644 --- a/compiler/testData/debug/stepping/functionInAnotherFile.kt +++ b/compiler/testData/debug/stepping/functionInAnotherFile.kt @@ -1,4 +1,4 @@ -//FILE: foo.kt +// FILE: foo.kt import bar fun foo(x: Int): Int { if (x >= 0) { // 4 @@ -21,15 +21,15 @@ fun bar(x: Int) = } // LINENUMBERS -// test.kt:4 -// foo.kt:4 -// foo.kt:7 -// test.kt:8 -// test.kt:9 -// foo.kt:4 -// foo.kt:5 -// test.kt:9 -// test.kt:12 -// foo.kt:7 -// test.kt:4 -// test.kt:5 +// test.kt:4 box +// foo.kt:4 foo +// foo.kt:7 foo +// test.kt:8 bar +// test.kt:9 bar +// foo.kt:4 foo +// foo.kt:5 foo +// test.kt:9 bar +// test.kt:12 bar +// foo.kt:7 foo +// test.kt:4 box +// test.kt:5 box diff --git a/compiler/testData/debug/stepping/if.kt b/compiler/testData/debug/stepping/if.kt index c666cba45b7..83744e563cb 100644 --- a/compiler/testData/debug/stepping/if.kt +++ b/compiler/testData/debug/stepping/if.kt @@ -1,4 +1,4 @@ -//FILE: test.kt +// FILE: test.kt fun box(): Int { if ( getB() == @@ -14,11 +14,11 @@ inline fun getB(): Int { } // LINENUMBERS -// test.kt:4 -// test.kt:13 -// test.kt:5 -// test.kt:10 -// test.kt:5 -// test.kt:7 -// test.kt:13 -// test.kt:7 +// test.kt:4 box +// test.kt:13 box +// test.kt:5 box +// test.kt:10 getA +// test.kt:5 box +// test.kt:7 box +// test.kt:13 box +// test.kt:7 box diff --git a/compiler/testData/debug/stepping/if2.kt b/compiler/testData/debug/stepping/if2.kt new file mode 100644 index 00000000000..32e04b9b6e2 --- /dev/null +++ b/compiler/testData/debug/stepping/if2.kt @@ -0,0 +1,39 @@ +// FILE: test.kt + +fun foo(x: Int) { + if (x > 0) { + "OK" + } + + if (x > 0) else { + "OK" + } + + if (x > 0) { + "OK" + } else { + "ALSO OK" + } +} + +fun box() { + foo(1) + foo(0) +} + +// LINENUMBERS +// test.kt:20 box +// test.kt:4 foo +// test.kt:5 foo +// test.kt:8 foo +// test.kt:12 foo +// test.kt:13 foo +// test.kt:17 foo +// test.kt:21 box +// test.kt:4 foo +// test.kt:8 foo +// test.kt:9 foo +// test.kt:12 foo +// test.kt:15 foo +// test.kt:17 foo +// test.kt:22 box diff --git a/compiler/testData/debug/stepping/iincStepping.kt b/compiler/testData/debug/stepping/iincStepping.kt index a852908e654..87d7fb21a58 100644 --- a/compiler/testData/debug/stepping/iincStepping.kt +++ b/compiler/testData/debug/stepping/iincStepping.kt @@ -27,21 +27,21 @@ fun box() { // that is the actual evaluation order. // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:5 -// test.kt:6 -// test.kt:7 -// test.kt:6 -// test.kt:8 -// test.kt:9 -// test.kt:10 -// test.kt:9 -// test.kt:11 -// test.kt:13 -// test.kt:12 -// test.kt:15 -// test.kt:16 -// test.kt:15 -// test.kt:14 -// test.kt:17 \ No newline at end of file +// test.kt:3 box +// test.kt:4 box +// test.kt:5 box +// test.kt:6 box +// test.kt:7 box +// test.kt:6 box +// test.kt:8 box +// test.kt:9 box +// test.kt:10 box +// test.kt:9 box +// test.kt:11 box +// test.kt:13 box +// test.kt:12 box +// test.kt:15 box +// test.kt:16 box +// test.kt:15 box +// test.kt:14 box +// test.kt:17 box diff --git a/compiler/testData/debug/stepping/inlineCallableReference.kt b/compiler/testData/debug/stepping/inlineCallableReference.kt index cd10c5fe967..c51dcc75bb2 100644 --- a/compiler/testData/debug/stepping/inlineCallableReference.kt +++ b/compiler/testData/debug/stepping/inlineCallableReference.kt @@ -11,10 +11,10 @@ inline fun f(block: () -> Unit) { } // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:10 -// test.kt:5 -// test.kt:6 -// test.kt:11 -// test.kt:7 +// test.kt:3 box +// test.kt:4 box +// test.kt:10 box +// test.kt:5 box +// test.kt:6 box +// test.kt:11 box +// test.kt:7 box diff --git a/compiler/testData/debug/stepping/inlineNamedCallableReference.kt b/compiler/testData/debug/stepping/inlineNamedCallableReference.kt index e792dc4812f..85a4f35acb8 100644 --- a/compiler/testData/debug/stepping/inlineNamedCallableReference.kt +++ b/compiler/testData/debug/stepping/inlineNamedCallableReference.kt @@ -11,10 +11,10 @@ inline fun f(block: () -> Unit) { fun g() {} // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:8 -// test.kt:4 -// test.kt:11 -// test.kt:9 -// test.kt:5 +// test.kt:3 box +// test.kt:4 box +// test.kt:8 box +// test.kt:4 box +// test.kt:11 g +// test.kt:9 box +// test.kt:5 box diff --git a/compiler/testData/debug/stepping/inlineSimpleCall.kt b/compiler/testData/debug/stepping/inlineSimpleCall.kt new file mode 100644 index 00000000000..473042dde86 --- /dev/null +++ b/compiler/testData/debug/stepping/inlineSimpleCall.kt @@ -0,0 +1,46 @@ +// FILE: test.kt + +inline fun inlineFun(s: () -> Unit) { + s() +} + +fun box() { + inlineFun ({ + 1 + }) + + inlineFun { + 2 + } + + inlineFun { + 3 + + inlineFun { + 4 + } + } +} + +// LINENUMBERS +// test.kt:8 box +// test.kt:4 box +// test.kt:9 box +// test.kt:10 box +// test.kt:5 box +// test.kt:12 box +// test.kt:4 box +// test.kt:13 box +// test.kt:14 box +// test.kt:5 box +// test.kt:16 box +// test.kt:4 box +// test.kt:17 box +// test.kt:19 box +// test.kt:4 box +// test.kt:20 box +// test.kt:21 box +// test.kt:5 box +// test.kt:22 box +// test.kt:5 box +// test.kt:23 box diff --git a/compiler/testData/debug/stepping/lambdaStepInline.kt b/compiler/testData/debug/stepping/lambdaStepInline.kt index eee97f6b5f4..eedc140473e 100644 --- a/compiler/testData/debug/stepping/lambdaStepInline.kt +++ b/compiler/testData/debug/stepping/lambdaStepInline.kt @@ -1,5 +1,5 @@ - // FILE: test.kt + inline fun foo(stringMaker: () -> String): String { return stringMaker() } @@ -14,10 +14,10 @@ fun box(): String { } // LINENUMBERS -// test.kt:8 -// test.kt:4 -// test.kt:8 -// test.kt:9 -// test.kt:4 -// test.kt:10 -// test.kt:13 \ No newline at end of file +// test.kt:8 box +// test.kt:4 box +// test.kt:8 box +// test.kt:9 box +// test.kt:4 box +// test.kt:10 box +// test.kt:13 box diff --git a/compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt b/compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt index 1fccf2d99c1..eea017d1f00 100644 --- a/compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt +++ b/compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt @@ -31,12 +31,12 @@ fun box(): String { // test.kt:17 // LINENUMBERS -// test.kt:15 -// test.kt:3 -// test.kt:4 -// test.kt:3 -// test.kt:16 -// test.kt:7 -// test.kt:11 -// test.kt:8 -// test.kt:17 \ No newline at end of file +// test.kt:15 box +// test.kt:3 box +// test.kt:4 box +// test.kt:3 box +// test.kt:16 box +// test.kt:7 box +// test.kt:11 box +// test.kt:8 box +// test.kt:17 box diff --git a/compiler/testData/debug/stepping/lineNumberAfterInline.kt b/compiler/testData/debug/stepping/lineNumberAfterInline.kt new file mode 100644 index 00000000000..a7785b7fdc6 --- /dev/null +++ b/compiler/testData/debug/stepping/lineNumberAfterInline.kt @@ -0,0 +1,39 @@ +// FILE: test.kt + +fun normalFunction() { + "OK" +} + +inline fun inlineFunction() { + "OK" +} + +fun test1() { + inlineFunction() + "OK" +} + +fun test2() { + normalFunction() + "OK" +} + +fun box() { + test1() + test2() +} + +// LINENUMBERS +// test.kt:22 box +// test.kt:12 test1 +// test.kt:8 test1 +// test.kt:9 test1 +// test.kt:13 test1 +// test.kt:14 test1 +// test.kt:23 box +// test.kt:17 test2 +// test.kt:4 normalFunction +// test.kt:5 normalFunction +// test.kt:18 test2 +// test.kt:19 test2 +// test.kt:24 box \ No newline at end of file diff --git a/compiler/testData/debug/stepping/localFunction.kt b/compiler/testData/debug/stepping/localFunction.kt new file mode 100644 index 00000000000..be1f782dbc4 --- /dev/null +++ b/compiler/testData/debug/stepping/localFunction.kt @@ -0,0 +1,28 @@ +// FILE: test.kt + +fun box() { + "OK" + fun bar() { + "OK" + } + "OK" + bar() + "OK" +} + +// LINENUMBERS +// test.kt:4 box +// LINENUMBERS JVM +// test.kt:5 box +// LINENUMBERS +// test.kt:8 box +// test.kt:9 box +// LINENUMBERS JVM +// test.kt:6 invoke +// test.kt:7 invoke +// LINENUMBERS JVM_IR +// test.kt:6 box$bar +// test.kt:7 box$bar +// LINENUMBERS +// test.kt:10 box +// test.kt:11 box diff --git a/compiler/testData/debug/stepping/namedCallableReference.kt b/compiler/testData/debug/stepping/namedCallableReference.kt index b5e586923e5..2123a6dc996 100644 --- a/compiler/testData/debug/stepping/namedCallableReference.kt +++ b/compiler/testData/debug/stepping/namedCallableReference.kt @@ -11,13 +11,11 @@ fun f(block: () -> Unit) { fun g() {} // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:8 -// test.kt:11 -// test.kt:4 -// test.kt:-1 -// test.kt:-1 -// test.kt:8 -// test.kt:9 -// test.kt:5 +// test.kt:3 box +// test.kt:4 box +// test.kt:8 f +// test.kt:11 g +// test.kt:4 invoke +// test.kt:8 f +// test.kt:9 f +// test.kt:5 box diff --git a/compiler/testData/debug/stepping/nestedInline.kt b/compiler/testData/debug/stepping/nestedInline.kt index 1e97720fd45..1fdcd891ec8 100644 --- a/compiler/testData/debug/stepping/nestedInline.kt +++ b/compiler/testData/debug/stepping/nestedInline.kt @@ -42,22 +42,22 @@ inline fun html(init: () -> Unit) { } // LINENUMBERS -// test.kt:19 -// test.kt:7 -// test.kt:9 -// 1.kt:18 -// 1.kt:6 -// test.kt:10 -// 1.kt:14 -// 1.kt:10 -// 1.kt:11 -// test.kt:11 -// test.kt:12 -// 1.kt:12 -// 1.kt:14 -// test.kt:13 -// 1.kt:7 -// 1.kt:18 -// test.kt:15 -// test.kt:19 -// test.kt:21 \ No newline at end of file +// test.kt:19 box +// test.kt:7 box +// test.kt:9 box +// 1.kt:18 box +// 1.kt:6 box +// test.kt:10 box +// 1.kt:14 box +// 1.kt:10 box +// 1.kt:11 box +// test.kt:11 box +// test.kt:12 box +// 1.kt:12 box +// 1.kt:14 box +// test.kt:13 box +// 1.kt:7 box +// 1.kt:18 box +// test.kt:15 box +// test.kt:19 box +// test.kt:21 box diff --git a/compiler/testData/debug/stepping/propertyAccessor.kt b/compiler/testData/debug/stepping/propertyAccessor.kt new file mode 100644 index 00000000000..6914076d35a --- /dev/null +++ b/compiler/testData/debug/stepping/propertyAccessor.kt @@ -0,0 +1,20 @@ +// FILE: test.kt + +class A { + val prop : Int + get() { + return 1 + } +} + +fun box() { + A().prop +} + +// LINENUMBERS +// test.kt:11 box +// test.kt:3 +// test.kt:11 box +// test.kt:6 getProp +// test.kt:11 box +// test.kt:12 box diff --git a/compiler/testData/debug/stepping/psvm.kt b/compiler/testData/debug/stepping/psvm.kt new file mode 100644 index 00000000000..81488a57fab --- /dev/null +++ b/compiler/testData/debug/stepping/psvm.kt @@ -0,0 +1,15 @@ +// FILE: test.kt + +fun main(args: Array) { + args[0] +} + +fun box() { + main(arrayOf("OK")) +} + +// LINENUMBERS +// test.kt:8 box +// test.kt:4 main +// test.kt:5 main +// test.kt:9 box diff --git a/compiler/testData/debug/stepping/recursion.kt b/compiler/testData/debug/stepping/recursion.kt index 7770f30989a..4508458f335 100644 --- a/compiler/testData/debug/stepping/recursion.kt +++ b/compiler/testData/debug/stepping/recursion.kt @@ -1,4 +1,4 @@ -//FILE: test.kt +// FILE: test.kt fun box() { val n = 3 val k = foo(n) @@ -12,15 +12,15 @@ fun foo(n :Int ) : Int { } // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:8 -// test.kt:11 -// test.kt:8 -// test.kt:11 -// test.kt:8 -// test.kt:9 -// test.kt:11 -// test.kt:11 -// test.kt:4 -// test.kt:5 +// test.kt:3 box +// test.kt:4 box +// test.kt:8 foo +// test.kt:11 foo +// test.kt:8 foo +// test.kt:11 foo +// test.kt:8 foo +// test.kt:9 foo +// test.kt:11 foo +// test.kt:11 foo +// test.kt:4 box +// test.kt:5 box diff --git a/compiler/testData/debug/stepping/simpleDefaultArg.kt b/compiler/testData/debug/stepping/simpleDefaultArg.kt index 9c61c3b31e0..fa966e8f1c7 100644 --- a/compiler/testData/debug/stepping/simpleDefaultArg.kt +++ b/compiler/testData/debug/stepping/simpleDefaultArg.kt @@ -1,5 +1,5 @@ - // FILE: test.kt + fun ifoo(ok: String = "OK"): String { return ok } @@ -8,9 +8,10 @@ fun box(): String { return ifoo() } +// FORCE_STEP_INTO // LINENUMBERS -// test.kt:8 -// test.kt:3 -// test.kt:4 -// test.kt:3 -// test.kt:8 \ No newline at end of file +// test.kt:8 box +// test.kt:3 ifoo$default (synthetic) +// test.kt:4 ifoo +// test.kt:3 ifoo$default (synthetic) +// test.kt:8 box \ No newline at end of file diff --git a/compiler/testData/debug/stepping/simpleDefaultArgWithInline.kt b/compiler/testData/debug/stepping/simpleDefaultArgWithInline.kt index 6b2f4b1059f..34a622e27c2 100644 --- a/compiler/testData/debug/stepping/simpleDefaultArgWithInline.kt +++ b/compiler/testData/debug/stepping/simpleDefaultArgWithInline.kt @@ -9,7 +9,7 @@ fun box(): String { } // TODO: IR Backend behaves like simpleDefaultArg: 8,3,4, _3_ ,8 // LINENUMBERS -// test.kt:8 -// test.kt:3 -// test.kt:4 -// test.kt:8 \ No newline at end of file +// test.kt:8 box +// test.kt:3 box +// test.kt:4 box +// test.kt:8 box \ No newline at end of file diff --git a/compiler/testData/debug/stepping/simpleInlineDefaultArg.kt b/compiler/testData/debug/stepping/simpleInlineDefaultArg.kt index 24eb6bc8d10..2de524ab586 100644 --- a/compiler/testData/debug/stepping/simpleInlineDefaultArg.kt +++ b/compiler/testData/debug/stepping/simpleInlineDefaultArg.kt @@ -11,8 +11,8 @@ fun box(): String { } // LINENUMBERS -// test.kt:10 -// test.kt:5 -// test.kt:3 -// test.kt:6 -// test.kt:10 \ No newline at end of file +// test.kt:10 box +// test.kt:5 box +// test.kt:3 box +// test.kt:6 box +// test.kt:10 box \ No newline at end of file diff --git a/compiler/testData/debug/stepping/simpleSmap.kt b/compiler/testData/debug/stepping/simpleSmap.kt new file mode 100644 index 00000000000..d97fd77823d --- /dev/null +++ b/compiler/testData/debug/stepping/simpleSmap.kt @@ -0,0 +1,19 @@ +// FILE: test.kt + +inline fun inlineFun(s: () -> Unit) { + s() +} + +fun box() { + inlineFun { + "OK" + } +} + +// LINENUMBERS +// test.kt:8 box +// test.kt:4 box +// test.kt:9 box +// test.kt:10 box +// test.kt:5 box +// test.kt:11 box diff --git a/compiler/testData/debug/stepping/throwException.kt b/compiler/testData/debug/stepping/throwException.kt index 3e116d64efd..cbae08767b2 100644 --- a/compiler/testData/debug/stepping/throwException.kt +++ b/compiler/testData/debug/stepping/throwException.kt @@ -1,4 +1,4 @@ -//FILE: test.kt +// FILE: test.kt fun box() { val a = 1 val b = 2 @@ -15,13 +15,13 @@ fun throwIfLess(a: Int, b: Int) { throw java.lang.IllegalStateException() } // LINENUMBERS -// test.kt:3 -// test.kt:4 -// test.kt:5 -// test.kt:6 -// test.kt:14 -// test.kt:15 -// test.kt:7 -// test.kt:8 -// test.kt:14 -// test.kt:15 +// test.kt:3 box +// test.kt:4 box +// test.kt:5 box +// test.kt:6 box +// test.kt:14 throwIfLess +// test.kt:15 throwIfLess +// test.kt:7 box +// test.kt:8 box +// test.kt:14 throwIfLess +// test.kt:15 throwIfLess diff --git a/compiler/testData/debug/stepping/topLevel.kt b/compiler/testData/debug/stepping/topLevel.kt new file mode 100644 index 00000000000..8a5971e26da --- /dev/null +++ b/compiler/testData/debug/stepping/topLevel.kt @@ -0,0 +1,15 @@ +// FILE: test.kt + +fun foo() = prop + +val prop = 1 + +fun box() { + foo() +} + +// LINENUMBERS +// test.kt:8 box +// test.kt:3 foo +// test.kt:8 box +// test.kt:9 box diff --git a/compiler/testData/debug/stepping/trait.kt b/compiler/testData/debug/stepping/trait.kt new file mode 100644 index 00000000000..bb56e290cec --- /dev/null +++ b/compiler/testData/debug/stepping/trait.kt @@ -0,0 +1,41 @@ +// FILE: test.kt + +interface A { + fun foo() = 32 + + fun bar(): Int { + return foo() + } +} + +fun box() { + (object : A {}).bar() +} + +// The JVM backend generates non-synthetic overrides of foo and bar +// in the object both with line number 12. That means that there will +// be steps on line number 12 on entry and exit to both bar and foo. + +// TODO: Is this what we want? Should they be marked as bridges instead? +// Doesn't look like the intellij debugger skips non-synthetic bridges? +// There seems to be some heuristics in intellij dealing with this as +// the stepping behavior with repeated step-into is mostly OK. + +// IGNORE_BACKEND: JVM_IR +// The JVM_IR backend generates non-synthetic overrides of foo and bar +// with no line numbers. That leads to steps on line -1 but only on +// exit from bar and foo. + +// LINENUMBERS +// test.kt:12 box +// test.kt:12 +// test.kt:12 box +// test.kt:12 bar +// test.kt:7 bar +// test.kt:12 foo +// test.kt:4 foo +// test.kt:12 foo +// test.kt:7 bar +// test.kt:12 bar +// test.kt:12 box +// test.kt:13 box diff --git a/compiler/testData/debug/stepping/tryCatch.kt b/compiler/testData/debug/stepping/tryCatch.kt new file mode 100644 index 00000000000..2d2e6ee7c36 --- /dev/null +++ b/compiler/testData/debug/stepping/tryCatch.kt @@ -0,0 +1,30 @@ +// FILE: test.kt + +fun foo(shouldThrow: Boolean) { + try { + if (shouldThrow) throw Exception() + } catch (e: Exception) { + "OK" + } + "OK" +} + +fun box() { + foo(false) + foo(true) +} + +// LINENUMBERS +// test.kt:13 box +// test.kt:4 foo +// test.kt:5 foo +// test.kt:9 foo +// test.kt:10 foo +// test.kt:14 box +// test.kt:4 foo +// test.kt:5 foo +// test.kt:6 foo +// test.kt:7 foo +// test.kt:9 foo +// test.kt:10 foo +// test.kt:15 box diff --git a/compiler/testData/debug/stepping/voidLambdaStepInline.kt b/compiler/testData/debug/stepping/voidLambdaStepInline.kt index a583e8021ad..f6486a44256 100644 --- a/compiler/testData/debug/stepping/voidLambdaStepInline.kt +++ b/compiler/testData/debug/stepping/voidLambdaStepInline.kt @@ -1,5 +1,5 @@ - // FILE: test.kt + fun box(): String { run { "O" + "K" } run { @@ -9,10 +9,10 @@ fun box(): String { } // LINENUMBERS -// test.kt:4 -// fake.kt:1 -// test.kt:4 -// test.kt:5 -// test.kt:6 -// test.kt:5 -// test.kt:8 \ No newline at end of file +// test.kt:4 box +// fake.kt:1 box +// test.kt:4 box +// test.kt:5 box +// test.kt:6 box +// test.kt:5 box +// test.kt:8 box diff --git a/compiler/testData/debug/stepping/while.kt b/compiler/testData/debug/stepping/while.kt new file mode 100644 index 00000000000..bbf910d2705 --- /dev/null +++ b/compiler/testData/debug/stepping/while.kt @@ -0,0 +1,25 @@ +// FILE: test.kt + +fun box() { + var x = 2 + while (--x > 0) { + "OK" + } + + x = 2 + do { + "OK" + } while (--x > 0) +} + +// LINENUMBERS +// test.kt:4 box +// test.kt:5 box +// test.kt:6 box +// test.kt:5 box +// test.kt:9 box +// test.kt:11 box +// test.kt:12 box +// test.kt:11 box +// test.kt:12 box +// test.kt:13 box diff --git a/compiler/testData/lineNumber/anonymousFunction.kt b/compiler/testData/lineNumber/anonymousFunction.kt deleted file mode 100644 index da9e96e9059..00000000000 --- a/compiler/testData/lineNumber/anonymousFunction.kt +++ /dev/null @@ -1,5 +0,0 @@ -fun foo() { - { - test.lineNumber() - }() -} diff --git a/compiler/testData/lineNumber/class.kt b/compiler/testData/lineNumber/class.kt deleted file mode 100644 index 29ff84749e3..00000000000 --- a/compiler/testData/lineNumber/class.kt +++ /dev/null @@ -1,7 +0,0 @@ -class A { - val prop = test.lineNumber() - - fun foo() { - test.lineNumber() - } -} diff --git a/compiler/testData/lineNumber/classObject.kt b/compiler/testData/lineNumber/classObject.kt deleted file mode 100644 index 8baad0f725d..00000000000 --- a/compiler/testData/lineNumber/classObject.kt +++ /dev/null @@ -1,9 +0,0 @@ -class A { - companion object { - val prop = test.lineNumber() - - fun foo(): Int { - return test.lineNumber() - } - } -} diff --git a/compiler/testData/lineNumber/defaultParameter.kt b/compiler/testData/lineNumber/defaultParameter.kt deleted file mode 100644 index 50876ca7a1d..00000000000 --- a/compiler/testData/lineNumber/defaultParameter.kt +++ /dev/null @@ -1,4 +0,0 @@ -class A { - fun foo(param: Int = test.lineNumber()) { - } -} diff --git a/compiler/testData/lineNumber/enum.kt b/compiler/testData/lineNumber/enum.kt deleted file mode 100644 index 79df835a101..00000000000 --- a/compiler/testData/lineNumber/enum.kt +++ /dev/null @@ -1,9 +0,0 @@ -enum class E { - E1; - - fun foo() = { - test.lineNumber() - } - - val prop = test.lineNumber() -} diff --git a/compiler/testData/lineNumber/for.kt b/compiler/testData/lineNumber/for.kt deleted file mode 100644 index de98bcc95d1..00000000000 --- a/compiler/testData/lineNumber/for.kt +++ /dev/null @@ -1,5 +0,0 @@ -fun foo() { - for (i in 0..test.lineNumber()) { - test.lineNumber() - } -} diff --git a/compiler/testData/lineNumber/if.kt b/compiler/testData/lineNumber/if.kt deleted file mode 100644 index ffa49a338fd..00000000000 --- a/compiler/testData/lineNumber/if.kt +++ /dev/null @@ -1,15 +0,0 @@ -fun foo() { - if (test.lineNumber() > 0) { - test.lineNumber() - } - - if (test.lineNumber() > 0) else { - test.lineNumber() - } - - if (test.lineNumber() > 0) { - test.lineNumber() - } else { - test.lineNumber() - } -} diff --git a/compiler/testData/lineNumber/inlineSimpleCall.kt b/compiler/testData/lineNumber/inlineSimpleCall.kt deleted file mode 100644 index db31de8fbb8..00000000000 --- a/compiler/testData/lineNumber/inlineSimpleCall.kt +++ /dev/null @@ -1,21 +0,0 @@ -inline fun inlineFun(s: () -> Unit) { - s() -} - -fun main(args: Array) { - inlineFun ({ - test.lineNumber() - }) - - inlineFun { - test.lineNumber() - } - - inlineFun { - test.lineNumber() - - inlineFun { - test.lineNumber() - } - } -} diff --git a/compiler/testData/lineNumber/lineNumberAfterInline.kt b/compiler/testData/lineNumber/lineNumberAfterInline.kt deleted file mode 100644 index 03519522846..00000000000 --- a/compiler/testData/lineNumber/lineNumberAfterInline.kt +++ /dev/null @@ -1,17 +0,0 @@ -fun normalFunction() { - -} - -inline fun inlineFunction() { - -} - -fun test1() { - inlineFunction() - test.lineNumber() -} - -fun test2() { - normalFunction() - test.lineNumber() -} \ No newline at end of file diff --git a/compiler/testData/lineNumber/localFunction.kt b/compiler/testData/lineNumber/localFunction.kt deleted file mode 100644 index 73961fb5f05..00000000000 --- a/compiler/testData/lineNumber/localFunction.kt +++ /dev/null @@ -1,9 +0,0 @@ -fun foo() { - test.lineNumber() - fun bar() { - test.lineNumber() - } - test.lineNumber() - bar() - test.lineNumber() -} diff --git a/compiler/testData/lineNumber/object.kt b/compiler/testData/lineNumber/object.kt deleted file mode 100644 index a6f9f7c8552..00000000000 --- a/compiler/testData/lineNumber/object.kt +++ /dev/null @@ -1,5 +0,0 @@ -object A { - fun foo() = test.lineNumber() - - val prop = test.lineNumber() -} diff --git a/compiler/testData/lineNumber/propertyAccessor.kt b/compiler/testData/lineNumber/propertyAccessor.kt deleted file mode 100644 index 5d6516807ee..00000000000 --- a/compiler/testData/lineNumber/propertyAccessor.kt +++ /dev/null @@ -1,6 +0,0 @@ -class A { - val prop : Int - get() { - return test.lineNumber() - } -} diff --git a/compiler/testData/lineNumber/psvm.kt b/compiler/testData/lineNumber/psvm.kt deleted file mode 100644 index 2aed5b9892a..00000000000 --- a/compiler/testData/lineNumber/psvm.kt +++ /dev/null @@ -1,3 +0,0 @@ -fun main(args: Array) { - test.lineNumber() -} diff --git a/compiler/testData/lineNumber/simpleSmap.kt b/compiler/testData/lineNumber/simpleSmap.kt deleted file mode 100644 index a25bfa746f5..00000000000 --- a/compiler/testData/lineNumber/simpleSmap.kt +++ /dev/null @@ -1,9 +0,0 @@ -inline fun inlineFun(s: () -> Unit) { - s() -} - -fun main(args: Array) { - inlineFun { - test.lineNumber() - } -} diff --git a/compiler/testData/lineNumber/topLevel.kt b/compiler/testData/lineNumber/topLevel.kt deleted file mode 100644 index 66bcbc61ba9..00000000000 --- a/compiler/testData/lineNumber/topLevel.kt +++ /dev/null @@ -1,3 +0,0 @@ -fun foo() = test.lineNumber() - -val prop = test.lineNumber() diff --git a/compiler/testData/lineNumber/trait.kt b/compiler/testData/lineNumber/trait.kt deleted file mode 100644 index f0a8880d08c..00000000000 --- a/compiler/testData/lineNumber/trait.kt +++ /dev/null @@ -1,7 +0,0 @@ -interface A { - fun foo() = test.lineNumber() - - fun bar(): Int { - return test.lineNumber() - } -} diff --git a/compiler/testData/lineNumber/tryCatch.kt b/compiler/testData/lineNumber/tryCatch.kt deleted file mode 100644 index def75533c0b..00000000000 --- a/compiler/testData/lineNumber/tryCatch.kt +++ /dev/null @@ -1,7 +0,0 @@ -fun foo() { - try { - test.lineNumber() - } catch (e: Exception) { - test.lineNumber() - } -} diff --git a/compiler/testData/lineNumber/while.kt b/compiler/testData/lineNumber/while.kt deleted file mode 100644 index 60f07db646b..00000000000 --- a/compiler/testData/lineNumber/while.kt +++ /dev/null @@ -1,9 +0,0 @@ -fun foo() { - while (test.lineNumber() > 0) { - test.lineNumber() - } - - do { - test.lineNumber() - } while (test.lineNumber() > 0) -} diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/debugInformation/AbstractSteppingTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/debugInformation/AbstractSteppingTest.kt index 389dacb9166..1da11282c73 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/debugInformation/AbstractSteppingTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/debugInformation/AbstractSteppingTest.kt @@ -9,6 +9,7 @@ import com.sun.jdi.VirtualMachine import com.sun.jdi.event.Event import com.sun.jdi.event.LocatableEvent import junit.framework.TestCase +import org.jetbrains.kotlin.test.TargetBackend import org.junit.AfterClass import org.junit.BeforeClass import java.io.File @@ -19,7 +20,10 @@ abstract class AbstractSteppingTest : AbstractDebugTest() { override val proxyPort: Int = Companion.proxyPort companion object { - const val LINENUMBER_PREFIX = "// LINENUMBERS" + const val LINENUMBERS_MARKER = "// LINENUMBERS" + const val FORCE_STEP_INTO_MARKER = "// FORCE_STEP_INTO" + const val JVM_LINENUMBER_MARKER = "$LINENUMBERS_MARKER JVM" + const val JVM_IR_LINENUMBER_MARKER = "$LINENUMBERS_MARKER JVM_IR" var proxyPort = 0 lateinit var process: Process lateinit var virtualMachine: VirtualMachine @@ -47,17 +51,49 @@ abstract class AbstractSteppingTest : AbstractDebugTest() { loggedItems.add(event) } + data class SteppingExpectations(val forceStepInto: Boolean, val lineNumbers: String) + + private fun readExpectations(wholeFile: File): SteppingExpectations { + val expected = mutableListOf() + val lines = wholeFile.readLines().dropWhile { + !it.startsWith(LINENUMBERS_MARKER) && !it.startsWith(FORCE_STEP_INTO_MARKER) + } + var forceStepInto = false + var currentBackend = TargetBackend.ANY + for (line in lines) { + if (line.trim() == FORCE_STEP_INTO_MARKER) { + forceStepInto = true + continue + } + if (line.startsWith(LINENUMBERS_MARKER)) { + currentBackend = when (line) { + LINENUMBERS_MARKER -> TargetBackend.ANY + JVM_LINENUMBER_MARKER -> TargetBackend.JVM + JVM_IR_LINENUMBER_MARKER -> TargetBackend.JVM_IR + else -> error("Expected JVM backend") + } + continue + } + if (currentBackend == TargetBackend.ANY || currentBackend == backend) { + expected.add(line.drop(3).trim()) + } + } + return SteppingExpectations(forceStepInto, expected.joinToString("\n")) + } + override fun checkResult(wholeFile: File, loggedItems: List) { - val expectedLineNumbers = wholeFile - .readLines() - .dropWhile { !it.startsWith(LINENUMBER_PREFIX) } - .drop(1) - .map { it.drop(3).trim() } - .joinToString("\n") + val (forceStepInto, expectedLineNumbers) = readExpectations(wholeFile) val actualLineNumbers = loggedItems + .filter { + val location = (it as LocatableEvent).location() + // Ignore synthetic code with no line number information + // unless force step into behavior is requested. + forceStepInto || !location.method().isSynthetic + } .map { event -> val location = (event as LocatableEvent).location() - "${location.sourceName()}:${location.lineNumber()}" + val synthetic = if (location.method().isSynthetic) " (synthetic)" else "" + "${location.sourceName()}:${location.lineNumber()} ${location.method().name()}$synthetic" } TestCase.assertEquals(expectedLineNumbers, actualLineNumbers.joinToString("\n")) } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LineNumberTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LineNumberTestGenerated.java index c50cd171e64..bc0d15699cb 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LineNumberTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LineNumberTestGenerated.java @@ -28,96 +28,6 @@ public class LineNumberTestGenerated extends AbstractLineNumberTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/lineNumber"), Pattern.compile("^(.+)\\.kt$"), null, true); } - @TestMetadata("anonymousFunction.kt") - public void testAnonymousFunction() throws Exception { - runTest("compiler/testData/lineNumber/anonymousFunction.kt"); - } - - @TestMetadata("class.kt") - public void testClass() throws Exception { - runTest("compiler/testData/lineNumber/class.kt"); - } - - @TestMetadata("classObject.kt") - public void testClassObject() throws Exception { - runTest("compiler/testData/lineNumber/classObject.kt"); - } - - @TestMetadata("defaultParameter.kt") - public void testDefaultParameter() throws Exception { - runTest("compiler/testData/lineNumber/defaultParameter.kt"); - } - - @TestMetadata("enum.kt") - public void testEnum() throws Exception { - runTest("compiler/testData/lineNumber/enum.kt"); - } - - @TestMetadata("for.kt") - public void testFor() throws Exception { - runTest("compiler/testData/lineNumber/for.kt"); - } - - @TestMetadata("if.kt") - public void testIf() throws Exception { - runTest("compiler/testData/lineNumber/if.kt"); - } - - @TestMetadata("inlineSimpleCall.kt") - public void testInlineSimpleCall() throws Exception { - runTest("compiler/testData/lineNumber/inlineSimpleCall.kt"); - } - - @TestMetadata("lineNumberAfterInline.kt") - public void testLineNumberAfterInline() throws Exception { - runTest("compiler/testData/lineNumber/lineNumberAfterInline.kt"); - } - - @TestMetadata("localFunction.kt") - public void testLocalFunction() throws Exception { - runTest("compiler/testData/lineNumber/localFunction.kt"); - } - - @TestMetadata("object.kt") - public void testObject() throws Exception { - runTest("compiler/testData/lineNumber/object.kt"); - } - - @TestMetadata("propertyAccessor.kt") - public void testPropertyAccessor() throws Exception { - runTest("compiler/testData/lineNumber/propertyAccessor.kt"); - } - - @TestMetadata("psvm.kt") - public void testPsvm() throws Exception { - runTest("compiler/testData/lineNumber/psvm.kt"); - } - - @TestMetadata("simpleSmap.kt") - public void testSimpleSmap() throws Exception { - runTest("compiler/testData/lineNumber/simpleSmap.kt"); - } - - @TestMetadata("topLevel.kt") - public void testTopLevel() throws Exception { - runTest("compiler/testData/lineNumber/topLevel.kt"); - } - - @TestMetadata("trait.kt") - public void testTrait() throws Exception { - runTest("compiler/testData/lineNumber/trait.kt"); - } - - @TestMetadata("tryCatch.kt") - public void testTryCatch() throws Exception { - runTest("compiler/testData/lineNumber/tryCatch.kt"); - } - - @TestMetadata("while.kt") - public void testWhile() throws Exception { - runTest("compiler/testData/lineNumber/while.kt"); - } - @TestMetadata("compiler/testData/lineNumber/custom") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java index 8e263a559b6..7ce1135134b 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java @@ -31,6 +31,12 @@ public class IrSteppingTestGenerated extends AbstractIrSteppingTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/stepping"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("anonymousFunction.kt") + public void testAnonymousFunction() throws Exception { + runTest("compiler/testData/debug/stepping/anonymousFunction.kt"); + } + @Test @TestMetadata("assertion.kt") public void testAssertion() throws Exception { @@ -43,12 +49,36 @@ public class IrSteppingTestGenerated extends AbstractIrSteppingTest { runTest("compiler/testData/debug/stepping/callableReference.kt"); } + @Test + @TestMetadata("class.kt") + public void testClass() throws Exception { + runTest("compiler/testData/debug/stepping/class.kt"); + } + + @Test + @TestMetadata("classObject.kt") + public void testClassObject() throws Exception { + runTest("compiler/testData/debug/stepping/classObject.kt"); + } + @Test @TestMetadata("conjunction.kt") public void testConjunction() throws Exception { runTest("compiler/testData/debug/stepping/conjunction.kt"); } + @Test + @TestMetadata("defaultParameter.kt") + public void testDefaultParameter() throws Exception { + runTest("compiler/testData/debug/stepping/defaultParameter.kt"); + } + + @Test + @TestMetadata("enum.kt") + public void testEnum() throws Exception { + runTest("compiler/testData/debug/stepping/enum.kt"); + } + @Test @TestMetadata("for.kt") public void testFor() throws Exception { @@ -67,6 +97,12 @@ public class IrSteppingTestGenerated extends AbstractIrSteppingTest { runTest("compiler/testData/debug/stepping/if.kt"); } + @Test + @TestMetadata("if2.kt") + public void testIf2() throws Exception { + runTest("compiler/testData/debug/stepping/if2.kt"); + } + @Test @TestMetadata("IfTrueThenFalse.kt") public void testIfTrueThenFalse() throws Exception { @@ -91,6 +127,12 @@ public class IrSteppingTestGenerated extends AbstractIrSteppingTest { runTest("compiler/testData/debug/stepping/inlineNamedCallableReference.kt"); } + @Test + @TestMetadata("inlineSimpleCall.kt") + public void testInlineSimpleCall() throws Exception { + runTest("compiler/testData/debug/stepping/inlineSimpleCall.kt"); + } + @Test @TestMetadata("lambdaStepInline.kt") public void testLambdaStepInline() throws Exception { @@ -103,6 +145,18 @@ public class IrSteppingTestGenerated extends AbstractIrSteppingTest { runTest("compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt"); } + @Test + @TestMetadata("lineNumberAfterInline.kt") + public void testLineNumberAfterInline() throws Exception { + runTest("compiler/testData/debug/stepping/lineNumberAfterInline.kt"); + } + + @Test + @TestMetadata("localFunction.kt") + public void testLocalFunction() throws Exception { + runTest("compiler/testData/debug/stepping/localFunction.kt"); + } + @Test @TestMetadata("namedCallableReference.kt") public void testNamedCallableReference() throws Exception { @@ -115,6 +169,18 @@ public class IrSteppingTestGenerated extends AbstractIrSteppingTest { runTest("compiler/testData/debug/stepping/nestedInline.kt"); } + @Test + @TestMetadata("propertyAccessor.kt") + public void testPropertyAccessor() throws Exception { + runTest("compiler/testData/debug/stepping/propertyAccessor.kt"); + } + + @Test + @TestMetadata("psvm.kt") + public void testPsvm() throws Exception { + runTest("compiler/testData/debug/stepping/psvm.kt"); + } + @Test @TestMetadata("recursion.kt") public void testRecursion() throws Exception { @@ -139,15 +205,45 @@ public class IrSteppingTestGenerated extends AbstractIrSteppingTest { runTest("compiler/testData/debug/stepping/simpleInlineDefaultArg.kt"); } + @Test + @TestMetadata("simpleSmap.kt") + public void testSimpleSmap() throws Exception { + runTest("compiler/testData/debug/stepping/simpleSmap.kt"); + } + @Test @TestMetadata("throwException.kt") public void testThrowException() throws Exception { runTest("compiler/testData/debug/stepping/throwException.kt"); } + @Test + @TestMetadata("topLevel.kt") + public void testTopLevel() throws Exception { + runTest("compiler/testData/debug/stepping/topLevel.kt"); + } + + @Test + @TestMetadata("trait.kt") + public void testTrait() throws Exception { + runTest("compiler/testData/debug/stepping/trait.kt"); + } + + @Test + @TestMetadata("tryCatch.kt") + public void testTryCatch() throws Exception { + runTest("compiler/testData/debug/stepping/tryCatch.kt"); + } + @Test @TestMetadata("voidLambdaStepInline.kt") public void testVoidLambdaStepInline() throws Exception { runTest("compiler/testData/debug/stepping/voidLambdaStepInline.kt"); } + + @Test + @TestMetadata("while.kt") + public void testWhile() throws Exception { + runTest("compiler/testData/debug/stepping/while.kt"); + } } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java index b4f2a5bfdd2..dccb44e2559 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java @@ -31,6 +31,12 @@ public class SteppingTestGenerated extends AbstractSteppingTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/stepping"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @Test + @TestMetadata("anonymousFunction.kt") + public void testAnonymousFunction() throws Exception { + runTest("compiler/testData/debug/stepping/anonymousFunction.kt"); + } + @Test @TestMetadata("assertion.kt") public void testAssertion() throws Exception { @@ -43,12 +49,36 @@ public class SteppingTestGenerated extends AbstractSteppingTest { runTest("compiler/testData/debug/stepping/callableReference.kt"); } + @Test + @TestMetadata("class.kt") + public void testClass() throws Exception { + runTest("compiler/testData/debug/stepping/class.kt"); + } + + @Test + @TestMetadata("classObject.kt") + public void testClassObject() throws Exception { + runTest("compiler/testData/debug/stepping/classObject.kt"); + } + @Test @TestMetadata("conjunction.kt") public void testConjunction() throws Exception { runTest("compiler/testData/debug/stepping/conjunction.kt"); } + @Test + @TestMetadata("defaultParameter.kt") + public void testDefaultParameter() throws Exception { + runTest("compiler/testData/debug/stepping/defaultParameter.kt"); + } + + @Test + @TestMetadata("enum.kt") + public void testEnum() throws Exception { + runTest("compiler/testData/debug/stepping/enum.kt"); + } + @Test @TestMetadata("for.kt") public void testFor() throws Exception { @@ -67,6 +97,12 @@ public class SteppingTestGenerated extends AbstractSteppingTest { runTest("compiler/testData/debug/stepping/if.kt"); } + @Test + @TestMetadata("if2.kt") + public void testIf2() throws Exception { + runTest("compiler/testData/debug/stepping/if2.kt"); + } + @Test @TestMetadata("IfTrueThenFalse.kt") public void testIfTrueThenFalse() throws Exception { @@ -91,6 +127,12 @@ public class SteppingTestGenerated extends AbstractSteppingTest { runTest("compiler/testData/debug/stepping/inlineNamedCallableReference.kt"); } + @Test + @TestMetadata("inlineSimpleCall.kt") + public void testInlineSimpleCall() throws Exception { + runTest("compiler/testData/debug/stepping/inlineSimpleCall.kt"); + } + @Test @TestMetadata("lambdaStepInline.kt") public void testLambdaStepInline() throws Exception { @@ -103,6 +145,18 @@ public class SteppingTestGenerated extends AbstractSteppingTest { runTest("compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt"); } + @Test + @TestMetadata("lineNumberAfterInline.kt") + public void testLineNumberAfterInline() throws Exception { + runTest("compiler/testData/debug/stepping/lineNumberAfterInline.kt"); + } + + @Test + @TestMetadata("localFunction.kt") + public void testLocalFunction() throws Exception { + runTest("compiler/testData/debug/stepping/localFunction.kt"); + } + @Test @TestMetadata("namedCallableReference.kt") public void testNamedCallableReference() throws Exception { @@ -115,6 +169,18 @@ public class SteppingTestGenerated extends AbstractSteppingTest { runTest("compiler/testData/debug/stepping/nestedInline.kt"); } + @Test + @TestMetadata("propertyAccessor.kt") + public void testPropertyAccessor() throws Exception { + runTest("compiler/testData/debug/stepping/propertyAccessor.kt"); + } + + @Test + @TestMetadata("psvm.kt") + public void testPsvm() throws Exception { + runTest("compiler/testData/debug/stepping/psvm.kt"); + } + @Test @TestMetadata("recursion.kt") public void testRecursion() throws Exception { @@ -139,15 +205,45 @@ public class SteppingTestGenerated extends AbstractSteppingTest { runTest("compiler/testData/debug/stepping/simpleInlineDefaultArg.kt"); } + @Test + @TestMetadata("simpleSmap.kt") + public void testSimpleSmap() throws Exception { + runTest("compiler/testData/debug/stepping/simpleSmap.kt"); + } + @Test @TestMetadata("throwException.kt") public void testThrowException() throws Exception { runTest("compiler/testData/debug/stepping/throwException.kt"); } + @Test + @TestMetadata("topLevel.kt") + public void testTopLevel() throws Exception { + runTest("compiler/testData/debug/stepping/topLevel.kt"); + } + + @Test + @TestMetadata("trait.kt") + public void testTrait() throws Exception { + runTest("compiler/testData/debug/stepping/trait.kt"); + } + + @Test + @TestMetadata("tryCatch.kt") + public void testTryCatch() throws Exception { + runTest("compiler/testData/debug/stepping/tryCatch.kt"); + } + @Test @TestMetadata("voidLambdaStepInline.kt") public void testVoidLambdaStepInline() throws Exception { runTest("compiler/testData/debug/stepping/voidLambdaStepInline.kt"); } + + @Test + @TestMetadata("while.kt") + public void testWhile() throws Exception { + runTest("compiler/testData/debug/stepping/while.kt"); + } } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrLineNumberTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrLineNumberTestGenerated.java index 54dd11d6f42..56a68f88820 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrLineNumberTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrLineNumberTestGenerated.java @@ -29,96 +29,6 @@ public class IrLineNumberTestGenerated extends AbstractIrLineNumberTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/lineNumber"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } - @TestMetadata("anonymousFunction.kt") - public void testAnonymousFunction() throws Exception { - runTest("compiler/testData/lineNumber/anonymousFunction.kt"); - } - - @TestMetadata("class.kt") - public void testClass() throws Exception { - runTest("compiler/testData/lineNumber/class.kt"); - } - - @TestMetadata("classObject.kt") - public void testClassObject() throws Exception { - runTest("compiler/testData/lineNumber/classObject.kt"); - } - - @TestMetadata("defaultParameter.kt") - public void testDefaultParameter() throws Exception { - runTest("compiler/testData/lineNumber/defaultParameter.kt"); - } - - @TestMetadata("enum.kt") - public void testEnum() throws Exception { - runTest("compiler/testData/lineNumber/enum.kt"); - } - - @TestMetadata("for.kt") - public void testFor() throws Exception { - runTest("compiler/testData/lineNumber/for.kt"); - } - - @TestMetadata("if.kt") - public void testIf() throws Exception { - runTest("compiler/testData/lineNumber/if.kt"); - } - - @TestMetadata("inlineSimpleCall.kt") - public void testInlineSimpleCall() throws Exception { - runTest("compiler/testData/lineNumber/inlineSimpleCall.kt"); - } - - @TestMetadata("lineNumberAfterInline.kt") - public void testLineNumberAfterInline() throws Exception { - runTest("compiler/testData/lineNumber/lineNumberAfterInline.kt"); - } - - @TestMetadata("localFunction.kt") - public void testLocalFunction() throws Exception { - runTest("compiler/testData/lineNumber/localFunction.kt"); - } - - @TestMetadata("object.kt") - public void testObject() throws Exception { - runTest("compiler/testData/lineNumber/object.kt"); - } - - @TestMetadata("propertyAccessor.kt") - public void testPropertyAccessor() throws Exception { - runTest("compiler/testData/lineNumber/propertyAccessor.kt"); - } - - @TestMetadata("psvm.kt") - public void testPsvm() throws Exception { - runTest("compiler/testData/lineNumber/psvm.kt"); - } - - @TestMetadata("simpleSmap.kt") - public void testSimpleSmap() throws Exception { - runTest("compiler/testData/lineNumber/simpleSmap.kt"); - } - - @TestMetadata("topLevel.kt") - public void testTopLevel() throws Exception { - runTest("compiler/testData/lineNumber/topLevel.kt"); - } - - @TestMetadata("trait.kt") - public void testTrait() throws Exception { - runTest("compiler/testData/lineNumber/trait.kt"); - } - - @TestMetadata("tryCatch.kt") - public void testTryCatch() throws Exception { - runTest("compiler/testData/lineNumber/tryCatch.kt"); - } - - @TestMetadata("while.kt") - public void testWhile() throws Exception { - runTest("compiler/testData/lineNumber/while.kt"); - } - @TestMetadata("compiler/testData/lineNumber/custom") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)