From 2122f57f516318d22d6125e0ecb58ac72dc5d9d3 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Wed, 21 Jun 2017 16:05:23 +0300 Subject: [PATCH] Don't merge locations in JS source map test cases Don't merge locations of containing if/while/do..while/for statements with locations of conditions --- .../test/org/jetbrains/kotlin/js/test/utils/LineCollector.kt | 4 ++++ .../kotlin/js/test/utils/LineOutputToStringVisitor.kt | 2 +- js/js.translator/testData/lineNumbers/andAndWithSideEffect.kt | 2 +- js/js.translator/testData/lineNumbers/catch.kt | 2 +- js/js.translator/testData/lineNumbers/for.kt | 2 +- js/js.translator/testData/lineNumbers/inlineLocalVarsRef.kt | 2 +- js/js.translator/testData/lineNumbers/inlineReturn.kt | 2 +- 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineCollector.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineCollector.kt index dcb6b2d734a..590f662d033 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineCollector.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineCollector.kt @@ -71,6 +71,7 @@ class LineCollector : RecursiveJsVisitor() { override fun visitIf(x: JsIf) { withStatement(x) { handleNodeLocation(x) + lineNumbersByStatement[x]?.add(-1) x.ifExpression.accept(this) } x.thenStatement.accept(this) @@ -80,6 +81,7 @@ class LineCollector : RecursiveJsVisitor() { override fun visitWhile(x: JsWhile) { withStatement(x) { handleNodeLocation(x) + lineNumbersByStatement[x]?.add(-1) x.condition.accept(this) } x.body.accept(this) @@ -94,6 +96,8 @@ class LineCollector : RecursiveJsVisitor() { override fun visitFor(x: JsFor) { withStatement(x) { + handleNodeLocation(x) + lineNumbersByStatement[x]?.add(-1) x.initExpression?.accept(this) x.initVars?.accept(this) x.condition?.accept(this) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineOutputToStringVisitor.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineOutputToStringVisitor.kt index b6f381f7dc6..e0b5127900d 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineOutputToStringVisitor.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/LineOutputToStringVisitor.kt @@ -89,7 +89,7 @@ class LineOutputToStringVisitor(output: TextOutput, val lineCollector: LineColle } else if (statement in lineCollector.lineNumbersByStatement) { p.print("/* ") - p.print(lineCollector.lineNumbersByStatement[statement]!!.joinToString(" ") { (it + 1).toString() }) + p.print(lineCollector.lineNumbersByStatement[statement]!!.filter { it >= 0 }.joinToString(" ") { (it + 1).toString() }) p.print(" */ ") } } diff --git a/js/js.translator/testData/lineNumbers/andAndWithSideEffect.kt b/js/js.translator/testData/lineNumbers/andAndWithSideEffect.kt index c25419b19d5..4f95cd79bac 100644 --- a/js/js.translator/testData/lineNumbers/andAndWithSideEffect.kt +++ b/js/js.translator/testData/lineNumbers/andAndWithSideEffect.kt @@ -6,4 +6,4 @@ fun box(x: Int, y: Int) { fun foo(x: Int) = x -// LINES: 3 3 * 3 4 4 * 4 4 2 3 7 \ No newline at end of file +// LINES: 3 3 * 3 3 4 4 * 4 4 2 3 7 \ No newline at end of file diff --git a/js/js.translator/testData/lineNumbers/catch.kt b/js/js.translator/testData/lineNumbers/catch.kt index fe5ebf646c7..a948cdedb68 100644 --- a/js/js.translator/testData/lineNumbers/catch.kt +++ b/js/js.translator/testData/lineNumbers/catch.kt @@ -19,4 +19,4 @@ fun bar() { } } -// LINES: 3 5 6 8 9 * 15 18 \ No newline at end of file +// LINES: 3 5 5 6 8 8 9 * 15 18 \ No newline at end of file diff --git a/js/js.translator/testData/lineNumbers/for.kt b/js/js.translator/testData/lineNumbers/for.kt index 6dd25bb230e..1a2f1607aed 100644 --- a/js/js.translator/testData/lineNumbers/for.kt +++ b/js/js.translator/testData/lineNumbers/for.kt @@ -17,4 +17,4 @@ fun box() { } } -// LINES: 2 10 15 2 2 2 3 6 6 7 10 10 10 11 14 15 15 15 15 15 15 16 \ No newline at end of file +// LINES: 2 10 15 2 2 2 2 3 6 6 6 7 10 10 10 10 11 14 15 15 15 15 15 15 15 16 \ No newline at end of file diff --git a/js/js.translator/testData/lineNumbers/inlineLocalVarsRef.kt b/js/js.translator/testData/lineNumbers/inlineLocalVarsRef.kt index bfcb9d37720..83fc31bb7be 100644 --- a/js/js.translator/testData/lineNumbers/inlineLocalVarsRef.kt +++ b/js/js.translator/testData/lineNumbers/inlineLocalVarsRef.kt @@ -9,4 +9,4 @@ fun bar() { foo(42) } -// LINES: 2 3 4 * 2 9 2 3 4 \ No newline at end of file +// LINES: 2 3 3 4 * 2 9 2 3 3 4 \ No newline at end of file diff --git a/js/js.translator/testData/lineNumbers/inlineReturn.kt b/js/js.translator/testData/lineNumbers/inlineReturn.kt index ce34e36208e..e4d783b54e7 100644 --- a/js/js.translator/testData/lineNumbers/inlineReturn.kt +++ b/js/js.translator/testData/lineNumbers/inlineReturn.kt @@ -21,4 +21,4 @@ fun bar(x: Int) { println("%") } -// LINES: 2 3 4 7 9 10 11 14 16 * 20 * 2 3 4 3 7 9 10 11 10 14 16 * 20 21 \ No newline at end of file +// LINES: 2 2 3 4 7 9 9 10 11 14 16 * 20 * 2 2 3 4 3 7 9 9 10 11 10 14 16 * 20 21 \ No newline at end of file