diff --git a/compiler/testData/codegen/bytecodeText/inlineClasses/factoryMethodForSecondaryConstructorsCalledByInlineClass.kt b/compiler/testData/codegen/bytecodeText/inlineClasses/factoryMethodForSecondaryConstructorsCalledByInlineClass.kt new file mode 100644 index 00000000000..1357046fd2c --- /dev/null +++ b/compiler/testData/codegen/bytecodeText/inlineClasses/factoryMethodForSecondaryConstructorsCalledByInlineClass.kt @@ -0,0 +1,20 @@ +// !LANGUAGE: +InlineClasses + +// FILE: Z.kt +inline class Z(val x: Int) { + constructor(x: Long) : this(x.toInt()) + constructor(s: String) : this(s.length) + constructor(a: Int, b: Int) : this(a + b) +} + +// FILE: test.kt +fun test1() = Z(0L) +fun test2() = Z("abcdef") +fun test3() = Z(1, 2) + +// @TestKt.class: +// 0 INVOKESTATIC Z\$Erased\.constructor +// 0 INVOKESTATIC Z\-Erased\.constructor +// 1 INVOKESTATIC Z\.constructor \(J\)I +// 1 INVOKESTATIC Z\.constructor \(Ljava/lang/String;\)I +// 1 INVOKESTATIC Z\.constructor \(II\)I \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java index db8a7021b23..94308423881 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java @@ -2068,6 +2068,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/inlineClasses/functionsWithInlineClassParametersHaveStableMangledNames.kt"); } + @TestMetadata("factoryMethodForSecondaryConstructorsCalledByInlineClass.kt") + public void testFactoryMethodForSecondaryConstructorsCalledByInlineClass() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/inlineClasses/factoryMethodForSecondaryConstructorsCalledByInlineClass.kt"); + } + @TestMetadata("generationOfAccessorToUnderlyingValue.kt") public void testGenerationOfAccessorToUnderlyingValue() throws Exception { runTest("compiler/testData/codegen/bytecodeText/inlineClasses/generationOfAccessorToUnderlyingValue.kt");