From 6adcbe081e3cc6c7e9f0f0c0fe160224507e2dbe Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 9 Dec 2021 17:46:08 +0300 Subject: [PATCH] [JS IR] Consider erasing type parameters in return type in js signatures --- .../FirBlackBoxCodegenTestGenerated.java | 6 ++++++ .../backend/js/lower/JsBridgesConstruction.kt | 2 +- .../kotlin/ir/backend/js/utils/NameTables.kt | 2 +- .../bridges/overrideWithValueClassReturn.kt | 19 +++++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 ++++++ .../IrBlackBoxCodegenTestGenerated.java | 6 ++++++ .../LightAnalysisModeTestGenerated.java | 5 +++++ .../js/test/JsCodegenBoxTestGenerated.java | 6 ++++++ .../test/ir/IrJsCodegenBoxTestGenerated.java | 6 ++++++ .../IrCodegenBoxWasmTestGenerated.java | 5 +++++ .../NativeExtBlackBoxTestGenerated.java | 6 ++++++ 11 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.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 28ed8e51e8a..f7a572635ec 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 @@ -2285,6 +2285,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @Test + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @Test @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() throws Exception { diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsBridgesConstruction.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsBridgesConstruction.kt index 63984483787..106c06d03af 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsBridgesConstruction.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsBridgesConstruction.kt @@ -31,7 +31,7 @@ class JsBridgesConstruction(context: JsIrBackendContext) : BridgesConstruction { + public fun foo(): VC +} + +@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") +@kotlin.jvm.JvmInline +public value class VC(val holder: String) + +abstract class AC(val vc: VC) : I { + override fun foo(): VC { + return vc + } +} + +fun box(): String { + return object : AC(VC("OK")) {}.foo().holder +} 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 dd9ad83a56a..d3681450873 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 @@ -2207,6 +2207,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @Test + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @Test @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() 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 3df863c4080..01d0c2b2973 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 @@ -2285,6 +2285,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @Test + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @Test @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() 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 46d32185bfd..247488bbc81 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -1937,6 +1937,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() throws Exception { runTest("compiler/testData/codegen/box/bridges/propertyAccessorsWithoutBody.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java index 9db2e02b602..40c9763004b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java @@ -1517,6 +1517,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @Test + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @Test @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index 9a89c54fc1c..3582af2a273 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -1559,6 +1559,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @Test + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @Test @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 85a2b22bd47..a4087a2c2e9 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -1387,6 +1387,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() throws Exception { runTest("compiler/testData/codegen/box/bridges/propertyAccessorsWithoutBody.kt"); diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeExtBlackBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeExtBlackBoxTestGenerated.java index 5afbe863693..01c035579ac 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeExtBlackBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeExtBlackBoxTestGenerated.java @@ -1577,6 +1577,12 @@ public class NativeExtBlackBoxTestGenerated extends AbstractNativeBlackBoxTest { runTest("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); } + @Test + @TestMetadata("overrideWithValueClassReturn.kt") + public void testOverrideWithValueClassReturn() throws Exception { + runTest("compiler/testData/codegen/box/bridges/overrideWithValueClassReturn.kt"); + } + @Test @TestMetadata("propertyAccessorsWithoutBody.kt") public void testPropertyAccessorsWithoutBody() throws Exception {