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 c319d275abc..7db0737e2c9 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 @@ -21846,12 +21846,24 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { @@ -21864,42 +21876,90 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { @@ -21912,6 +21972,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Nested @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT") 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 00efd8c3d2e..9b297b3b893 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 @@ -325,10 +325,10 @@ private class JvmInlineClassLowering(private val context: JvmBackendContext) : F } } - private fun coerceInlineClasses(argument: IrExpression, from: IrType, to: IrType): IrExpression { + private fun coerceInlineClasses(argument: IrExpression, from: IrType, to: IrType, skipCast: Boolean = false): IrExpression { return IrCallImpl.fromSymbolOwner(UNDEFINED_OFFSET, UNDEFINED_OFFSET, to, context.ir.symbols.unsafeCoerceIntrinsic).apply { val underlyingType = from.erasedUpperBound.inlineClassRepresentation?.underlyingType - if (underlyingType?.isTypeParameter() == true) { + if (underlyingType?.isTypeParameter() == true && !skipCast) { putTypeArgument(0, from) putTypeArgument(1, underlyingType) putValueArgument( @@ -545,7 +545,7 @@ private class JvmInlineClassLowering(private val context: JvmBackendContext) : F function.valueParameters.forEach { it.transformChildrenVoid() } function.body = context.createIrBuilder(function.symbol).irBlockBody { val argument = function.valueParameters[0] - val thisValue = irTemporary(coerceInlineClasses(irGet(argument), argument.type, function.returnType)) + val thisValue = irTemporary(coerceInlineClasses(irGet(argument), argument.type, function.returnType, skipCast = true)) valueMap[irClass.thisReceiver!!.symbol] = thisValue for (initBlock in initBlocks) { for (stmt in initBlock.body.statements) { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/InlineClassAbi.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/InlineClassAbi.kt index e9351035213..b83f2627241 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/InlineClassAbi.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/InlineClassAbi.kt @@ -42,7 +42,10 @@ object InlineClassAbi { val representation = klass.inlineClassRepresentation ?: return null // TODO: Apply type substitutions - val underlyingType = representation.underlyingType.unboxInlineClass() + var underlyingType = representation.underlyingType.unboxInlineClass() + if (!underlyingType.isNullable() && underlyingType.isTypeParameter()) { + underlyingType = underlyingType.erasedUpperBound.defaultType + } if (!type.isNullable()) return underlyingType if (underlyingType.isNullable() || underlyingType.isPrimitiveType()) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt index d54e1484a72..3954e1b0f52 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection +import org.jetbrains.kotlin.ir.util.defaultType import org.jetbrains.kotlin.ir.util.isLocal import org.jetbrains.kotlin.ir.util.render import org.jetbrains.kotlin.utils.addToStdlib.safeAs diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt new file mode 100644 index 00000000000..1589d50da78 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt @@ -0,0 +1,17 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val z: T) + +class Test(val z: Z = Z(42)) { + fun test() = z.z +} + +fun box(): String { + if (Test().test() != 42) throw AssertionError() + if (Test(Z(123)).test() != 123) throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt new file mode 100644 index 00000000000..66124272384 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt @@ -0,0 +1,26 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val z: T) + +interface ITest { + fun testDefault(z: Z = Z(42)) = z.z + + fun testOverridden(z: Z = Z(42)): Int +} + +class Test : ITest { + override fun testOverridden(z: Z) = z.z +} + +fun box(): String { + if (Test().testDefault() != 42) throw AssertionError() + if (Test().testDefault(Z(123)) != 123) throw AssertionError() + + if (Test().testOverridden() != 42) throw AssertionError() + if (Test().testOverridden(Z(123)) != 123) throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt new file mode 100644 index 00000000000..694e8b744e8 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt @@ -0,0 +1,31 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +interface IFoo { + fun foo(): String +} + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val z: T) : IFoo { + override fun foo() = z.toString() +} + +fun testNullable(z: Z? = Z(42)) = z!!.z + +fun testAny(z: Any = Z(42)) = (z as Z<*>).z + +fun testInterface(z: IFoo = Z(42)) = z.foo() + +fun box(): String { + if (testNullable() != 42) throw AssertionError() + if (testNullable(Z(123)) != 123) throw AssertionError() + + if (testAny() != 42) throw AssertionError() + if (testAny(Z(123)) != 123) throw AssertionError() + + if (testInterface() != "42") throw AssertionError() + if (testInterface(Z(123)) != "123") throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt new file mode 100644 index 00000000000..30226c3da9e --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt @@ -0,0 +1,15 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val z: T) + +fun test(z: Z = Z(42)) = z.z + +fun box(): String { + if (test() != 42) throw AssertionError() + if (test(Z(123)) != 123) throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt new file mode 100644 index 00000000000..1a4f20ecdf2 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt @@ -0,0 +1,40 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val int: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class L(val long: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Str(val string: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Obj(val obj: T) + +inline fun withDefaultZ(fn: (Z) -> R, x: Z = Z(42)) = fn(x) +inline fun withDefaultL(fn: (L) -> R, x: L = L(42L)) = fn(x) +inline fun withDefaultL2(x: L = L(42L), fn: (L) -> R) = fn(x) +inline fun withDefaultStr(fn: (Str) -> R, x: Str = Str("abc")) = fn(x) +inline fun withDefaultObj(fn: (Obj) -> R, x: Obj = Obj("abc")) = fn(x) +inline fun withDefaultObj2(x: Obj = Obj("abc"), fn: (Obj) -> R) = fn(x) + +fun testWithDefaultZ() = withDefaultZ({ Z(it.int + 1) }) +fun testWithDefaultL() = withDefaultL({ L(it.long + 1L) }) +fun testWithDefaultL2() = withDefaultL2(fn = { L(it.long + 1L) }) +fun testWithDefaultStr() = withDefaultStr({ Str(it.string + "1") }) +fun testWithDefaultObj() = withDefaultObj({ Obj(it.obj.toString() + "1") }) +fun testWithDefaultObj2() = withDefaultObj2(fn = { Obj(it.obj.toString() + "1") }) + +fun box(): String { + if (testWithDefaultZ().int != 43) throw AssertionError() + if (testWithDefaultL().long != 43L) throw AssertionError() + if (testWithDefaultL2().long != 43L) throw AssertionError() + if (testWithDefaultStr().string != "abc1") throw AssertionError() + if (testWithDefaultObj().obj != "abc1") throw AssertionError() + if (testWithDefaultObj2().obj != "abc1") throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt new file mode 100644 index 00000000000..c8c4343a3ad --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt @@ -0,0 +1,44 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val int: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class L(val long: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Str(val string: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Obj(val obj: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Host(val xx: T) { + inline fun withDefaultZ(fn: (Z) -> R, x: Z = Z(xx)) = fn(x) + inline fun withDefaultL(fn: (L) -> R, x: L = L(xx.toLong())) = fn(x) + inline fun withDefaultL2(x: L = L(xx.toLong()), fn: (L) -> R) = fn(x) + inline fun withDefaultStr(fn: (Str) -> R, x: Str = Str(xx.toString())) = fn(x) + inline fun withDefaultObj(fn: (Obj) -> R, x: Obj = Obj(xx.toString())) = fn(x) + inline fun withDefaultObj2(x: Obj = Obj(xx.toString()), fn: (Obj) -> R) = fn(x) + + fun testWithDefaultZ() = withDefaultZ({ Z(it.int + 1) }) + fun testWithDefaultL() = withDefaultL({ L(it.long + 1L) }) + fun testWithDefaultL2() = withDefaultL2(fn = { L(it.long + 1L) }) + fun testWithDefaultStr() = withDefaultStr({ Str(it.string + "1") }) + fun testWithDefaultObj() = withDefaultObj({ Obj(it.obj.toString() + "1") }) + fun testWithDefaultObj2() = withDefaultObj2(fn = { Obj(it.obj.toString() + "1") }) +} + +fun box(): String { + val h = Host(42) + if (h.testWithDefaultZ().int != 43) throw AssertionError() + if (h.testWithDefaultL().long != 43L) throw AssertionError() + if (h.testWithDefaultL2().long != 43L) throw AssertionError() + if (h.testWithDefaultStr().string != "421") throw AssertionError() + if (h.testWithDefaultObj().obj != "421") throw AssertionError() + if (h.testWithDefaultObj2().obj != "421") throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt new file mode 100644 index 00000000000..3b5c9e04bc8 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt @@ -0,0 +1,15 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val x: T) { + fun test(y: Int = 42) = x + y +} + +fun box(): String { + if (Z(800).test() != 842) throw AssertionError() + if (Z(400).test(32) != 432) throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt new file mode 100644 index 00000000000..2eb03cb9977 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt @@ -0,0 +1,20 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val x: T = 1234 as T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class L(val x: T = 1234L as T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class S(val x: T = "foobar" as T) + +fun box(): String { + if (Z().x != 1234) throw AssertionError() + if (L().x != 1234L) throw AssertionError() + if (S().x != "foobar") throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt new file mode 100644 index 00000000000..a28017816cb --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt @@ -0,0 +1,13 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Inner(val result: T) + +OPTIONAL_JVM_INLINE_ANNOTATION +value class A>(val inner: T = Inner("OK") as T) + +fun box(): String { + return A>().inner.result +} diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt new file mode 100644 index 00000000000..6452f984fa1 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt @@ -0,0 +1,14 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class Z(val x: T) { + constructor(x: Long = 42L) : this(x.toInt() as T) +} + +fun box(): String { + if (Z().x != 42) throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt new file mode 100644 index 00000000000..58ff8a776d6 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt @@ -0,0 +1,10 @@ +// WITH_STDLIB +// WORKS_WHEN_VALUE_CLASS +// LANGUAGE: +ValueClasses, +GenericInlineClassParameter + +OPTIONAL_JVM_INLINE_ANNOTATION +value class A(val i: T) { + fun foo(s: String = "OK") = s +} + +fun box() = A(42).foo() \ 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 fb372a4ac2e..4844bc7e360 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 @@ -21426,12 +21426,24 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { @@ -21444,42 +21456,90 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { @@ -21492,6 +21552,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Nested @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT") 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 5ffc00ec679..73cbdf82411 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 @@ -21846,12 +21846,24 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { @@ -21864,42 +21876,90 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Test @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { @@ -21912,6 +21972,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @Nested @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 7a234331a59..d9657c387f4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -17881,11 +17881,21 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassType.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); @@ -17896,36 +17906,76 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); @@ -17936,6 +17986,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); + } + @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) 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 421672a1f21..07475ff2848 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 @@ -17084,12 +17084,24 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { @@ -17102,42 +17114,90 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { @@ -17150,6 +17210,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Nested @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT") 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 ac1ec8fc719..c865e67d33a 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 @@ -17048,12 +17048,24 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { @@ -17066,42 +17078,90 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Test @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { @@ -17114,6 +17174,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @Test + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @Nested @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT") 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 da296b501c7..bfe80d3e17b 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 @@ -14403,11 +14403,21 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); @@ -14418,36 +14428,76 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); @@ -14458,6 +14508,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + } + @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) 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 eb0022663fc..5f05cd64e69 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 @@ -18813,17 +18813,28 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest public class DefaultParameterValues { public DefaultParameterValues() { register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassType.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); + register("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt", TransformersFunctions.getRemoveOptionalJvmInlineAnnotation()); } @Test @@ -18838,6 +18849,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassType.kt"); } + @Test + @TestMetadata("defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultConstructorParameterValuesOfInlineClassTypeGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultConstructorParameterValuesOfInlineClassTypeGeneric.kt"); + } + @Test @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassType.kt") public void testDefaultInterfaceFunParameterValuesOfInlineClassType() throws Exception { @@ -18845,6 +18863,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassType.kt"); } + @Test + @TestMetadata("defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultInterfaceFunParameterValuesOfInlineClassTypeGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultInterfaceFunParameterValuesOfInlineClassTypeGeneric.kt"); + } + @Test @TestMetadata("defaultParameterValuesOfInlineClassType.kt") public void testDefaultParameterValuesOfInlineClassType() throws Exception { @@ -18859,6 +18884,20 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxing.kt"); } + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeBoxingGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeBoxingGeneric.kt"); + } + + @Test + @TestMetadata("defaultParameterValuesOfInlineClassTypeGeneric.kt") + public void testDefaultParameterValuesOfInlineClassTypeGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultParameterValuesOfInlineClassTypeGeneric.kt"); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt") public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception { @@ -18866,6 +18905,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt"); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunGeneric.kt"); + } + @Test @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { @@ -18873,6 +18919,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt"); } + @Test + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClassGeneric.kt"); + } + @Test @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { @@ -18880,6 +18933,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt"); } + @Test + @TestMetadata("inlineClassFunGeneric.kt") + public void testInlineClassFunGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFunGeneric.kt"); + } + @Test @TestMetadata("inlineClassPrimaryConstructor.kt") public void testInlineClassPrimaryConstructor() throws Exception { @@ -18887,6 +18947,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructor.kt"); } + @Test + @TestMetadata("inlineClassPrimaryConstructorGeneric.kt") + public void testInlineClassPrimaryConstructorGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorGeneric.kt"); + } + @Test @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValue.kt") public void testInlineClassPrimaryConstructorWithInlineClassValue() throws Exception { @@ -18894,6 +18961,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValue.kt"); } + @Test + @TestMetadata("inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt") + public void testInlineClassPrimaryConstructorWithInlineClassValueGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassPrimaryConstructorWithInlineClassValueGeneric.kt"); + } + @Test @TestMetadata("inlineClassSecondaryConstructor.kt") public void testInlineClassSecondaryConstructor() throws Exception { @@ -18901,6 +18975,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructor.kt"); } + @Test + @TestMetadata("inlineClassSecondaryConstructorGeneric.kt") + public void testInlineClassSecondaryConstructorGeneric() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassSecondaryConstructorGeneric.kt"); + } + @Test @TestMetadata("kt26554.kt") public void testKt26554() throws Exception { @@ -18915,6 +18996,13 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt"); } + @Test + @TestMetadata("kt27416Generic.kt") + public void testKt27416Generic() throws Exception { + // There is a registered source transformer for the testcase: TransformersFunctions.getRemoveOptionalJvmInlineAnnotation() + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416Generic.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultWithDefaultParameter") @TestDataPath("$PROJECT_ROOT")