[JS IR] Fix IC invalidation process when symbols are modified
The patch fixes the cases of IC invalidation when symbols are modified: adding and removing inline, data, in, out, suspend qualifiers. For that purpose an extra hash is used. It is written in a direct dependency graph into an IC cache metadata file. For inline functions a transitive hash is used. For non-inline functions, classes, and others a symbol hash is used. The invalidation routine marks the file as dirty (with 'updated imports' state) if hash is modified. ^KT-51083 Fixed ^KT-51088 Fixed ^KT-51090 Fixed ^KT-51099 Fixed
This commit is contained in:
committed by
Space
parent
644447db84
commit
5b4e9e2966
Vendored
+4
-4
@@ -3,17 +3,17 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 2:
|
||||
dependencies: lib1, lib2
|
||||
STEP 3..4:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 5:
|
||||
dependencies: lib1, lib2
|
||||
STEP 6:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 7:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Vendored
+1
-1
@@ -10,7 +10,7 @@ STEP 1:
|
||||
modified ir: m.kt
|
||||
STEP 2:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 3:
|
||||
dependencies: lib1
|
||||
modifications:
|
||||
|
||||
Vendored
+2
-2
@@ -6,9 +6,9 @@ STEP 1:
|
||||
modifications:
|
||||
U : f1.1.kt -> f1.kt
|
||||
modified ir: f1.kt
|
||||
updated inline imports: f.kt, f2.kt, f3.kt
|
||||
updated imports: f.kt, f2.kt, f3.kt
|
||||
STEP 2:
|
||||
modifications:
|
||||
U : f1.0.kt -> f1.kt
|
||||
modified ir: f1.kt
|
||||
updated inline imports: f.kt, f2.kt, f3.kt
|
||||
updated imports: f.kt, f2.kt, f3.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..2:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
data class Demo(val x: Int) {
|
||||
}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
// TODO: After KT-51088, m.kt from main module must be dirty
|
||||
class Demo(val x: Int) {
|
||||
}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
// TODO: After KT-51088, m.kt from main module must be dirty
|
||||
data class Demo(val x: Int) {
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
class Demo(val x: Int) {
|
||||
}
|
||||
-1
@@ -1,3 +1,2 @@
|
||||
// TODO: After KT-51088, m.kt from main module must be dirty
|
||||
inline class Demo(val x: Int) {
|
||||
}
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
STEP 0:
|
||||
modifications:
|
||||
U : l1.0_simple_class.kt -> l1.kt
|
||||
U : l1.0_data_class.kt -> l1.kt
|
||||
added file: l1.kt
|
||||
STEP 1:
|
||||
modifications:
|
||||
U : l1.1_data_class.kt -> l1.kt
|
||||
U : l1.1_simple_class.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
updated exports: l1.kt
|
||||
STEP 2:
|
||||
modifications:
|
||||
U : l1.0_simple_class.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
STEP 3:
|
||||
modifications:
|
||||
U : l1.2_inline_class.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
updated exports: l1.kt
|
||||
STEP 3:
|
||||
modifications:
|
||||
U : l1.1_simple_class.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
updated exports: l1.kt
|
||||
|
||||
@@ -1,8 +1,18 @@
|
||||
fun box(stepId: Int): String {
|
||||
val d = Demo(15)
|
||||
when (stepId) {
|
||||
0, 2 -> if (Demo(15) == Demo(15)) return "Fail"
|
||||
1, 3 -> if (Demo(15) != Demo(15)) return "Fail"
|
||||
0, 2 -> {
|
||||
if (!testEquals(d, Demo(15))) return "Fail equals"
|
||||
if (testHashCode(d) != Demo(15).hashCode()) return "Fail hashCode"
|
||||
if (testToString(d) != "Demo(x=15)") return "Fail toString"
|
||||
}
|
||||
1, 3-> {
|
||||
if (testEquals(d, Demo(15))) return "Fail equals"
|
||||
if (testHashCode(d) == Demo(15).hashCode()) return "Fail hashCode"
|
||||
if (testToString(d) != "[object Object]") return "Fail toString"
|
||||
}
|
||||
else -> return "Unknown"
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
STEP 0:
|
||||
dependencies: lib1
|
||||
added file: m.kt
|
||||
added file: m.kt, testEquals.kt, testHashCode.kt, testToString.kt
|
||||
STEP 1..3:
|
||||
dependencies: lib1
|
||||
updated imports: m.kt, testEquals.kt, testHashCode.kt, testToString.kt
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
fun testEquals(lhs: Demo, rhs: Demo): Boolean {
|
||||
return lhs == rhs
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun testHashCode(d: Demo): Int {
|
||||
return d.hashCode()
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun testToString(d: Demo): String {
|
||||
return d.toString()
|
||||
}
|
||||
@@ -5,4 +5,4 @@ STEP 0:
|
||||
dirty js: lib1, main
|
||||
STEP 1..3:
|
||||
libs: lib1, main
|
||||
dirty js: lib1
|
||||
dirty js: lib1, main
|
||||
|
||||
Vendored
+7
-2
@@ -5,11 +5,16 @@ STEP 1:
|
||||
dependencies: lib1
|
||||
STEP 2:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 3:
|
||||
dependencies: lib1
|
||||
modified ir: m.kt
|
||||
STEP 4..9:
|
||||
STEP 4..7:
|
||||
dependencies: lib1
|
||||
STEP 8:
|
||||
dependencies: lib1
|
||||
updated imports: m.kt
|
||||
STEP 9:
|
||||
dependencies: lib1
|
||||
STEP 10..11:
|
||||
dependencies: lib1
|
||||
|
||||
+4
-4
@@ -9,13 +9,13 @@ STEP 1:
|
||||
STEP 2..3:
|
||||
libs: lib1, main
|
||||
dirty js: lib1, main
|
||||
STEP 4..6:
|
||||
STEP 4..7:
|
||||
libs: lib1, main
|
||||
dirty js: lib1
|
||||
STEP 7:
|
||||
STEP 8:
|
||||
libs: lib1, main
|
||||
dirty js: lib1
|
||||
STEP 8..9:
|
||||
dirty js: lib1, main
|
||||
STEP 9:
|
||||
libs: lib1, main
|
||||
dirty js: lib1
|
||||
STEP 10..11:
|
||||
|
||||
Vendored
+2
-2
@@ -17,7 +17,7 @@ STEP 3:
|
||||
modifications:
|
||||
U : l1.3.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
updated inline imports: l2.kt
|
||||
updated imports: l2.kt
|
||||
STEP 4:
|
||||
modifications:
|
||||
U : l2.1.kt -> l2.kt
|
||||
@@ -35,5 +35,5 @@ STEP 7:
|
||||
modifications:
|
||||
U : l2.0.kt -> l2.kt
|
||||
modified ir: l2.kt
|
||||
updated inline imports: l1.kt
|
||||
updated imports: l1.kt
|
||||
updated exports: l1.kt
|
||||
|
||||
Vendored
+2
-2
@@ -3,9 +3,9 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..4:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 5:
|
||||
dependencies: lib1
|
||||
STEP 6..7:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Vendored
+4
-4
@@ -8,12 +8,12 @@ STEP 1:
|
||||
modifications:
|
||||
U : A.1.kt -> A.kt
|
||||
modified ir: A.kt
|
||||
updated inline imports: B.kt, C.kt
|
||||
updated imports: B.kt, C.kt
|
||||
STEP 2:
|
||||
modifications:
|
||||
U : B.2.kt -> B.kt
|
||||
modified ir: B.kt
|
||||
updated inline imports: C.kt
|
||||
updated imports: C.kt
|
||||
STEP 3:
|
||||
modifications:
|
||||
U : A.0.kt -> A.kt
|
||||
@@ -22,9 +22,9 @@ STEP 4:
|
||||
modifications:
|
||||
U : B.0.kt -> B.kt
|
||||
modified ir: B.kt
|
||||
updated inline imports: C.kt
|
||||
updated imports: C.kt
|
||||
STEP 5:
|
||||
modifications:
|
||||
U : A.1.kt -> A.kt
|
||||
modified ir: A.kt
|
||||
updated inline imports: B.kt, C.kt
|
||||
updated imports: B.kt, C.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt, classABC.kt
|
||||
STEP 1..5:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt, classABC.kt
|
||||
updated imports: m.kt, classABC.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt, classA.kt
|
||||
STEP 1..4:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt, classA.kt
|
||||
updated imports: m.kt, classA.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,6 +3,6 @@ STEP 0:
|
||||
added file: l2.kt
|
||||
STEP 1:
|
||||
dependencies: lib1
|
||||
updated inline imports: l2.kt
|
||||
updated imports: l2.kt
|
||||
STEP 2:
|
||||
dependencies: lib1
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..2:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt, classA.kt
|
||||
STEP 1..2:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt, classA.kt
|
||||
updated imports: m.kt, classA.kt
|
||||
|
||||
Vendored
+4
-4
@@ -10,13 +10,13 @@ STEP 8:
|
||||
added file: proxy.kt
|
||||
STEP 9:
|
||||
dependencies: lib1
|
||||
updated inline imports: proxy.kt
|
||||
updated imports: proxy.kt
|
||||
STEP 10..14:
|
||||
dependencies: lib1
|
||||
modified ir: proxy.kt
|
||||
STEP 15:
|
||||
dependencies: lib1
|
||||
updated inline imports: proxy.kt
|
||||
updated imports: proxy.kt
|
||||
STEP 16:
|
||||
dependencies: lib1
|
||||
modifications:
|
||||
@@ -24,10 +24,10 @@ STEP 16:
|
||||
modified ir: proxy.kt
|
||||
STEP 17:
|
||||
dependencies: lib1
|
||||
updated inline imports: proxy.kt
|
||||
updated imports: proxy.kt
|
||||
STEP 18..22:
|
||||
dependencies: lib1
|
||||
modified ir: proxy.kt
|
||||
STEP 23:
|
||||
dependencies: lib1
|
||||
updated inline imports: proxy.kt
|
||||
updated imports: proxy.kt
|
||||
|
||||
+6
-6
@@ -3,13 +3,13 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 2..6:
|
||||
dependencies: lib1
|
||||
modified ir: m.kt
|
||||
STEP 7:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 8:
|
||||
dependencies: lib1, libProxy
|
||||
modifications:
|
||||
@@ -17,22 +17,22 @@ STEP 8:
|
||||
modified ir: m.kt
|
||||
STEP 9..13:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 14:
|
||||
dependencies: lib1, libProxy
|
||||
modified ir: m.kt
|
||||
STEP 15:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 16:
|
||||
dependencies: lib1, libProxy
|
||||
modified ir: m.kt
|
||||
STEP 17..21:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 22:
|
||||
dependencies: lib1, libProxy
|
||||
modified ir: m.kt
|
||||
STEP 23:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Vendored
+4
-1
@@ -1,5 +1,8 @@
|
||||
STEP 0:
|
||||
dependencies: lib1, lib2
|
||||
added file: m.kt
|
||||
STEP 1..4:
|
||||
STEP 1..3:
|
||||
dependencies: lib1, lib2
|
||||
updated imports: m.kt
|
||||
STEP 4:
|
||||
dependencies: lib1, lib2
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ STEP 0:
|
||||
dirty js: lib1, lib2, main
|
||||
STEP 1..3:
|
||||
libs: lib1, lib2, main
|
||||
dirty js: lib1
|
||||
dirty js: lib1, main
|
||||
STEP 4:
|
||||
libs: lib1, lib2, main
|
||||
dirty js: lib2
|
||||
|
||||
+1
-1
@@ -3,6 +3,6 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 2:
|
||||
dependencies: lib1
|
||||
|
||||
+4
-4
@@ -3,22 +3,22 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..2:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 3..4:
|
||||
dependencies: lib1
|
||||
modified ir: m.kt
|
||||
STEP 5:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 6:
|
||||
dependencies: lib1
|
||||
modified ir: m.kt
|
||||
STEP 7:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 8:
|
||||
dependencies: lib1
|
||||
modified ir: m.kt
|
||||
STEP 9:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Vendored
+2
-2
@@ -3,10 +3,10 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 2:
|
||||
dependencies: lib1
|
||||
modified ir: m.kt
|
||||
STEP 3:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..3:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
+1
-1
@@ -3,6 +3,6 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..3:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 4..6:
|
||||
dependencies: lib1
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: l3.kt
|
||||
STEP 1..2:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: l3.kt
|
||||
updated imports: l3.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..2:
|
||||
dependencies: lib1, lib2, lib3
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/lib2/module.info
Vendored
+1
-1
@@ -7,4 +7,4 @@ STEP 1:
|
||||
U : l22.1.kt -> l22.kt
|
||||
added file: l22.kt
|
||||
updated exports: l22.kt
|
||||
updated inline imports: l2.kt
|
||||
updated imports: l2.kt
|
||||
|
||||
js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/lib3/module.info
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: l3.kt
|
||||
STEP 1:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: l3.kt
|
||||
updated imports: l3.kt
|
||||
|
||||
js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/main/module.info
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1, lib2, lib3
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
-1
@@ -1,2 +1 @@
|
||||
// TODO: After KT-51083, m.kt from main module must be dirty
|
||||
inline fun foo() = 33
|
||||
|
||||
-1
@@ -1,2 +1 @@
|
||||
// TODO: After KT-51083, m.kt from main module must be dirty
|
||||
inline fun foo() = 77
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
fun foo() = 100
|
||||
+8
@@ -10,3 +10,11 @@ STEP 2:
|
||||
modifications:
|
||||
U : l1.2.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
STEP 3:
|
||||
modifications:
|
||||
U : l1.0.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
STEP 4:
|
||||
modifications:
|
||||
U : l1.4.kt -> l1.kt
|
||||
modified ir: l1.kt
|
||||
|
||||
+2
-1
@@ -1,8 +1,9 @@
|
||||
fun box(stepId: Int): String {
|
||||
when (stepId) {
|
||||
0 -> if (foo() != 42) return "Fail"
|
||||
0, 3 -> if (foo() != 42) return "Fail"
|
||||
1 -> if (foo() != 33) return "Fail"
|
||||
2 -> if (foo() != 77) return "Fail"
|
||||
4 -> if (foo() != 100) return "Fail"
|
||||
else -> return "Unknown"
|
||||
}
|
||||
return "OK"
|
||||
|
||||
+4
-1
@@ -1,5 +1,8 @@
|
||||
STEP 0:
|
||||
dependencies: lib1
|
||||
added file: m.kt
|
||||
STEP 1..2:
|
||||
STEP 1..3:
|
||||
dependencies: lib1
|
||||
updated imports: m.kt
|
||||
STEP 4:
|
||||
dependencies: lib1
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
MODULES: lib1, main
|
||||
|
||||
STEP 0:
|
||||
STEP 0..3:
|
||||
libs: lib1, main
|
||||
dirty js: lib1, main
|
||||
STEP 1..2:
|
||||
STEP 4:
|
||||
libs: lib1, main
|
||||
dirty js: lib1
|
||||
|
||||
-1
@@ -1,3 +1,2 @@
|
||||
// TODO: After KT-51090, m.kt from main module must be dirty
|
||||
suspend fun fooX() = 11
|
||||
inline fun fooY() = 22
|
||||
|
||||
+2
-4
@@ -1,8 +1,6 @@
|
||||
STEP 0:
|
||||
dependencies: lib1
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
STEP 1..2:
|
||||
dependencies: lib1
|
||||
STEP 2:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: l2.kt
|
||||
STEP 1:
|
||||
dependencies: lib1
|
||||
updated inline imports: l2.kt
|
||||
updated imports: l2.kt
|
||||
|
||||
Vendored
+1
-1
@@ -3,4 +3,4 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Vendored
+3
-3
@@ -12,7 +12,7 @@ STEP 1:
|
||||
modified ir: l2a.kt
|
||||
STEP 2:
|
||||
dependencies: lib1
|
||||
updated inline imports: l2b.kt, l2a.kt
|
||||
updated imports: l2b.kt, l2a.kt
|
||||
STEP 3:
|
||||
dependencies: lib1
|
||||
modifications:
|
||||
@@ -28,7 +28,7 @@ STEP 5:
|
||||
modified ir: l2b.kt
|
||||
STEP 6:
|
||||
dependencies: lib1
|
||||
updated inline imports: l2b.kt
|
||||
updated imports: l2b.kt
|
||||
STEP 7:
|
||||
dependencies: lib1
|
||||
modifications:
|
||||
@@ -38,4 +38,4 @@ STEP 7:
|
||||
modified ir: l2b.kt
|
||||
STEP 8:
|
||||
dependencies: lib1
|
||||
updated inline imports: l2a.kt, l2b.kt
|
||||
updated imports: l2a.kt, l2b.kt
|
||||
|
||||
Vendored
+2
-2
@@ -3,7 +3,7 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..3:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 4:
|
||||
dependencies: lib1, lib2
|
||||
STEP 5:
|
||||
@@ -11,4 +11,4 @@ STEP 5:
|
||||
removed direct depends: m.kt
|
||||
STEP 6..8:
|
||||
dependencies: lib1, lib2
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// TODO: After KT-51099, m.kt from main module must be dirty
|
||||
interface Producer<T> {
|
||||
fun produce(): T
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// TODO: After KT-51099, m.kt from main module must be dirty
|
||||
interface Producer<T> {
|
||||
fun produce(): T
|
||||
}
|
||||
|
||||
@@ -3,3 +3,4 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1..2:
|
||||
dependencies: lib1
|
||||
updated imports: m.kt
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
MODULES: lib1, main
|
||||
|
||||
STEP 0:
|
||||
STEP 0..2:
|
||||
libs: lib1, main
|
||||
dirty js: lib1, main
|
||||
STEP 1..2:
|
||||
libs: lib1, main
|
||||
dirty js: lib1
|
||||
|
||||
Reference in New Issue
Block a user