JS: visit tests and main in import remover; update line numbers
This commit is contained in:
@@ -30,6 +30,8 @@ fun removeUnusedImports(fragment: JsProgramFragment) {
|
|||||||
}
|
}
|
||||||
collectUsedImports(declarationBlock, usedImports)
|
collectUsedImports(declarationBlock, usedImports)
|
||||||
collectUsedImports(initializerBlock, usedImports)
|
collectUsedImports(initializerBlock, usedImports)
|
||||||
|
tests?.let { collectUsedImports(it, usedImports) }
|
||||||
|
mainFunction?.let { collectUsedImports(it, usedImports) }
|
||||||
collectUsedImports(exportBlock, usedImports)
|
collectUsedImports(exportBlock, usedImports)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,6 +47,7 @@ private fun collectUsedImports(root: JsNode, to: MutableSet<JsName>): Set<JsName
|
|||||||
root.accept(collector)
|
root.accept(collector)
|
||||||
|
|
||||||
// See StaticContext.getVariableForPropertyMetadata
|
// See StaticContext.getVariableForPropertyMetadata
|
||||||
|
// TODO Find a better way
|
||||||
val removedPseudoImports = mutableSetOf<JsName>()
|
val removedPseudoImports = mutableSetOf<JsName>()
|
||||||
NodeRemover(JsVars::class.java) { statement ->
|
NodeRemover(JsVars::class.java) { statement ->
|
||||||
if (statement.vars.size == 1) {
|
if (statement.vars.size == 1) {
|
||||||
@@ -56,7 +59,6 @@ private fun collectUsedImports(root: JsNode, to: MutableSet<JsName>): Set<JsName
|
|||||||
false
|
false
|
||||||
}
|
}
|
||||||
}.accept(root)
|
}.accept(root)
|
||||||
|
|
||||||
collector.pseudoImports.forEach {
|
collector.pseudoImports.forEach {
|
||||||
if (it.name !in removedPseudoImports) {
|
if (it.name !in removedPseudoImports) {
|
||||||
it.initExpression.accept(collector)
|
it.initExpression.accept(collector)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// EXPECTED_REACHABLE_NODES: 1625
|
// EXPECTED_REACHABLE_NODES: 1625
|
||||||
|
// MODULE: lib
|
||||||
// FILE: lib.kt
|
// FILE: lib.kt
|
||||||
|
|
||||||
|
|
||||||
@@ -7,8 +8,8 @@ inline fun tenUInt() = 10U
|
|||||||
|
|
||||||
inline fun tenULong() = 10UL
|
inline fun tenULong() = 10UL
|
||||||
|
|
||||||
|
// MODULE: main(lib)
|
||||||
// FILE: main.kt
|
// FILE: main.kt
|
||||||
// RECOMPILE
|
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -14,4 +14,4 @@ suspend fun bar(): Unit {
|
|||||||
println(a + b)
|
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)
|
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")
|
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
@@ -21,4 +21,4 @@ fun bar(x: Int) {
|
|||||||
println("%")
|
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
|
||||||
Reference in New Issue
Block a user