From e47715f52b9ba28efd211a1d11cc92bd03e08a25 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Tue, 16 Mar 2021 02:31:25 +0100 Subject: [PATCH] Minor. Add tests with returning inline class from SAM adapter --- .../FirBlackBoxCodegenTestGenerated.java | 18 ++++++++++++++ .../funInterface/javaSamReturnResult.kt | 24 +++++++++++++++++++ .../inlineClasses/funInterface/returnIC.kt | 19 +++++++++++++++ .../funInterface/returnResult.kt | 19 +++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 18 ++++++++++++++ .../IrBlackBoxCodegenTestGenerated.java | 18 ++++++++++++++ .../LightAnalysisModeTestGenerated.java | 15 ++++++++++++ .../IrJsCodegenBoxES6TestGenerated.java | 10 ++++++++ .../IrJsCodegenBoxTestGenerated.java | 10 ++++++++ .../semantics/JsCodegenBoxTestGenerated.java | 10 ++++++++ .../IrCodegenBoxWasmTestGenerated.java | 10 ++++++++ 11 files changed, 171 insertions(+) create mode 100644 compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt create mode 100644 compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt create mode 100644 compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index 9d72ca2dd92..68f7a6846f5 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -18690,6 +18690,24 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT public void testJavaSam() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSam.kt"); } + + @Test + @TestMetadata("javaSamReturnResult.kt") + public void testJavaSamReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt"); + } + + @Test + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } + + @Test + @TestMetadata("returnResult.kt") + public void testReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } } @Nested diff --git a/compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt b/compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt new file mode 100644 index 00000000000..39abed86923 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt @@ -0,0 +1,24 @@ +// TARGET_BACKEND: JVM +// WITH_RUNTIME +// FULL_RUNTIME + +// FILE: ResultHandler.java + +import kotlin.Result; + +@FunctionalInterface +public interface ResultHandler { + Result onResult(); +} + +// FILE: test.kt + +@Suppress("RESULT_CLASS_IN_RETURN_TYPE") +fun doSmth(resultHandler: ResultHandler): Result { + return resultHandler.onResult() +} + +fun box(): String { + val res = doSmth { Result.success(true) } + return if (res.isSuccess) "OK" else "FAIL" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt b/compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt new file mode 100644 index 00000000000..d213d72bedb --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt @@ -0,0 +1,19 @@ +// WITH_RUNTIME +// KJS_WITH_FULL_RUNTIME +// IGNORE_BACKEND: WASM +// IGNORE_BACKEND: JVM + +inline class Result(val isSuccess: Boolean) + +fun interface ResultHandler { + fun onResult(): Result +} + +fun doSmth(resultHandler: ResultHandler): Result { + return resultHandler.onResult() +} + +fun box(): String { + var res = doSmth { Result(true) } + return if (res.isSuccess) "OK" else "FAIL" +} diff --git a/compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt b/compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt new file mode 100644 index 00000000000..40e76c0f199 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt @@ -0,0 +1,19 @@ +// WITH_RUNTIME +// KJS_WITH_FULL_RUNTIME +// IGNORE_BACKEND: JVM +// IGNORE_BACKEND: WASM + +fun interface ResultHandler { + @Suppress("RESULT_CLASS_IN_RETURN_TYPE") + fun onResult(): Result +} + +@Suppress("RESULT_CLASS_IN_RETURN_TYPE") +fun doSmth(resultHandler: ResultHandler): Result { + return resultHandler.onResult() +} + +fun box(): String { + var res = doSmth { Result.success(true) } + return if (res.isSuccess) "OK" else "FAIL 1" +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index bc6581273e3..befbae5646a 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -18690,6 +18690,24 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { public void testJavaSam() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSam.kt"); } + + @Test + @TestMetadata("javaSamReturnResult.kt") + public void testJavaSamReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt"); + } + + @Test + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } + + @Test + @TestMetadata("returnResult.kt") + public void testReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } } @Nested diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 5414593c1e5..0b782385c59 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -18690,6 +18690,24 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes public void testJavaSam() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSam.kt"); } + + @Test + @TestMetadata("javaSamReturnResult.kt") + public void testJavaSamReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt"); + } + + @Test + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } + + @Test + @TestMetadata("returnResult.kt") + public void testReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } } @Nested diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 5565e1cb62d..b97b42275f2 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -15543,6 +15543,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/funInterface/argumentResult.kt"); } + @TestMetadata("returnResult.kt") + public void ignoreReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } + private void runTest(String testDataFilePath) throws Exception { KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); } @@ -15560,6 +15565,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes public void testJavaSam() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSam.kt"); } + + @TestMetadata("javaSamReturnResult.kt") + public void testJavaSamReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSamReturnResult.kt"); + } + + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") 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 b112b2632b2..4672796171d 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 @@ -13703,6 +13703,16 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes public void testArgumentResult() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/argumentResult.kt"); } + + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } + + @TestMetadata("returnResult.kt") + public void testReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") 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 aa5bf66bb6a..35b60ca3cdf 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 @@ -13160,6 +13160,16 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { public void testArgumentResult() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/argumentResult.kt"); } + + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } + + @TestMetadata("returnResult.kt") + public void testReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") 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 98a81ca5fdd..5aa8f1fbb88 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 @@ -13225,6 +13225,16 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { public void testArgumentResult() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/argumentResult.kt"); } + + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } + + @TestMetadata("returnResult.kt") + public void testReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") 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 57c5749c722..9f610bc7e35 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 @@ -7406,6 +7406,16 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest public void testArgumentResult() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/argumentResult.kt"); } + + @TestMetadata("returnIC.kt") + public void testReturnIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnIC.kt"); + } + + @TestMetadata("returnResult.kt") + public void testReturnResult() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/returnResult.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling")