diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt index 0f889014fe2..69ea56b95fb 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt @@ -192,8 +192,8 @@ abstract class SingleAbstractMethodLowering(val context: CommonBackendContext) : overriddenSymbols += superMethod.symbol dispatchReceiverParameter = subclass.thisReceiver!!.copyTo(this) superMethod.valueParameters.mapTo(valueParameters) { it.copyTo(this) } - body = context.createIrBuilder(symbol).run { - irExprBody(irCall(wrappedFunctionClass.functions.single { it.name == OperatorNameConventions.INVOKE }).apply { + body = context.createIrBuilder(symbol).irBlockBody { + +irReturn(irCall(wrappedFunctionClass.functions.single { it.name == OperatorNameConventions.INVOKE }).apply { dispatchReceiver = irGetField(irGet(dispatchReceiverParameter!!), field) valueParameters.forEachIndexed { i, parameter -> putValueArgument(i, irGet(parameter)) } })