From ea7ce55082353fe4f37d69ec89d56f64d7413660 Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Fri, 9 Sep 2022 11:57:05 +0200 Subject: [PATCH] [JS IR] Add a test with an object in inline function for JS IC --- .../kotlin/incremental/InvalidationTestGenerated.java | 5 +++++ .../invalidation/inlineFunctionWithObject/lib1/l1.kt | 3 +++ .../inlineFunctionWithObject/lib1/module.info | 3 +++ .../invalidation/inlineFunctionWithObject/lib2/l2.0.kt | 7 +++++++ .../invalidation/inlineFunctionWithObject/lib2/l2.1.kt | 7 +++++++ .../inlineFunctionWithObject/lib2/module.info | 10 ++++++++++ .../invalidation/inlineFunctionWithObject/main/m.kt | 6 ++++++ .../inlineFunctionWithObject/main/module.info | 6 ++++++ .../invalidation/inlineFunctionWithObject/project.info | 8 ++++++++ 9 files changed, 55 insertions(+) create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/l1.kt create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.0.kt create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.1.kt create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/m.kt create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/InvalidationTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/InvalidationTestGenerated.java index f21e4e8005d..28edf1d2159 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/InvalidationTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/InvalidationTestGenerated.java @@ -165,6 +165,11 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest { runTest("js/js.translator/testData/incremental/invalidation/inlineFunctionDefaultParams/"); } + @TestMetadata("inlineFunctionWithObject") + public void testInlineFunctionWithObject() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/"); + } + @TestMetadata("jsCode") public void testJsCode() throws Exception { runTest("js/js.translator/testData/incremental/invalidation/jsCode/"); diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/l1.kt b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/l1.kt new file mode 100644 index 00000000000..31731e0b25c --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/l1.kt @@ -0,0 +1,3 @@ +interface DemoInterface { + fun doAnything(): Int +} diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/module.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/module.info new file mode 100644 index 00000000000..bfbe4ca58d0 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib1/module.info @@ -0,0 +1,3 @@ +STEP 0: + added file: l1.kt +STEP 1: diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.0.kt b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.0.kt new file mode 100644 index 00000000000..276b2d73267 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.0.kt @@ -0,0 +1,7 @@ +inline fun foo(): DemoInterface { + return object : DemoInterface { + override fun doAnything(): Int { + return 0 + } + } +} diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.1.kt b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.1.kt new file mode 100644 index 00000000000..1a87ff09b87 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/l2.1.kt @@ -0,0 +1,7 @@ +inline fun foo(): DemoInterface { + return object : DemoInterface { + override fun doAnything(): Int { + return 1 + } + } +} diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/module.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/module.info new file mode 100644 index 00000000000..706bdcef273 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/lib2/module.info @@ -0,0 +1,10 @@ +STEP 0: + dependencies: lib1 + modifications: + U : l2.0.kt -> l2.kt + added file: l2.kt +STEP 1: + dependencies: lib1 + modifications: + U : l2.1.kt -> l2.kt + modified ir: l2.kt diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/m.kt b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/m.kt new file mode 100644 index 00000000000..5c277d34d6c --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/m.kt @@ -0,0 +1,6 @@ +fun box(stepId: Int): String { + if (foo().doAnything() != stepId) { + return "Fail" + } + return "OK" +} diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/module.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/module.info new file mode 100644 index 00000000000..a7fcdfeed8d --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/main/module.info @@ -0,0 +1,6 @@ +STEP 0: + dependencies: lib1, lib2 + added file: m.kt +STEP 1: + dependencies: lib1, lib2 + updated imports: m.kt diff --git a/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info new file mode 100644 index 00000000000..aeddb99e1aa --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/inlineFunctionWithObject/project.info @@ -0,0 +1,8 @@ +MODULES: lib1, lib2, main + +STEP 0: + libs: lib1, lib2, main + dirty js: lib1, lib2, main +STEP 1: + libs: lib1, lib2, main + dirty js: lib2, main