From 876a0d9b7bfca48ce07fcdab6e059e4b68a8022c Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 7 Oct 2021 11:47:41 +0300 Subject: [PATCH] [IR] Add test about default arguments in expect declaration for HMMP KT-45542 --- .../multiModule/defaultArgument.kt | 51 +++++++++++++++++++ .../IrJsCodegenBoxES6TestGenerated.java | 5 ++ .../IrJsCodegenBoxTestGenerated.java | 5 ++ .../semantics/JsCodegenBoxTestGenerated.java | 5 ++ .../IrCodegenBoxWasmTestGenerated.java | 5 ++ 5 files changed, 71 insertions(+) create mode 100644 compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt diff --git a/compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt b/compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt new file mode 100644 index 00000000000..17e22b28d35 --- /dev/null +++ b/compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt @@ -0,0 +1,51 @@ +// !LANGUAGE: +MultiPlatformProjects +// KJS_WITH_FULL_RUNTIME +// EXPECT_ACTUAL_LINKER +// IGNORE_BACKEND: WASM +// IGNORE_BACKEND: JS +// DONT_TARGET_EXACT_BACKEND: JVM +// DONT_TARGET_EXACT_BACKEND: JVM_IR +// KT-45542 + +// MODULE: E +// FILE: e.kt +@file:Suppress("NO_ACTUAL_FOR_EXPECT") + +expect class Test() { + fun size(): Int + fun lastIndex(start: Int, end: Int = size()) + + fun result(): String +} + +// MODULE: A(E) +// FILE: a.kt +@file:Suppress("ACTUAL_WITHOUT_EXPECT") + +actual class Test { + + var r = "" + + actual fun size(): Int = 3 + actual fun lastIndex(start: Int, end: Int) { + r = "OK" + } + + actual fun result(): String = r +} + +// MODULE: U(E) +// FILE: u.kt + +fun foo(): String { + val t = Test() + t.lastIndex(0) + return t.result() +} + +// MODULE: main(U, A) +// FILE: m.kt + +fun box(): String { + return foo() +} \ No newline at end of file diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 73e1808d810..7c88760b884 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -18035,6 +18035,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/multiplatform/multiModule"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); } + @TestMetadata("defaultArgument.kt") + public void testDefaultArgument() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt"); + } + @TestMetadata("expectActualLink.kt") public void testExpectActualLink() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/multiModule/expectActualLink.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 9d3344b0fba..6972c87d501 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -17441,6 +17441,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/multiplatform/multiModule"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } + @TestMetadata("defaultArgument.kt") + public void testDefaultArgument() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt"); + } + @TestMetadata("expectActualLink.kt") public void testExpectActualLink() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/multiModule/expectActualLink.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 0aa57e0ee29..7704bfc75af 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -17471,6 +17471,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/multiplatform/multiModule"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS, true); } + @TestMetadata("defaultArgument.kt") + public void testDefaultArgument() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt"); + } + @TestMetadata("expectActualLink.kt") public void testExpectActualLink() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/multiModule/expectActualLink.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index a23cf027bde..5c017fee91c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -14220,6 +14220,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/multiplatform/multiModule"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } + @TestMetadata("defaultArgument.kt") + public void testDefaultArgument() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/multiModule/defaultArgument.kt"); + } + @TestMetadata("expectActualLink.kt") public void testExpectActualLink() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/multiModule/expectActualLink.kt");