diff --git a/compiler/testData/codegen/box/inlineClasses/callableReferencesWithInlineClasses.kt b/compiler/testData/codegen/box/inlineClasses/callableReferencesWithInlineClasses.kt new file mode 100644 index 00000000000..e3e9744f98a --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/callableReferencesWithInlineClasses.kt @@ -0,0 +1,18 @@ +// !LANGUAGE: +InlineClasses +// WITH_REFLECT + +inline class Foo(val x: String) { + fun bar(f: Foo, i: Int): Foo = Foo(x + f.x + i) +} + +fun box(): String { + val f = Foo("original") + val function1 = f::bar + val result1 = function1.invoke(Foo("+argument+"), 42) + if (result1.x != "original+argument+42") return "Fail first" + + val result2 = Foo::bar.invoke(Foo("explicit"), Foo("+argument2+"), 10) + if (result2.x != "explicit+argument2+10") return "Fail second" + + return "OK" +} diff --git a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 8cde6b9aedb..f2dd2def78f 100644 --- a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -11174,6 +11174,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/callComputablePropertyInsideInlineClass.kt"); } + @TestMetadata("callableReferencesWithInlineClasses.kt") + public void testCallableReferencesWithInlineClasses() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/callableReferencesWithInlineClasses.kt"); + } + @TestMetadata("checkBoxUnboxOfArgumentsOnInlinedFunctions.kt") public void testCheckBoxUnboxOfArgumentsOnInlinedFunctions() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/checkBoxUnboxOfArgumentsOnInlinedFunctions.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index dfbf5b2a941..47edebd3d66 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -11174,6 +11174,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/callComputablePropertyInsideInlineClass.kt"); } + @TestMetadata("callableReferencesWithInlineClasses.kt") + public void testCallableReferencesWithInlineClasses() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/callableReferencesWithInlineClasses.kt"); + } + @TestMetadata("checkBoxUnboxOfArgumentsOnInlinedFunctions.kt") public void testCheckBoxUnboxOfArgumentsOnInlinedFunctions() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/checkBoxUnboxOfArgumentsOnInlinedFunctions.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 70340a42e7f..db052ceec7b 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -11174,6 +11174,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/callComputablePropertyInsideInlineClass.kt"); } + @TestMetadata("callableReferencesWithInlineClasses.kt") + public void testCallableReferencesWithInlineClasses() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/callableReferencesWithInlineClasses.kt"); + } + @TestMetadata("checkBoxUnboxOfArgumentsOnInlinedFunctions.kt") public void testCheckBoxUnboxOfArgumentsOnInlinedFunctions() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/checkBoxUnboxOfArgumentsOnInlinedFunctions.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index decce745430..32c67d8adbe 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -9710,6 +9710,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/callComputablePropertyInsideInlineClass.kt"); } + @TestMetadata("callableReferencesWithInlineClasses.kt") + public void testCallableReferencesWithInlineClasses() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/callableReferencesWithInlineClasses.kt"); + } + @TestMetadata("checkBoxUnboxOfArgumentsOnInlinedFunctions.kt") public void testCheckBoxUnboxOfArgumentsOnInlinedFunctions() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/checkBoxUnboxOfArgumentsOnInlinedFunctions.kt");