From 6ba65065eef55808fc011cfd495ea8aafe7cc326 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Thu, 14 Oct 2021 08:49:39 +0300 Subject: [PATCH] JVM add tests for KT-48544 & KT-49226 --- .../FirBlackBoxCodegenTestGenerated.java | 12 +++++++ .../adaptedReferences/adaptedArrayOf.kt | 18 ++++++++++ compiler/testData/codegen/box/sam/kt49226.kt | 33 +++++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 12 +++++++ .../IrBlackBoxCodegenTestGenerated.java | 12 +++++++ .../LightAnalysisModeTestGenerated.java | 10 ++++++ .../IrJsCodegenBoxES6TestGenerated.java | 5 +++ .../IrJsCodegenBoxTestGenerated.java | 5 +++ .../semantics/JsCodegenBoxTestGenerated.java | 5 +++ .../IrCodegenBoxWasmTestGenerated.java | 5 +++ 10 files changed, 117 insertions(+) create mode 100644 compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt create mode 100644 compiler/testData/codegen/box/sam/kt49226.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 823d0552b82..b6d59a959b5 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 @@ -2942,6 +2942,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT @TestMetadata("compiler/testData/codegen/box/callableReference/adaptedReferences") @TestDataPath("$PROJECT_ROOT") public class AdaptedReferences { + @Test + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @Test @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { @@ -40252,6 +40258,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/sam/kt4753_2.kt"); } + @Test + @TestMetadata("kt49226.kt") + public void testKt49226() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt49226.kt"); + } + @Test @TestMetadata("nonInlinedSamWrapper.kt") public void testNonInlinedSamWrapper() throws Exception { diff --git a/compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt b/compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt new file mode 100644 index 00000000000..af96fb000db --- /dev/null +++ b/compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt @@ -0,0 +1,18 @@ +// IGNORE_BACKEND_FIR: JVM_IR +// java.lang.UnsupportedOperationException: This function has a reified type parameter and thus can only be inlined at compilation time, +// not called directly. +// at kotlin.jvm.internal.Intrinsics.throwUndefinedForReified(Intrinsics.java:207) +// at kotlin.jvm.internal.Intrinsics.throwUndefinedForReified(Intrinsics.java:201) +// at kotlin.jvm.internal.Intrinsics.reifiedOperationMarker(Intrinsics.java:211) +// at AdaptedArrayOfKt$box$t$1.invoke(adaptedArrayOf.kt:5) +// at AdaptedArrayOfKt$box$t$1.invoke(adaptedArrayOf.kt:5) +// at AdaptedArrayOfKt.test(adaptedArrayOf.kt:2) +// at AdaptedArrayOfKt.box(adaptedArrayOf.kt:5) + +fun test(f: (Int, Int) -> Array) = + f('O'.toInt(), 'K'.toInt()) + +fun box(): String { + val t = test(::arrayOf) + return "${t[0].toChar()}${t[1].toChar()}" +} diff --git a/compiler/testData/codegen/box/sam/kt49226.kt b/compiler/testData/codegen/box/sam/kt49226.kt new file mode 100644 index 00000000000..68a08cde622 --- /dev/null +++ b/compiler/testData/codegen/box/sam/kt49226.kt @@ -0,0 +1,33 @@ +// TARGET_BACKEND: JVM +// IGNORE_BACKEND_FIR: JVM_IR +// java.lang.UnsupportedOperationException: This function has a reified type parameter and thus can only be inlined at compilation time, +// not called directly. +// at kotlin.jvm.internal.Intrinsics.throwUndefinedForReified(Intrinsics.java:207) +// at kotlin.jvm.internal.Intrinsics.throwUndefinedForReified(Intrinsics.java:201) +// at kotlin.jvm.internal.Intrinsics.reifiedOperationMarker(Intrinsics.java:211) +// at Kt49226Kt$box$x$1.invoke(kt49226.kt:5) +// at Kt49226Kt$box$x$1.invoke(kt49226.kt:5) +// at Kt49226Kt$sam$Func$0.apply(kt49226.kt) +// at Mapper.map(Mapper.java:20) +// at Kt49226Kt.box(kt49226.kt:5) + +// FILE: kt49226.kt +fun box(): String { + val x: Array = Mapper("OK").map(::arrayOf) + return x[0] +} + + +// FILE: Func.java +public interface Func { R apply(T t); } + +// FILE: Mapper.java +public class Mapper { + T t; + public Mapper(T t) { + this.t = t; + } + public R map(Func f) { + return f.apply(t); + } +} 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 ec8c5e3eb86..585b204c38e 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 @@ -2870,6 +2870,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { @TestMetadata("compiler/testData/codegen/box/callableReference/adaptedReferences") @TestDataPath("$PROJECT_ROOT") public class AdaptedReferences { + @Test + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @Test @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { @@ -40090,6 +40096,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/sam/kt4753_2.kt"); } + @Test + @TestMetadata("kt49226.kt") + public void testKt49226() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt49226.kt"); + } + @Test @TestMetadata("nonInlinedSamWrapper.kt") public void testNonInlinedSamWrapper() throws Exception { 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 076dbc5b452..a65c1a2023d 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 @@ -2942,6 +2942,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes @TestMetadata("compiler/testData/codegen/box/callableReference/adaptedReferences") @TestDataPath("$PROJECT_ROOT") public class AdaptedReferences { + @Test + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @Test @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { @@ -40252,6 +40258,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/sam/kt4753_2.kt"); } + @Test + @TestMetadata("kt49226.kt") + public void testKt49226() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt49226.kt"); + } + @Test @TestMetadata("nonInlinedSamWrapper.kt") public void testNonInlinedSamWrapper() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index a92a26d058b..5579fb059b7 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -2522,6 +2522,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); } + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedVarargFunImportedFromObject.kt"); @@ -32114,6 +32119,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/sam/kt4753_2.kt"); } + @TestMetadata("kt49226.kt") + public void testKt49226() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt49226.kt"); + } + @TestMetadata("nonInlinedSamWrapper.kt") public void testNonInlinedSamWrapper() throws Exception { runTest("compiler/testData/codegen/box/sam/nonInlinedSamWrapper.kt"); 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 f4d6c654df8..9b69d544d09 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 @@ -1732,6 +1732,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS_IR_ES6, testDataFilePath); } + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedVarargFunImportedFromObject.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 6949d954c37..e1b5c3083e1 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 @@ -1732,6 +1732,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS_IR, testDataFilePath); } + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedVarargFunImportedFromObject.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 74ee84ccd3a..bc5109ce696 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 @@ -1697,6 +1697,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS, testDataFilePath); } + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedVarargFunImportedFromObject.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 ae69f645588..ea45b7197ec 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 @@ -1722,6 +1722,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest KotlinTestUtils.runTest0(this::doTest, TargetBackend.WASM, testDataFilePath); } + @TestMetadata("adaptedArrayOf.kt") + public void testAdaptedArrayOf() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedArrayOf.kt"); + } + @TestMetadata("adaptedVarargFunImportedFromObject.kt") public void testAdaptedVarargFunImportedFromObject() throws Exception { runTest("compiler/testData/codegen/box/callableReference/adaptedReferences/adaptedVarargFunImportedFromObject.kt");