From d6f91333dc1edad97bc7d849a6823f1876ad1451 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Fri, 31 Jan 2020 14:26:35 +0300 Subject: [PATCH] [IR] SAM lowering: use block body instead of expr body irBlockBody { +irReturn(..) } instead of irExprBody { .. } K/N doesn't support expr bodies for now --- .../backend/common/lower/SingleAbstractMethodLowering.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)) } })