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 16fa3fc2bb6..00266064266 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 @@ -23442,6 +23442,30 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @Test + @TestMetadata("arrayIC.kt") + public void testArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @Test + @TestMetadata("primitive.kt") + public void testPrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + + @Test + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @Test @TestMetadata("simple.kt") public void testSimple() throws Exception { diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt index b1083f5a236..3f25a4b806f 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt @@ -302,6 +302,9 @@ private class JvmInlineClassLowering(private val context: JvmBackendContext) : F val replacement = context.inlineClassReplacements.getReplacementFunction(function) ?: return super.visitFunctionReference(expression) + // In case of callable reference to inline class constructor, + // type parameters of the replacement include class's type parameters, + // however, expression does not. Thus, we should not include them either. return IrFunctionReferenceImpl( expression.startOffset, expression.endOffset, expression.type, replacement.symbol, function.typeParameters.size, diff --git a/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt new file mode 100644 index 00000000000..d634929888d --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt @@ -0,0 +1,6 @@ +// CHECK_BYTECODE_LISTING +// LANGUAGE: -JvmInlineValueClasses, +GenericInlineClassParameter + +inline class ICIntArray(val value: Array) + +fun box(): String = if (ICIntArray(arrayOf(1)).value[0] == 1) "OK" else "FAIL" \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.txt b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.txt new file mode 100644 index 00000000000..44e1a2e9705 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.txt @@ -0,0 +1,24 @@ +@kotlin.Metadata +public final class ArrayKt { + // source: 'array.kt' + public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String +} + +@kotlin.jvm.JvmInline +@kotlin.Metadata +public final class ICIntArray { + // source: 'array.kt' + private final @org.jetbrains.annotations.NotNull field value: java.lang.Integer[] + private synthetic method (p0: java.lang.Integer[]): void + public synthetic final static method box-impl(p0: java.lang.Integer[]): ICIntArray + public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: java.lang.Integer[]): java.lang.Integer[] + public method equals(p0: java.lang.Object): boolean + public static method equals-impl(p0: java.lang.Integer[], p1: java.lang.Object): boolean + public final static method equals-impl0(p0: java.lang.Integer[], p1: java.lang.Integer[]): boolean + public final @org.jetbrains.annotations.NotNull method getValue(): java.lang.Integer[] + public method hashCode(): int + public static method hashCode-impl(p0: java.lang.Integer[]): int + public method toString(): java.lang.String + public static method toString-impl(p0: java.lang.Integer[]): java.lang.String + public synthetic final method unbox-impl(): java.lang.Integer[] +} diff --git a/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt new file mode 100644 index 00000000000..d457fea77c7 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt @@ -0,0 +1,13 @@ +// CHECK_BYTECODE_LISTING +// LANGUAGE: -JvmInlineValueClasses, +GenericInlineClassParameter +// IGNORE_BACKEND: JVM + +inline class ICStr(val value: String) +inline class ICIStr(val value: T) +inline class ICIStrArray(val value: Array) + +fun box(): String { + val res = ICIStrArray(arrayOf(ICStr("OK"))).value[0].value + if (res != "OK") return res + return ICIStr(ICStr("OK")).value.value +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.txt b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.txt new file mode 100644 index 00000000000..9976f89c810 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.txt @@ -0,0 +1,62 @@ +@kotlin.Metadata +public final class ArrayICKt { + // source: 'arrayIC.kt' + public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String +} + +@kotlin.jvm.JvmInline +@kotlin.Metadata +public final class ICIStr { + // source: 'arrayIC.kt' + private final @org.jetbrains.annotations.NotNull field value: java.lang.String + private synthetic method (p0: java.lang.String): void + public synthetic final static method box-impl(p0: java.lang.String): ICIStr + public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String + public method equals(p0: java.lang.Object): boolean + public static method equals-impl(p0: java.lang.String, p1: java.lang.Object): boolean + public final static method equals-impl0(p0: java.lang.String, p1: java.lang.String): boolean + public final @org.jetbrains.annotations.NotNull method getValue-GZl9MeU(): java.lang.String + public method hashCode(): int + public static method hashCode-impl(p0: java.lang.String): int + public method toString(): java.lang.String + public static method toString-impl(p0: java.lang.String): java.lang.String + public synthetic final method unbox-impl(): java.lang.String +} + +@kotlin.jvm.JvmInline +@kotlin.Metadata +public final class ICIStrArray { + // source: 'arrayIC.kt' + private final @org.jetbrains.annotations.NotNull field value: ICStr[] + private synthetic method (p0: ICStr[]): void + public synthetic final static method box-impl(p0: ICStr[]): ICIStrArray + public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: ICStr[]): ICStr[] + public method equals(p0: java.lang.Object): boolean + public static method equals-impl(p0: ICStr[], p1: java.lang.Object): boolean + public final static method equals-impl0(p0: ICStr[], p1: ICStr[]): boolean + public final @org.jetbrains.annotations.NotNull method getValue(): ICStr[] + public method hashCode(): int + public static method hashCode-impl(p0: ICStr[]): int + public method toString(): java.lang.String + public static method toString-impl(p0: ICStr[]): java.lang.String + public synthetic final method unbox-impl(): ICStr[] +} + +@kotlin.jvm.JvmInline +@kotlin.Metadata +public final class ICStr { + // source: 'arrayIC.kt' + private final @org.jetbrains.annotations.NotNull field value: java.lang.String + private synthetic method (p0: java.lang.String): void + public synthetic final static method box-impl(p0: java.lang.String): ICStr + public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String + public method equals(p0: java.lang.Object): boolean + public static method equals-impl(p0: java.lang.String, p1: java.lang.Object): boolean + public final static method equals-impl0(p0: java.lang.String, p1: java.lang.String): boolean + public final @org.jetbrains.annotations.NotNull method getValue(): java.lang.String + public method hashCode(): int + public static method hashCode-impl(p0: java.lang.String): int + public method toString(): java.lang.String + public static method toString-impl(p0: java.lang.String): java.lang.String + public synthetic final method unbox-impl(): java.lang.String +} diff --git a/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt new file mode 100644 index 00000000000..16e63eba4d2 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt @@ -0,0 +1,15 @@ +// CHECK_BYTECODE_LISTING +// LANGUAGE: -JvmInlineValueClasses, +GenericInlineClassParameter +// IGNORE_BACKEND: JVM + +inline class ICInt(val value: T) + +inline class ICIcInt>(val value: T) + +fun box(): String { + var res = ICInt(1).value + if (res != 1) return "FAIL 1: $res" + res = ICIcInt(ICInt(1)).value.value + if (res != 1) return "FAIL 2: $res" + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.txt b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.txt new file mode 100644 index 00000000000..146c4611d99 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.txt @@ -0,0 +1,43 @@ +@kotlin.jvm.JvmInline +@kotlin.Metadata +public final class ICIcInt { + // source: 'primitive.kt' + private final field value: int + private synthetic method (p0: int): void + public synthetic final static method box-impl(p0: int): ICIcInt + public static method constructor-impl(p0: int): int + public method equals(p0: java.lang.Object): boolean + public static method equals-impl(p0: int, p1: java.lang.Object): boolean + public final static method equals-impl0(p0: int, p1: int): boolean + public final method getValue-F6dIzHg(): int + public method hashCode(): int + public static method hashCode-impl(p0: int): int + public method toString(): java.lang.String + public static method toString-impl(p0: int): java.lang.String + public synthetic final method unbox-impl(): int +} + +@kotlin.jvm.JvmInline +@kotlin.Metadata +public final class ICInt { + // source: 'primitive.kt' + private final field value: int + private synthetic method (p0: int): void + public synthetic final static method box-impl(p0: int): ICInt + public static method constructor-impl(p0: int): int + public method equals(p0: java.lang.Object): boolean + public static method equals-impl(p0: int, p1: java.lang.Object): boolean + public final static method equals-impl0(p0: int, p1: int): boolean + public final method getValue(): int + public method hashCode(): int + public static method hashCode-impl(p0: int): int + public method toString(): java.lang.String + public static method toString-impl(p0: int): java.lang.String + public synthetic final method unbox-impl(): int +} + +@kotlin.Metadata +public final class PrimitiveKt { + // source: 'primitive.kt' + public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String +} diff --git a/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt new file mode 100644 index 00000000000..4064b303d04 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt @@ -0,0 +1,14 @@ +// LANGUAGE: -JvmInlineValueClasses, +GenericInlineClassParameter +// IGNORE_BACKED: JVM + +inline class ICAny(val value: T) + +fun box(): String { + var res = ICAny("OK").value + if (res != "OK") return "FAIL 1: $res" + res = ICAny(ICAny("OK")).value.value + if (res != "OK") return "FAIL 2: $res" + res = ICAny(ICAny(ICAny("OK"))).value.value.value + if (res != "OK") return "FAIL 3: $res" + return "OK" +} \ No newline at end of file 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 6c7bcd82839..e97aed61e7a 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 @@ -23016,6 +23016,30 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @Test + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @Test + @TestMetadata("arrayIC.kt") + public void testArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @Test + @TestMetadata("primitive.kt") + public void testPrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + + @Test + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @Test @TestMetadata("simple.kt") public void testSimple() 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 459439d8a18..f4b4cdf9a88 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 @@ -23442,6 +23442,30 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @Test + @TestMetadata("arrayIC.kt") + public void testArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @Test + @TestMetadata("primitive.kt") + public void testPrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + + @Test + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @Test @TestMetadata("simple.kt") public void testSimple() 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 0c871c7c072..431f3f00772 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -19242,6 +19242,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public static class GenericUnderlyingValue extends AbstractLightAnalysisModeTest { + @TestMetadata("arrayIC.kt") + public void ignoreArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @TestMetadata("primitive.kt") + public void ignorePrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + private void runTest(String testDataFilePath) throws Exception { KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); } @@ -19250,6 +19260,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/simple.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 6cbcb565a00..ce689563d93 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 @@ -18434,6 +18434,30 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS, true); } + @Test + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @Test + @TestMetadata("arrayIC.kt") + public void testArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @Test + @TestMetadata("primitive.kt") + public void testPrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + + @Test + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @Test @TestMetadata("simple.kt") public void testSimple() 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 b79c42b7444..597d10b213d 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 @@ -18398,6 +18398,30 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } + @Test + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @Test + @TestMetadata("arrayIC.kt") + public void testArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @Test + @TestMetadata("primitive.kt") + public void testPrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + + @Test + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @Test @TestMetadata("simple.kt") public void testSimple() 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 6cfb40ceaed..a1337604c47 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 @@ -15564,6 +15564,26 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @TestMetadata("arrayIC.kt") + public void testArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @TestMetadata("primitive.kt") + public void testPrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/simple.kt"); diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java index 7f46793a6d4..ff5bcb34042 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java @@ -20609,6 +20609,30 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true); } + @Test + @TestMetadata("array.kt") + public void testArray() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/array.kt"); + } + + @Test + @TestMetadata("arrayIC.kt") + public void testArrayIC() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/arrayIC.kt"); + } + + @Test + @TestMetadata("primitive.kt") + public void testPrimitive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/primitive.kt"); + } + + @Test + @TestMetadata("recursive.kt") + public void testRecursive() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/genericUnderlyingValue/recursive.kt"); + } + @Test @TestMetadata("simple.kt") public void testSimple() throws Exception {