[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
@@ -30,6 +30,21 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/incremental/invalidation"), Pattern.compile("^([^_](.+))$"), null, TargetBackend.JS_IR, false);
}
@TestMetadata("class")
public void testClass() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/class/");
}
@TestMetadata("classFunctionsAndFields")
public void testClassFunctionsAndFields() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/");
}
@TestMetadata("constVals")
public void testConstVals() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/constVals/");
}
@TestMetadata("fastPath1")
public void testFastPath1() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/fastPath1/");
@@ -40,6 +55,51 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest {
runTest("js/js.translator/testData/incremental/invalidation/fastPath2/");
}
@TestMetadata("functionDefaultParams")
public void testFunctionDefaultParams() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/functionDefaultParams/");
}
@TestMetadata("functionSignature")
public void testFunctionSignature() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/functionSignature/");
}
@TestMetadata("genericFunctions")
public void testGenericFunctions() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/genericFunctions/");
}
@TestMetadata("genericInlineFunctions")
public void testGenericInlineFunctions() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/genericInlineFunctions/");
}
@TestMetadata("inlineBecomeNonInline")
public void testInlineBecomeNonInline() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/inlineBecomeNonInline/");
}
@TestMetadata("inlineFunctionAsParam")
public void testInlineFunctionAsParam() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/inlineFunctionAsParam/");
}
@TestMetadata("inlineFunctionDefaultParams")
public void testInlineFunctionDefaultParams() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/inlineFunctionDefaultParams/");
}
@TestMetadata("jsCode")
public void testJsCode() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsCode/");
}
@TestMetadata("jsExport")
public void testJsExport() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsExport/");
}
@TestMetadata("moveFilesBetweenModules")
public void testMoveFilesBetweenModules() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/moveFilesBetweenModules/");
@@ -50,11 +110,31 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest {
runTest("js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/");
}
@TestMetadata("nonInlineBecomeInline")
public void testNonInlineBecomeInline() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/nonInlineBecomeInline/");
}
@TestMetadata("privateInlineFunction1")
public void testPrivateInlineFunction1() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/privateInlineFunction1/");
}
@TestMetadata("removeFile")
public void testRemoveFile() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/removeFile/");
}
@TestMetadata("removeModule")
public void testRemoveModule() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/removeModule/");
}
@TestMetadata("removeUnusedFile")
public void testRemoveUnusedFile() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/removeUnusedFile/");
}
@TestMetadata("renameFile")
public void testRenameFile() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/renameFile/");
@@ -65,8 +145,18 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest {
runTest("js/js.translator/testData/incremental/invalidation/simple/");
}
@TestMetadata("suspendFunctions")
public void testSuspendFunctions() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/suspendFunctions/");
}
@TestMetadata("transitiveInlineFunction")
public void testTransitiveInlineFunction() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/");
}
@TestMetadata("variance")
public void testVariance() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/variance/");
}
}
+2 -1
View File
@@ -1 +1,2 @@
/node_modules/
/node_modules/
/incrementalOut/
@@ -0,0 +1,3 @@
// TODO: After KT-51088, m.kt from main module must be dirty
class Demo(val x: Int) {
}
@@ -0,0 +1,3 @@
// TODO: After KT-51088, m.kt from main module must be dirty
data class Demo(val x: Int) {
}
@@ -0,0 +1,3 @@
// TODO: After KT-51088, m.kt from main module must be dirty
inline class Demo(val x: Int) {
}
@@ -0,0 +1,20 @@
STEP 0:
dependencies: stdlib
modifications:
U : l1.kt.0_simple_class.txt -> l1.kt
dirty: l1.kt
STEP 1:
dependencies: stdlib
modifications:
U : l1.kt.1_data_class.txt -> l1.kt
dirty: l1.kt
STEP 2:
dependencies: stdlib
modifications:
U : l1.kt.0_simple_class.txt -> l1.kt
dirty: l1.kt
STEP 3:
dependencies: stdlib
modifications:
U : l1.kt.2_inline_class.txt -> l1.kt
dirty: l1.kt
@@ -0,0 +1,2 @@
fun box() = Demo(100500) == Demo(15)
@@ -0,0 +1,9 @@
STEP 0:
dependencies: stdlib, lib1
dirty: m.kt
STEP 1:
dependencies: stdlib, lib1
STEP 2:
dependencies: stdlib, lib1
STEP 3:
dependencies: stdlib, lib1
@@ -0,0 +1,10 @@
MODULES: lib1, main
STEP 0:
libs: lib1, main
STEP 1:
libs: lib1, main
STEP 2:
libs: lib1, main
STEP 3:
libs: lib1, main
@@ -0,0 +1,8 @@
class Demo(val x: String) {
fun foo() = "foo $x"
inline fun foo_inline() = "inline foo $x"
inline fun unused_inline() = "unused"
val field1 = "field1"
}
@@ -0,0 +1,13 @@
interface DemoInterface {
fun foo(): Any
}
class Demo(val x: String, val y: String = "default") : DemoInterface {
override fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused update"
val field1 = 77
val field2 = "field2"
}
@@ -0,0 +1,13 @@
interface DemoInterface {
fun foo(): Any
}
class Demo(val x: String, val y: String = "default") : DemoInterface {
override fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused update"
val field1 : Int? = null
val field2 = "field2"
}
@@ -0,0 +1,8 @@
class Demo(val x: String) {
fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x"
inline fun unused_inline() = "unused"
val field1 = "field1"
}
@@ -0,0 +1,8 @@
class Demo(val x: String) {
fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused"
val field1 = "field1"
}
@@ -0,0 +1,8 @@
class Demo(val x: String, val y: String = "default") {
fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused"
val field1 = "field1"
}
@@ -0,0 +1,9 @@
class Demo(val x: String, val y: String = "default") {
fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused"
val field1 = "field1"
val field2 = "field2"
}
@@ -0,0 +1,9 @@
class Demo(val x: String, val y: String = "default") {
fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused"
val field1 = "field1 update"
val field2 = "field2"
}
@@ -0,0 +1,9 @@
class Demo(val x: String, val y: String = "default") {
fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused update"
val field1 = "field1 update"
val field2 = "field2"
}
@@ -0,0 +1,13 @@
interface DemoInterface {
fun foo(): String
}
class Demo(val x: String, val y: String = "default") {
fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused update"
val field1 = "field1 update"
val field2 = "field2"
}
@@ -0,0 +1,13 @@
interface DemoInterface {
fun foo(): String
}
class Demo(val x: String, val y: String = "default") : DemoInterface {
override fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused update"
val field1 = "field1 update"
val field2 = "field2"
}
@@ -0,0 +1,13 @@
interface DemoInterface {
fun foo(): Any
}
class Demo(val x: String, val y: String = "default") : DemoInterface {
override fun foo() = "foo $x update"
inline fun foo_inline() = "inline foo $x update"
inline fun unused_inline() = "unused update"
val field1 = "field1 update"
val field2 = "field2"
}
@@ -0,0 +1,60 @@
STEP 0:
dependencies: stdlib
modifications:
U : l1.kt.0_init.txt -> l1.kt
dirty: l1.kt
STEP 1:
dependencies: stdlib
modifications:
U : l1.kt.1_update_fun.txt -> l1.kt
dirty: l1.kt
STEP 2:
dependencies: stdlib
modifications:
U : l1.kt.2_update_inline_fun.txt -> l1.kt
dirty: l1.kt
STEP 3:
dependencies: stdlib
modifications:
U : l1.kt.3_add_param.txt -> l1.kt
dirty: l1.kt
STEP 4:
dependencies: stdlib
modifications:
U : l1.kt.4_add_field.txt -> l1.kt
dirty: l1.kt
STEP 5:
dependencies: stdlib
modifications:
U : l1.kt.5_update_field.txt -> l1.kt
dirty: l1.kt
STEP 6:
dependencies: stdlib
modifications:
U : l1.kt.6_update_unused_inline.txt -> l1.kt
dirty: l1.kt
STEP 7:
dependencies: stdlib
modifications:
U : l1.kt.7_add_unused_interface.txt -> l1.kt
dirty: l1.kt
STEP 8:
dependencies: stdlib
modifications:
U : l1.kt.8_use_interface.txt -> l1.kt
dirty: l1.kt
STEP 9:
dependencies: stdlib
modifications:
U : l1.kt.9_update_interface.txt -> l1.kt
dirty: l1.kt
STEP 10:
dependencies: stdlib
modifications:
U : l1.kt.10_update_field_type.txt -> l1.kt
dirty: l1.kt
STEP 11:
dependencies: stdlib
modifications:
U : l1.kt.11_update_field_type.txt -> l1.kt
dirty: l1.kt
@@ -0,0 +1 @@
fun box() = Demo("test1").foo() + Demo("test2").foo_inline() + "${Demo("test3").field1}"
@@ -0,0 +1,29 @@
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
STEP 5:
dependencies: stdlib, lib1
STEP 6:
dependencies: stdlib, lib1
STEP 7:
dependencies: stdlib, lib1
STEP 8:
dependencies: stdlib, lib1
STEP 9:
dependencies: stdlib, lib1
STEP 10:
dependencies: stdlib, lib1
dirty: m.kt
STEP 11:
dependencies: stdlib, lib1
dirty: m.kt
@@ -0,0 +1,26 @@
MODULES: lib1, main
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, main
STEP 9:
libs: lib1, main
STEP 10:
libs: lib1, main
STEP 11:
libs: lib1, main
@@ -0,0 +1 @@
const val FOO = "FOO"
@@ -0,0 +1 @@
const val FOO = "BAR"
@@ -0,0 +1,8 @@
STEP 0:
dependencies: stdlib
dirty: l1.kt
STEP 1:
dependencies: stdlib
modifications:
U : l1.kt.1 -> l1.kt
dirty: l1.kt
@@ -0,0 +1,3 @@
fun qux() = FOO
inline fun bar() = FOO
@@ -0,0 +1,6 @@
STEP 0:
dependencies: stdlib, lib1
dirty: l2.kt
STEP 1:
dependencies: stdlib, lib1
@@ -0,0 +1,2 @@
fun box() = qux() == bar()
@@ -0,0 +1,6 @@
STEP 0:
dependencies: stdlib, lib1, lib2
dirty: m.kt
STEP 1:
dependencies: stdlib, lib1, lib2
@@ -0,0 +1,7 @@
MODULES: lib1, lib2, main
STEP 0:
libs: lib1, lib2, main
STEP 1:
libs: lib1, lib2, main
@@ -0,0 +1 @@
fun foo(x: Int = 77) = 42 + x
@@ -0,0 +1 @@
fun foo(x: Int = 88) = 42 + x
@@ -0,0 +1 @@
fun foo(x: Int = 88, y: Int = 11) = 42 + x + y
@@ -0,0 +1 @@
fun foo(x: Int = 88, y: Int = 22) = 42 + x + y
@@ -0,0 +1,20 @@
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
@@ -0,0 +1,2 @@
fun box() = foo()
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
MODULES: lib1, main
STEP 0:
libs: lib1, main
STEP 1:
libs: lib1, main
STEP 2:
libs: lib1, main
STEP 3:
libs: lib1, main
@@ -0,0 +1 @@
fun foo(x: Any = 99): Any = x
@@ -0,0 +1 @@
fun foo(x: Any? = 1L): Any = if (x != null) x else "null"
@@ -0,0 +1 @@
fun foo(x: Int = 77): Int = 42 + x
@@ -0,0 +1 @@
fun foo(x: Int = 98, y: String = "s"): Int = 42 + x + y.length
@@ -0,0 +1 @@
fun foo(x: Int = 91, y: String? = null): Int = 42 + x + if (y != null) y.length else 0
@@ -0,0 +1 @@
fun foo(vararg x: Int): Int = 42
@@ -0,0 +1 @@
fun foo(): Any = "string"
@@ -0,0 +1 @@
fun foo(): Any? = "string"
@@ -0,0 +1 @@
fun foo(): Boolean = false
@@ -0,0 +1 @@
fun foo(): Double = 3.14
@@ -0,0 +1 @@
fun foo(): Int = 42
@@ -0,0 +1 @@
fun foo(): String = "string"
@@ -0,0 +1 @@
fun foo(): String? = null
@@ -0,0 +1 @@
fun foo() : Unit {}
@@ -0,0 +1,85 @@
STEP 0:
dependencies: stdlib
modifications:
U : l1.out.int.kt.txt -> l1.kt
dirty: l1.kt
STEP 1:
dependencies: stdlib
modifications:
U : l1.out.bool.kt.txt -> l1.kt
dirty: l1.kt
STEP 2:
dependencies: stdlib
modifications:
U : l1.out.double.kt.txt -> l1.kt
dirty: l1.kt
STEP 3:
dependencies: stdlib
modifications:
U : l1.out.string.kt.txt -> l1.kt
dirty: l1.kt
STEP 4:
dependencies: stdlib
modifications:
U : l1.out.string_or_null.kt.txt -> l1.kt
dirty: l1.kt
STEP 5:
dependencies: stdlib
modifications:
U : l1.out.any.kt.txt -> l1.kt
dirty: l1.kt
STEP 6:
dependencies: stdlib
modifications:
U : l1.out.any_or_null.kt.txt -> l1.kt
dirty: l1.kt
STEP 7:
dependencies: stdlib
modifications:
U : l1.out.unit.kt.txt -> l1.kt
dirty: l1.kt
STEP 8:
dependencies: stdlib
modifications:
U : l1.out.int.kt.txt -> l1.kt
dirty: l1.kt
STEP 9:
dependencies: stdlib
modifications:
U : l1.in.int.out.int.kt.txt -> l1.kt
dirty: l1.kt
STEP 10:
dependencies: stdlib
modifications:
U : l1.in.int.string.out.int.kt.txt -> l1.kt
dirty: l1.kt
STEP 11:
dependencies: stdlib
modifications:
U : l1.in.int.string_or_null.out.int.kt.txt -> l1.kt
dirty: l1.kt
STEP 12:
dependencies: stdlib
modifications:
U : l1.out.any.kt.txt -> l1.kt
dirty: l1.kt
STEP 13:
dependencies: stdlib
modifications:
U : l1.in.any.out.any.kt.txt -> l1.kt
dirty: l1.kt
STEP 14:
dependencies: stdlib
modifications:
U : l1.in.any_or_null.out.any.kt.txt -> l1.kt
dirty: l1.kt
STEP 15:
dependencies: stdlib
modifications:
U : l1.out.int.kt.txt -> l1.kt
dirty: l1.kt
STEP 16:
dependencies: stdlib
modifications:
U : l1.in.vararg_int.out.int.kt.txt -> l1.kt
dirty: l1.kt
@@ -0,0 +1,2 @@
fun box() = foo()
@@ -0,0 +1,51 @@
STEP 0:
dependencies: stdlib, lib1
dirty: m.kt
STEP 1:
dependencies: stdlib, lib1
dirty: m.kt
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
dirty: m.kt
STEP 8:
dependencies: stdlib, lib1
dirty: m.kt
STEP 9:
dependencies: stdlib, lib1
dirty: m.kt
STEP 10:
dependencies: stdlib, lib1
dirty: m.kt
STEP 11:
dependencies: stdlib, lib1
dirty: m.kt
STEP 12:
dependencies: stdlib, lib1
dirty: m.kt
STEP 13:
dependencies: stdlib, lib1
dirty: m.kt
STEP 14:
dependencies: stdlib, lib1
dirty: m.kt
STEP 15:
dependencies: stdlib, lib1
dirty: m.kt
STEP 16:
dependencies: stdlib, lib1
dirty: m.kt
@@ -0,0 +1,36 @@
MODULES: lib1, main
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, main
STEP 9:
libs: lib1, main
STEP 10:
libs: lib1, main
STEP 11:
libs: lib1, main
STEP 12:
libs: lib1, main
STEP 13:
libs: lib1, main
STEP 14:
libs: lib1, main
STEP 15:
libs: lib1, main
STEP 16:
libs: lib1, main
@@ -0,0 +1 @@
fun <T> foo(x: T) = x
@@ -0,0 +1 @@
fun <T: Any> foo(x: T) = x
@@ -0,0 +1 @@
fun <T: Any?> foo(x: T) = x
@@ -0,0 +1 @@
fun <T: Comparable<T>> foo(x: T) = x
@@ -0,0 +1 @@
fun <T: CharSequence> foo(x: T) = x
@@ -0,0 +1,25 @@
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
@@ -0,0 +1,2 @@
fun box() = foo("demo")
@@ -0,0 +1,15 @@
STEP 0:
dependencies: stdlib, lib1
dirty: m.kt
STEP 1:
dependencies: stdlib, lib1
dirty: m.kt
STEP 2:
dependencies: stdlib, lib1
dirty: m.kt
STEP 3:
dependencies: stdlib, lib1
dirty: m.kt
STEP 4:
dependencies: stdlib, lib1
dirty: m.kt
@@ -0,0 +1,12 @@
MODULES: lib1, main
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
@@ -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
@@ -0,0 +1 @@
inline fun foo() = 42
@@ -0,0 +1 @@
fun foo() = 42
@@ -0,0 +1 @@
fun foo() = 77
@@ -0,0 +1,15 @@
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
@@ -0,0 +1,2 @@
fun box() = foo()
@@ -0,0 +1,8 @@
STEP 0:
dependencies: stdlib, lib1
dirty: m.kt
STEP 1:
dependencies: stdlib, lib1
dirty: m.kt
STEP 2:
dependencies: stdlib, lib1
@@ -0,0 +1,8 @@
MODULES: lib1, main
STEP 0:
libs: lib1, main
STEP 1:
libs: lib1, main
STEP 2:
libs: lib1, main
@@ -0,0 +1,3 @@
inline fun foo1() = "foo1"
inline fun foo2() = "foo2"
inline fun foo3() = "foo3"
@@ -0,0 +1,3 @@
inline fun foo1() = "foo1 update"
inline fun foo2() = "foo2"
inline fun foo3() = "foo3"
@@ -0,0 +1,3 @@
inline fun foo1() = "foo1 update"
inline fun foo2() = "foo2 update"
inline fun foo3() = "foo3"
@@ -0,0 +1,3 @@
inline fun foo1() = 77
inline fun foo2() = "foo2 update"
inline fun foo3() = "foo3"
@@ -0,0 +1,3 @@
inline fun foo1() = 77
inline fun foo2() = 88
inline fun foo3() = "foo3"
@@ -0,0 +1,3 @@
inline fun foo1() = 77
inline fun foo2() = 88
inline fun foo3() = "foo3 update"
@@ -0,0 +1,4 @@
// TODO: Uncomment default param after KT-51081
inline fun foo1(/** x: Int = 123 */) = 77
inline fun foo2() = 88
inline fun foo3() = "foo3 update"
@@ -0,0 +1,35 @@
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

Some files were not shown because too many files have changed in this diff Show More