[JS BE] Make sourceMap generation more precise

- Don't produce mapping for closing bracket in case of expressionBody
 - Map Kt*Function declaration into corresponding js fun declaration
 - Update test data & add new test
This commit is contained in:
Roman Artemev
2019-07-23 18:51:58 +03:00
committed by romanart
parent 12a1b0296b
commit 46b98a1e98
56 changed files with 98 additions and 57 deletions
@@ -6,4 +6,4 @@ fun box(x: Int, y: Int) {
fun foo(x: Int) = x
// LINES: 5 3 3 4 3 3 3 3 * 3 3 4 4 4 4 * 4 4 4 4 2 3 7 7 7
// LINES: 1 5 3 3 4 3 3 3 3 * 3 3 4 4 4 4 * 4 4 4 4 2 3 7 7 7
+1 -1
View File
@@ -12,4 +12,4 @@ open class A {
}
}
// LINES: 1 2 2 4 4 2 2 2 2 5 5 5 6 12 8 9 10 11
// LINES: 1 2 2 4 4 2 2 2 2 5 5 5 6 7 12 8 9 10 11
+1 -1
View File
@@ -19,4 +19,4 @@ fun bar() {
}
}
// LINES: 11 3 3 5 5 6 6 8 8 9 9 2 2 * 20 15 15 18 18
// LINES: 1 11 3 3 5 5 6 6 8 8 9 9 2 2 * 13 20 15 15 18 18
+1 -1
View File
@@ -14,4 +14,4 @@ class C {
val baz: dynamic get() = null
}
// LINES: 9 2 4 3 2 6 8 7 6 11 12 12 12 14 14 14
// LINES: 1 9 2 4 3 2 6 8 7 6 11 12 12 12 14 14 14
@@ -14,4 +14,4 @@ fun A.foo() {
fun baz() = 23
// LINES: 1 * 5 5 5 9 7 7 8 8 * 13 4 4 11 11 12 12 15 15 15
// LINES: 1 * 5 5 5 6 9 7 7 8 8 * 3 13 4 4 11 11 12 12 15 15 15
+1 -1
View File
@@ -5,4 +5,4 @@ fun box(x: Int, y: Int): Int {
return foo(y)
}
// LINES: 2 2 2 4 4 6 2 2 5 5
// LINES: 2 2 2 4 4 1 6 2 2 5 5
@@ -11,4 +11,4 @@ fun baz() = 1
fun bar() = 2
// LINES: 8 3 3 2 2 4 3 4 4 4 5 5 2 8 8 10 10 10 12 12 12
// LINES: 1 3 3 2 2 4 3 4 4 4 5 5 2 8 8 10 10 10 12 12 12
@@ -14,4 +14,4 @@ private inline fun foo(): Int {
return 23
}
// LINES: 10 3 3 3 4 3 6 13 13 3 14 2 15 13 13 14 14
// LINES: 1 10 3 3 3 4 3 6 13 13 3 14 2 12 15 13 13 14 14
+1 -1
View File
@@ -14,4 +14,4 @@ suspend fun bar(): Unit {
println(a + b)
}
// LINES: 38 4 4 4 5 5 44 44 5 89 44 5 5 6 4 4 4 15 9 9 9 * 15 10 10 11 11 11 11 11 * 11 12 12 13 13 13 13 13 13 13 14 14 * 15 9 9 9 9
// LINES: 38 4 4 4 7 5 5 44 44 5 89 44 5 5 6 4 4 4 9 15 9 9 9 * 9 15 10 10 11 11 11 11 11 * 11 12 12 13 13 13 13 13 13 13 14 14 * 9 15 9 9 9 9
@@ -8,4 +8,4 @@ suspend fun foo() {
suspend fun delay() {
}
// LINES: 6 1 1 * 6 2 2 2 2 2 * 3 3 4 4 4 4 4 5 5 * 6 1 1 1 1 9
// LINES: 1 6 1 1 * 1 6 2 2 2 2 2 * 3 3 4 4 4 4 4 5 5 * 1 6 1 1 1 1 8 9
+1 -1
View File
@@ -13,4 +13,4 @@ class Delegate(val f: () -> Int) {
}
}
// LINES: 1 2 3 * 2 2 3 3 3 * 8 7 7 10 10 13 12 12
// LINES: 1 2 3 * 2 2 3 3 3 3 * 6 8 7 7 10 10 11 13 12 12
+1 -1
View File
@@ -15,4 +15,4 @@ class B {
}
}
// LINES: 3 4 5 * 4 4 4 * 8 11 10 10 15 14 14
// LINES: 3 4 5 * 4 4 4 * 8 9 11 10 10 13 15 14 14
+1 -1
View File
@@ -18,4 +18,4 @@ val o = object : I {
}
}
// LINES: 1 2 3 2 2 2 2 2 2 2 * 11 12 12 12 15 15 15 18 17 17
// LINES: 1 2 3 2 2 2 2 2 2 2 * 11 12 12 12 15 15 15 16 18 17 17
+1 -1
View File
@@ -27,4 +27,4 @@ fun bar(f: (Pair<String, String>) -> Unit) {
}
// LINES: 22 16 16 17 18 20 20 21 21 22 22 23 9 9 9 9 4 9 9 9 5 5 6 7 11 11 12 12 15 15 27 26 26 * 1 * 1
// LINES: 15 22 16 16 17 18 20 20 21 21 22 22 3 23 9 9 9 9 4 9 9 9 5 5 6 7 11 11 12 12 15 15 25 27 26 26 * 1 * 1
@@ -32,4 +32,4 @@ inline operator fun P.component1() = a
inline operator fun P.component2() = b
// LINES: 22 17 17 31 18 18 33 20 20 21 21 22 22 23 9 9 9 9 4 9 9 9 6 6 31 7 7 33 11 11 12 12 15 15 27 26 26 29 29 29 * 31 31 31 33 33 33 * 1 * 1
// LINES: 15 22 17 17 31 18 18 33 20 20 21 21 22 22 3 23 9 9 9 9 4 9 9 9 6 6 31 7 7 33 11 11 12 12 15 15 25 27 26 26 29 29 29 * 31 31 31 33 33 33 * 1 * 1
@@ -13,4 +13,4 @@ fun box() {
)
}
// LINES: 14 8 8 7 3 2 2 3 3 3 8 8 11 11 * 3 7 12 3 3 4 4
// LINES: 1 14 8 8 7 3 2 2 3 3 3 8 8 11 11 * 3 7 12 3 3 4 4
+1 -1
View File
@@ -9,4 +9,4 @@ fun box(x: String?) {
fun foo() = "bar"
// LINES: 8 7 7 4 4 4 5 5 7 7 7 7 * 5 4 5 10 10 10 * 1 * 1
// LINES: 3 8 7 7 4 4 4 5 5 7 7 7 7 * 5 4 5 10 10 10 * 1 * 1
@@ -4,4 +4,4 @@ fun box() =
fun foo() =
23
// LINES: 2 2 2 5 5 5
// LINES: 1 2 2 4 5 5
+1 -1
View File
@@ -17,4 +17,4 @@ fun box() {
}
}
// LINES: 18 2 2 10 2 2 2 2 2 2 3 3 6 6 6 6 7 7 10 10 10 10 10 10 11 11 14 14 15 15 15 15 16 16
// LINES: 1 18 2 2 10 2 2 2 2 2 2 3 3 6 6 6 6 7 7 10 10 10 10 10 10 11 11 14 14 15 15 15 15 16 16
+1 -1
View File
@@ -8,4 +8,4 @@ fun foo(x: Int) {
println(y)
}
// LINES: 9 2 2 3 3 4 4 5 5 6 6 7 7 8 8
// LINES: 1 9 2 2 3 3 4 4 5 5 6 6 7 7 8 8
+1 -1
View File
@@ -11,4 +11,4 @@ inline fun foo(x: Int) {
fun bar() = 23
// LINES: 5 4 4 8 8 9 9 10 8 8 9 9 12 12 12 * 1 * 1
// LINES: 3 5 4 4 8 8 9 9 7 10 8 8 9 9 12 12 12 * 1 * 1
@@ -9,4 +9,4 @@ fun bar() {
foo(42)
}
// LINES: 1 1 1 1 1 6 2 2 3 3 4 4 10 2 2 9 2 3 3 4 4
// LINES: 1 1 1 1 1 6 2 2 3 3 4 4 8 10 2 2 9 2 3 3 4 4
@@ -21,4 +21,4 @@ fun box() {
foo("42")
}
// LINES: 6 22 7 7 20 7 8 8 20 8 7 7 21 7 8 8 21 8
// LINES: 6 19 22 7 7 20 7 8 8 20 8 7 7 21 7 8 8 21 8
+1 -1
View File
@@ -21,4 +21,4 @@ fun bar(x: Int) {
println("%")
}
// LINES: 1 1 1 1 1 1 1 1 1 17 2 2 3 3 4 7 7 9 9 10 10 11 14 14 16 16 22 20 20 20 20 2 2 3 3 4 3 7 7 9 9 10 10 11 10 14 14 16 16 * 20 21 21
// LINES: 1 1 1 1 1 1 1 1 1 17 2 2 3 3 4 7 7 9 9 10 10 11 14 14 16 16 19 22 20 20 20 20 17 2 2 3 3 4 3 7 7 9 9 10 10 11 10 14 14 16 16 20 21 21
+1 -1
View File
@@ -11,4 +11,4 @@ inline fun bar() {
println("bar2")
}
// LINES: 7 2 2 10 10 11 11 4 4 10 10 11 11 6 6 9 9 9 9 9 12 10 10 11 11
// LINES: 1 7 2 2 10 10 11 11 4 4 10 10 11 11 6 6 9 9 9 9 9 12 10 10 11 11
@@ -16,4 +16,4 @@ inline fun foo(f: () -> Unit) {
println("after")
}
// LINES: 11 2 2 14 14 4 4 16 16 6 6 14 14 8 8 16 16 10 10 13 13 13 13 13 17 14 14 15 15 16 16
// LINES: 1 11 2 2 14 14 4 4 16 16 6 6 14 14 8 8 16 16 10 10 13 13 13 13 13 17 14 14 15 15 16 16
+1 -1
View File
@@ -6,4 +6,4 @@ class A(val x: Int) {
}
}
// LINES: 1 1 2 2 5 4 4
// LINES: 1 1 2 2 3 5 4 4
+1 -1
View File
@@ -11,4 +11,4 @@ inline fun foo(): Boolean {
return true
}
// LINES: 7 4 4 4 10 10 4 11 4 5 5 12 10 10 11 11 * 1 * 1
// LINES: 3 7 4 4 4 10 10 4 11 4 5 5 9 12 10 10 11 11 * 1 * 1
+1 -1
View File
@@ -5,4 +5,4 @@ fun foo() {
println("after: $x")
}
// LINES: 6 2 2 3 3 4 4 5 5
// LINES: 1 6 2 2 3 3 4 4 5 5
+1 -1
View File
@@ -4,4 +4,4 @@ fun foo(x: Int): () -> Unit = {
fun bar() = 23
// LINES: 1 1 1 2 2 3 3 1 1 1 5 5 5
// LINES: 1 1 1 3 2 2 3 3 1 1 1 5 5 5
@@ -24,4 +24,4 @@ fun baz() = "baz"
fun boo() = "boo"
// LINES: 17 4 6 6 7 7 3 3 3 * 13 12 13 13 14 21 20 20 23 23 23 25 25 25
// LINES: 1 17 9 4 6 6 7 7 3 3 3 * 13 12 13 13 14 19 21 20 20 23 23 23 25 25 25
+1 -1
View File
@@ -26,4 +26,4 @@ fun bar(vararg x: Any?) {
println(x)
}
// LINES: 1 22 3 4 5 6 7 8 9 10 13 14 15 16 17 18 19 20 * 27 26 26
// LINES: 1 2 22 3 4 5 6 7 8 9 10 13 14 15 16 17 18 19 20 * 25 27 26 26
+1 -1
View File
@@ -5,4 +5,4 @@ fun foo() {
0L)
}
// LINES: 3 * 5 6 2 4
// LINES: 3 * 5 1 6 2 4
@@ -10,4 +10,4 @@ class B : A() {
}
}
// LINES: 1 2 2 2 2 2 2 2 2 2 4 4 4 * 7 7 10 9 9
// LINES: 1 2 2 2 2 2 2 2 2 2 4 4 4 * 7 7 8 10 9 9
@@ -12,4 +12,4 @@ object O {
val y = 23
}
// LINES: 9 2 2 3 3 4 4 6 6 7 7 8 8 11 11 12 12 * 11 11 11 11 11 11
// LINES: 1 9 2 2 3 3 4 4 6 6 7 7 8 8 11 11 12 12 * 11 11 11 11 11 11
@@ -4,4 +4,4 @@ fun foo() {
println("foo")
}
// LINES: 1 1 * 1 1 1 1 1 1 5 4 4
// LINES: 1 1 * 1 1 1 1 1 1 3 5 4 4
+1 -1
View File
@@ -7,4 +7,4 @@ fun box(
println(y)
}
// LINES: 8 2 2 2 2 3 3 3 4 6 6 7 7
// LINES: 1 8 2 2 2 2 3 3 3 4 6 6 7 7
+1 -1
View File
@@ -3,4 +3,4 @@ fun box() {
println("bar")
}
// LINES: 4 2 2 3 3
// LINES: 1 4 2 2 3 3
+1 -1
View File
@@ -4,4 +4,4 @@ fun box(x: Int): String {
"suffix"
}
// LINES: 5 2 2 3 4
// LINES: 1 5 2 2 3 4
+1 -1
View File
@@ -7,4 +7,4 @@ fun foo() {
A(23, "foo")
}
// LINES: 1 2 3 * 8 7 7
// LINES: 1 2 3 * 6 8 7 7
@@ -18,4 +18,4 @@ fun box(x: Int) {
)
}
// LINES: 19 4 4 3 3 4 6 9 9 6 11 13 13 11 16 16 3 2
// LINES: 1 19 4 4 3 3 4 6 9 9 6 11 13 13 11 16 16 3 2
@@ -28,4 +28,4 @@ fun four() = 4
fun five() = 5
// LINES: 19 4 4 3 6 4 6 4 7 4 8 9 9 11 4 11 4 12 13 13 16 16 2 21 21 21 23 23 23 25 25 25 27 27 27 29 29 29
// LINES: 1 19 4 4 3 6 4 6 4 7 4 8 9 9 11 4 11 4 12 13 13 16 16 2 21 21 21 23 23 23 25 25 25 27 27 27 29 29 29
+1 -1
View File
@@ -13,4 +13,4 @@ fun foo(): Int = 23
fun bar(): IntRange = 1000..2000
// LINES: 10 2 2 2 2 3 3 4 4 5 5 6 6 7 7 8 8 12 12 12 14 14 14
// LINES: 1 10 2 2 2 2 3 3 4 4 5 5 6 6 7 7 8 8 12 12 12 14 14 14
+1 -1
View File
@@ -13,4 +13,4 @@ open class A
open class B : A()
// LINES: 10 2 2 2 2 3 3 4 4 5 5 6 6 8 8 12 * 14 14
// LINES: 1 10 2 2 2 2 3 3 4 4 5 5 6 6 8 8 12 * 14 14
@@ -12,4 +12,4 @@ fun box() {
}
}
// LINES: 13 5 5 4 2 2 3 5 5 8 8 * 3 4 9 3 11 11
// LINES: 1 13 5 5 4 2 2 3 5 5 8 8 * 3 4 9 3 11 11
+13
View File
@@ -0,0 +1,13 @@
package foo
fun test1() = "O"
fun test2(s: String): String {
return s
}
fun test(s:String) =
test1() +
test2(s)
fun box()
= test("K")