[JS IR] Add IC invalidation tests

This commit is contained in:
Alexander Korepanov
2022-02-01 22:07:55 +03:00
committed by Space
parent 210cc67041
commit 28b1f1c50f
175 changed files with 1619 additions and 1 deletions
@@ -0,0 +1 @@
inline fun <reified T> foo(x: T) = 123
@@ -0,0 +1 @@
inline fun <T> foo(x: T) = 123
@@ -0,0 +1 @@
inline fun <T: Any> foo(x: T) = 123
@@ -0,0 +1 @@
inline fun <T: Any?> foo(x: T) = 123
@@ -0,0 +1 @@
inline fun <T: Comparable<T>> foo(x: T) = 123
@@ -0,0 +1 @@
inline fun <T: CharSequence> foo(x: T) = 123
@@ -0,0 +1,8 @@
// TODO: After KT-51084, m.kt from main module must be dirty
inline fun <T> foo(x: T, y: Any = 99) : T {
val tmp = y as? T
if (tmp != null) {
return tmp
}
return x
}
@@ -0,0 +1,8 @@
// TODO: After KT-51084, m.kt from main module must be dirty
inline fun <reified T> foo(x: T, y: Any = 99) : T {
val tmp = y as? T
if (tmp != null) {
return tmp
}
return x
}
@@ -0,0 +1,120 @@
STEP 0:
dependencies: stdlib
modifications:
U : l1.kt.0.txt -> l1.kt
dirty: l1.kt
STEP 1:
dependencies: stdlib
modifications:
U : l1.kt.1.txt -> l1.kt
dirty: l1.kt
STEP 2:
dependencies: stdlib
modifications:
U : l1.kt.2.txt -> l1.kt
dirty: l1.kt
STEP 3:
dependencies: stdlib
modifications:
U : l1.kt.3.txt -> l1.kt
dirty: l1.kt
STEP 4:
dependencies: stdlib
modifications:
U : l1.kt.4.txt -> l1.kt
dirty: l1.kt
STEP 5:
dependencies: stdlib
modifications:
U : l1.kt.5.txt -> l1.kt
dirty: l1.kt
STEP 6:
dependencies: stdlib
modifications:
U : l1.kt.6.txt -> l1.kt
dirty: l1.kt
STEP 7:
dependencies: stdlib
modifications:
U : l1.kt.7.txt -> l1.kt
dirty: l1.kt
STEP 8:
dependencies: stdlib
modifications:
U : l1.kt.0.txt -> l1.kt
dirty: l1.kt
STEP 9:
dependencies: stdlib
modifications:
U : l1.kt.1.txt -> l1.kt
dirty: l1.kt
STEP 10:
dependencies: stdlib
modifications:
U : l1.kt.2.txt -> l1.kt
dirty: l1.kt
STEP 11:
dependencies: stdlib
modifications:
U : l1.kt.3.txt -> l1.kt
dirty: l1.kt
STEP 12:
dependencies: stdlib
modifications:
U : l1.kt.4.txt -> l1.kt
dirty: l1.kt
STEP 13:
dependencies: stdlib
modifications:
U : l1.kt.5.txt -> l1.kt
dirty: l1.kt
STEP 14:
dependencies: stdlib
modifications:
U : l1.kt.6.txt -> l1.kt
dirty: l1.kt
STEP 15:
dependencies: stdlib
modifications:
U : l1.kt.7.txt -> l1.kt
dirty: l1.kt
STEP 16:
dependencies: stdlib
modifications:
U : l1.kt.0.txt -> l1.kt
dirty: l1.kt
STEP 17:
dependencies: stdlib
modifications:
U : l1.kt.1.txt -> l1.kt
dirty: l1.kt
STEP 18:
dependencies: stdlib
modifications:
U : l1.kt.2.txt -> l1.kt
dirty: l1.kt
STEP 19:
dependencies: stdlib
modifications:
U : l1.kt.3.txt -> l1.kt
dirty: l1.kt
STEP 20:
dependencies: stdlib
modifications:
U : l1.kt.4.txt -> l1.kt
dirty: l1.kt
STEP 21:
dependencies: stdlib
modifications:
U : l1.kt.5.txt -> l1.kt
dirty: l1.kt
STEP 22:
dependencies: stdlib
modifications:
U : l1.kt.6.txt -> l1.kt
dirty: l1.kt
STEP 23:
dependencies: stdlib
modifications:
U : l1.kt.7.txt -> l1.kt
dirty: l1.kt
@@ -0,0 +1,74 @@
STEP 0:
dependencies: stdlib
modifications:
U : proxy.kt.0.txt -> proxy.kt
dirty: proxy.kt
STEP 1:
dependencies: stdlib
flags: FP
STEP 2:
dependencies: stdlib
flags: FP
STEP 3:
dependencies: stdlib
flags: FP
STEP 4:
dependencies: stdlib
flags: FP
STEP 5:
dependencies: stdlib
flags: FP
STEP 6:
dependencies: stdlib
flags: FP
STEP 7:
dependencies: stdlib
flags: FP
STEP 8:
dependencies: stdlib, lib1
modifications:
U : proxy.kt.1.txt -> proxy.kt
dirty: proxy.kt
STEP 9:
dependencies: stdlib, lib1
STEP 10:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 11:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 12:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 13:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 14:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 15:
dependencies: stdlib, lib1
STEP 16:
dependencies: stdlib, lib1
modifications:
U : proxy.kt.2.txt -> proxy.kt
dirty: proxy.kt
STEP 17:
dependencies: stdlib, lib1
STEP 18:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 19:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 20:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 21:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 22:
dependencies: stdlib, lib1
dirty: proxy.kt
STEP 23:
dependencies: stdlib, lib1
@@ -0,0 +1 @@
fun unused_foo_proxy(s: String) = 77
@@ -0,0 +1 @@
inline fun foo_proxy(s: String) = foo(s)
@@ -0,0 +1 @@
inline fun <T> foo_proxy(s: T) = foo(s as String)
@@ -0,0 +1,2 @@
fun box() = foo("demo")
@@ -0,0 +1,2 @@
fun box() = foo_proxy("demo")
@@ -0,0 +1,68 @@
STEP 0:
dependencies: stdlib, lib1
dirty: m.kt
STEP 1:
dependencies: stdlib, lib1
STEP 2:
dependencies: stdlib, lib1
dirty: m.kt
STEP 3:
dependencies: stdlib, lib1
dirty: m.kt
STEP 4:
dependencies: stdlib, lib1
dirty: m.kt
STEP 5:
dependencies: stdlib, lib1
dirty: m.kt
STEP 6:
dependencies: stdlib, lib1
dirty: m.kt
STEP 7:
dependencies: stdlib, lib1
STEP 8:
dependencies: stdlib, lib1, libProxy
modifications:
U : m.proxy.kt.txt -> m.kt
dirty: m.kt
STEP 9:
dependencies: stdlib, lib1, libProxy
STEP 10:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 11:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 12:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 13:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 14:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 15:
dependencies: stdlib, lib1, libProxy
STEP 16:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 17:
dependencies: stdlib, lib1, libProxy
STEP 18:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 19:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 20:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 21:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 22:
dependencies: stdlib, lib1, libProxy
dirty: m.kt
STEP 23:
dependencies: stdlib, lib1, libProxy
@@ -0,0 +1,50 @@
MODULES: lib1, main, libProxy
STEP 0:
libs: lib1, main
STEP 1:
libs: lib1, main
STEP 2:
libs: lib1, main
STEP 3:
libs: lib1, main
STEP 4:
libs: lib1, main
STEP 5:
libs: lib1, main
STEP 6:
libs: lib1, main
STEP 7:
libs: lib1, main
STEP 8:
libs: lib1, libProxy, main
STEP 9:
libs: lib1, libProxy, main
STEP 10:
libs: lib1, libProxy, main
STEP 11:
libs: lib1, libProxy, main
STEP 12:
libs: lib1, libProxy, main
STEP 13:
libs: lib1, libProxy, main
STEP 14:
libs: lib1, libProxy, main
STEP 15:
libs: lib1, libProxy, main
STEP 16:
libs: lib1, libProxy, main
STEP 17:
libs: lib1, libProxy, main
STEP 18:
libs: lib1, libProxy, main
STEP 19:
libs: lib1, libProxy, main
STEP 20:
libs: lib1, libProxy, main
STEP 21:
libs: lib1, libProxy, main
STEP 22:
libs: lib1, libProxy, main
STEP 23:
libs: lib1, libProxy, main