JS: visit tests and main in import remover; update line numbers

This commit is contained in:
Anton Bannykh
2018-12-18 15:59:08 +03:00
parent 52b705e7ae
commit cd0fd569b4
6 changed files with 9 additions and 6 deletions
@@ -30,6 +30,8 @@ fun removeUnusedImports(fragment: JsProgramFragment) {
}
collectUsedImports(declarationBlock, usedImports)
collectUsedImports(initializerBlock, usedImports)
tests?.let { collectUsedImports(it, usedImports) }
mainFunction?.let { collectUsedImports(it, usedImports) }
collectUsedImports(exportBlock, usedImports)
}
@@ -45,6 +47,7 @@ private fun collectUsedImports(root: JsNode, to: MutableSet<JsName>): Set<JsName
root.accept(collector)
// See StaticContext.getVariableForPropertyMetadata
// TODO Find a better way
val removedPseudoImports = mutableSetOf<JsName>()
NodeRemover(JsVars::class.java) { statement ->
if (statement.vars.size == 1) {
@@ -56,7 +59,6 @@ private fun collectUsedImports(root: JsNode, to: MutableSet<JsName>): Set<JsName
false
}
}.accept(root)
collector.pseudoImports.forEach {
if (it.name !in removedPseudoImports) {
it.initExpression.accept(collector)
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// EXPECTED_REACHABLE_NODES: 1625
// MODULE: lib
// FILE: lib.kt
@@ -7,8 +8,8 @@ inline fun tenUInt() = 10U
inline fun tenULong() = 10UL
// MODULE: main(lib)
// FILE: main.kt
// RECOMPILE
fun box(): String {
+1 -1
View File
@@ -14,4 +14,4 @@ suspend fun bar(): Unit {
println(a + b)
}
// LINES: 38 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 2 11 11 * 11 12 12 13 13 13 2 13 13 13 13 14 14 * 15 9 9 9 9
// LINES: 39 4 4 4 5 5 44 44 5 88 44 5 5 6 4 4 4 15 9 9 9 * 15 10 10 11 11 11 2 11 11 * 11 12 12 13 13 13 2 13 13 13 13 14 14 * 15 9 9 9 9
@@ -9,4 +9,4 @@ fun bar() {
foo(42)
}
// LINES: 1 1 1 1 1 6 2 2 3 3 4 4 1 1 10 2 2 9 2 3 3 4 4
// LINES: 1 1 1 1 1 6 2 2 3 3 4 4 10 2 2 9 2 3 3 4 4
@@ -21,4 +21,4 @@ fun box() {
foo("42")
}
// LINES: 6 6 22 7 7 20 7 8 8 20 8 7 7 21 7 8 8 21 8
// LINES: 6 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 1 1 1 1 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 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