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 c27b2a2e68e..df2c4e628a6 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 @@ -17540,6 +17540,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/kt52373.kt"); } + @Test + @TestMetadata("kt52459.kt") + public void testKt52459() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/kt52459.kt"); + } + @Test @TestMetadata("kt53846.kt") public void testKt53846() throws Exception { diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt index 547d50db102..20ab319be99 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt @@ -591,6 +591,7 @@ internal class BridgeLowering(val context: JvmBackendContext) : FileLoweringPass } else { from.valueParameters.map { it.copyWithTypeErasure(this, visibleTypeParameters) } } + contextReceiverParametersCount = from.contextReceiverParametersCount } private fun IrValueParameter.copyWithTypeErasure( diff --git a/compiler/testData/codegen/box/extensionFunctions/contextReceivers/kt52459.kt b/compiler/testData/codegen/box/extensionFunctions/contextReceivers/kt52459.kt new file mode 100644 index 00000000000..69c6def181c --- /dev/null +++ b/compiler/testData/codegen/box/extensionFunctions/contextReceivers/kt52459.kt @@ -0,0 +1,23 @@ +// !LANGUAGE: +ContextReceivers +// TARGET_BACKEND: JVM_IR + +interface I{ + context(A) + fun T.foo(): String +} + +class A(val a: String) +class B(val b: String) + +object O: I{ + context(A) + override fun B.foo(): String = this@A.a + this@B.b +} + +fun box(): String { + with(A("O")){ + with(O as I){ + return B("K").foo() + } + } +} \ No newline at end of file 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 7f44e740325..e429796d170 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 @@ -17540,6 +17540,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/kt52373.kt"); } + @Test + @TestMetadata("kt52459.kt") + public void testKt52459() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/kt52459.kt"); + } + @Test @TestMetadata("kt53846.kt") public void testKt53846() throws Exception {