From 46afb46a6df82a2b7c603d3187096eb84908ca5a Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Tue, 30 Aug 2022 18:18:45 +0200 Subject: [PATCH] [JS IR] Add IC test for local inline function ^KT-50739 --- .../kotlin/incremental/InvalidationTestGenerated.java | 5 +++++ .../invalidation/localInlineFunction/lib1/l1.0.kt | 7 +++++++ .../invalidation/localInlineFunction/lib1/l1.1.kt | 7 +++++++ .../invalidation/localInlineFunction/lib1/module.info | 8 ++++++++ .../invalidation/localInlineFunction/main/m.kt | 8 ++++++++ .../invalidation/localInlineFunction/main/module.info | 5 +++++ .../invalidation/localInlineFunction/project.info | 8 ++++++++ 7 files changed, 48 insertions(+) create mode 100644 js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.0.kt create mode 100644 js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.1.kt create mode 100644 js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/localInlineFunction/main/m.kt create mode 100644 js/js.translator/testData/incremental/invalidation/localInlineFunction/main/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/localInlineFunction/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 c5738c97704..f21e4e8005d 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 @@ -180,6 +180,11 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest { runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/"); } + @TestMetadata("localInlineFunction") + public void testLocalInlineFunction() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/localInlineFunction/"); + } + @TestMetadata("mainModuleInvalidation") public void testMainModuleInvalidation() throws Exception { runTest("js/js.translator/testData/incremental/invalidation/mainModuleInvalidation/"); diff --git a/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.0.kt b/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.0.kt new file mode 100644 index 00000000000..d31b11bbf9a --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.0.kt @@ -0,0 +1,7 @@ +fun foo(): String { + inline fun localFoo(): String { + return "OK-0" + } + + return localFoo() +} diff --git a/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.1.kt b/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.1.kt new file mode 100644 index 00000000000..c61319bf9f0 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/l1.1.kt @@ -0,0 +1,7 @@ +fun foo(): String { + inline fun localFoo(): String { + return "OK-1" + } + + return localFoo() +} diff --git a/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/module.info b/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/module.info new file mode 100644 index 00000000000..0c8ddc97230 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/localInlineFunction/lib1/module.info @@ -0,0 +1,8 @@ +STEP 0: + modifications: + U : l1.0.kt -> l1.kt + added file: l1.kt +STEP 1: + modifications: + U : l1.1.kt -> l1.kt + modified ir: l1.kt diff --git a/js/js.translator/testData/incremental/invalidation/localInlineFunction/main/m.kt b/js/js.translator/testData/incremental/invalidation/localInlineFunction/main/m.kt new file mode 100644 index 00000000000..468a5417f44 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/localInlineFunction/main/m.kt @@ -0,0 +1,8 @@ +fun box(stepId: Int): String { + when (stepId) { + 0 -> if (foo() != "OK-0") return "Fail" + 1 -> if (foo() != "OK-1") return "Fail" + else -> return "Unknown" + } + return "OK" +} diff --git a/js/js.translator/testData/incremental/invalidation/localInlineFunction/main/module.info b/js/js.translator/testData/incremental/invalidation/localInlineFunction/main/module.info new file mode 100644 index 00000000000..5d087aa0643 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/localInlineFunction/main/module.info @@ -0,0 +1,5 @@ +STEP 0: + dependencies: lib1 + added file: m.kt +STEP 1: + dependencies: lib1 diff --git a/js/js.translator/testData/incremental/invalidation/localInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/localInlineFunction/project.info new file mode 100644 index 00000000000..425cf7cc77f --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/localInlineFunction/project.info @@ -0,0 +1,8 @@ +MODULES: lib1, main + +STEP 0: + libs: lib1, main + dirty js: lib1, main +STEP 1: + libs: lib1, main + dirty js: lib1