From 2474702bef60198ee72a91a5704773aba704dcdd Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Fri, 17 Dec 2021 05:25:01 +0300 Subject: [PATCH] [JS IC TEST] Add test case for private top-level inline functions --- .../kotlin/incremental/InvalidationTestGenerated.java | 5 +++++ .../invalidation/privateInlineFunction1/lib1/l1.kt | 8 ++++++++ .../invalidation/privateInlineFunction1/lib1/l1.kt.1 | 8 ++++++++ .../invalidation/privateInlineFunction1/lib1/module.info | 8 ++++++++ .../invalidation/privateInlineFunction1/lib2/l2.kt | 2 ++ .../invalidation/privateInlineFunction1/lib2/module.info | 7 +++++++ .../invalidation/privateInlineFunction1/main/m.kt | 2 ++ .../invalidation/privateInlineFunction1/main/module.info | 7 +++++++ .../invalidation/privateInlineFunction1/project.info | 7 +++++++ 9 files changed, 54 insertions(+) create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt.1 create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/l2.kt create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/m.kt create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/privateInlineFunction1/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 9492a222e31..dfb254b39cf 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 @@ -40,6 +40,11 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest { runTest("js/js.translator/testData/incremental/invalidation/fastPath2/"); } + @TestMetadata("privateInlineFunction1") + public void testPrivateInlineFunction1() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/privateInlineFunction1/"); + } + @TestMetadata("simple") public void testSimple() throws Exception { runTest("js/js.translator/testData/incremental/invalidation/simple/"); diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt new file mode 100644 index 00000000000..838fd19d461 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt @@ -0,0 +1,8 @@ + +private inline fun privateBar(z: Int, l: (Int) -> Int) = l(z - 3) + +private inline fun privateFoo(x: Int, l: (Int) -> Int): Int { + return privateBar(x * 2, l) +} + +fun foo(x: Int, y: Int) = y - privateFoo(x) { it + it } diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt.1 b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt.1 new file mode 100644 index 00000000000..2b74aeb0fb1 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/l1.kt.1 @@ -0,0 +1,8 @@ + +private inline fun privateBar(z: Int, l: (Int) -> Int) = l(z - 5) + +private inline fun privateFoo(x: Int, l: (Int) -> Int): Int { + return privateBar(x * 2, l) +} + +fun foo(x: Int, y: Int) = y - privateFoo(x) { it + it } \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/module.info b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/module.info new file mode 100644 index 00000000000..5963605a540 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib1/module.info @@ -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 diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/l2.kt b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/l2.kt new file mode 100644 index 00000000000..b2fb080ee75 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/l2.kt @@ -0,0 +1,2 @@ + +inline fun qux(x: Int, y: Int) = foo(x, y) \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/module.info b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/module.info new file mode 100644 index 00000000000..c7b30818f27 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/lib2/module.info @@ -0,0 +1,7 @@ +STEP 0: + dependencies: stdlib, lib1 + dirty: l2.kt + +STEP 1: + dependencies: stdlib, lib1 + dirty: \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/m.kt b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/m.kt new file mode 100644 index 00000000000..fc2cbe78044 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/m.kt @@ -0,0 +1,2 @@ + +fun box() = qux(4, 2) \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/module.info b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/module.info new file mode 100644 index 00000000000..53828bd4a60 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/main/module.info @@ -0,0 +1,7 @@ +STEP 0: + dependencies: stdlib, lib1, lib2 + dirty: m.kt + +STEP 1: + dependencies: stdlib, lib1, lib2 + dirty: \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/project.info b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/project.info new file mode 100644 index 00000000000..710e8567360 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/privateInlineFunction1/project.info @@ -0,0 +1,7 @@ +MODULES: lib1, lib2, main + +STEP 0: + libs: lib1, lib2, main + +STEP 1: + libs: lib1, lib2, main \ No newline at end of file