diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index 98c3d063663..81ce1a1b017 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -52325,6 +52325,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/valueClasses/inlineFunctions.kt"); } + @Test + @TestMetadata("kt59079.kt") + public void testKt59079() throws Exception { + runTest("compiler/testData/codegen/box/valueClasses/kt59079.kt"); + } + @Test @TestMetadata("mfvcAndIcInsideConstructorsOfEachOther.kt") public void testMfvcAndIcInsideConstructorsOfEachOther() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 8e2b07797af..084234d1f38 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -52325,6 +52325,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/valueClasses/inlineFunctions.kt"); } + @Test + @TestMetadata("kt59079.kt") + public void testKt59079() throws Exception { + runTest("compiler/testData/codegen/box/valueClasses/kt59079.kt"); + } + @Test @TestMetadata("mfvcAndIcInsideConstructorsOfEachOther.kt") public void testMfvcAndIcInsideConstructorsOfEachOther() throws Exception { diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt index dddccb43df9..9084c97298c 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt @@ -276,14 +276,12 @@ private class SyntheticAccessorTransformer( accessorGenerator.isOrShouldBeHiddenAsSealedClassConstructor(function) -> accessorGenerator.getSyntheticConstructorOfSealedClass(function) else -> return super.visitFunctionReference(expression) } - generatedAccessor.symbol.save().owner.let { accessor -> - expression.transformChildrenVoid() - return IrFunctionReferenceImpl( - expression.startOffset, expression.endOffset, expression.type, - accessor.symbol, accessor.typeParameters.size, - accessor.valueParameters.size, accessor.symbol, expression.origin - ) - } + expression.transformChildrenVoid() + return IrFunctionReferenceImpl( + expression.startOffset, expression.endOffset, expression.type, + generatedAccessor.symbol, generatedAccessor.typeParameters.size, + generatedAccessor.valueParameters.size, generatedAccessor.symbol, expression.origin + ) } return super.visitFunctionReference(expression) diff --git a/compiler/testData/codegen/box/valueClasses/kt59079.kt b/compiler/testData/codegen/box/valueClasses/kt59079.kt new file mode 100644 index 00000000000..ab07d118240 --- /dev/null +++ b/compiler/testData/codegen/box/valueClasses/kt59079.kt @@ -0,0 +1,26 @@ +// WITH_STDLIB +// LANGUAGE: +ValueClasses +// TARGET_BACKEND: JVM_IR + +// FILE: a.kt + +@JvmInline +value class IC(val x: String) + +class C(val ic: IC) + +// FILE: b.kt + +fun foo(action: (ic: IC) -> C): C { + return action(IC("OK")) +} + +fun test(): C { + return foo(::C) +} + +// FILE: c.kt + +fun box(): String { + return test().ic.x +} 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 72a57d99383..079cddda32e 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 @@ -52325,6 +52325,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/valueClasses/inlineFunctions.kt"); } + @Test + @TestMetadata("kt59079.kt") + public void testKt59079() throws Exception { + runTest("compiler/testData/codegen/box/valueClasses/kt59079.kt"); + } + @Test @TestMetadata("mfvcAndIcInsideConstructorsOfEachOther.kt") public void testMfvcAndIcInsideConstructorsOfEachOther() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index 3c0a356a8fa..2c0749a81a4 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -52325,6 +52325,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/valueClasses/inlineFunctions.kt"); } + @Test + @TestMetadata("kt59079.kt") + public void testKt59079() throws Exception { + runTest("compiler/testData/codegen/box/valueClasses/kt59079.kt"); + } + @Test @TestMetadata("mfvcAndIcInsideConstructorsOfEachOther.kt") public void testMfvcAndIcInsideConstructorsOfEachOther() throws Exception {