From 039e036e2279cb38df2fb5d6b9414c0464aa616e Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Thu, 1 Jun 2017 12:54:03 +0200 Subject: [PATCH] Support IrExpressionBody in codegen --- .../kotlin/backend/jvm/codegen/ExpressionCodegen.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index a8f9789436a..3e841660a78 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -124,6 +124,9 @@ class ExpressionCodegen( //for implicit return mv.areturn(Type.VOID_TYPE) } + else if (irFunction.body is IrExpressionBody) { + mv.areturn(returnType) + } writeLocalVariablesInTable(info) mv.visitEnd() } @@ -367,6 +370,10 @@ class ExpressionCodegen( return expression.onStack } + override fun visitExpressionBody(body: IrExpressionBody, data: BlockInfo): StackValue { + return body.expression.accept(this, data) + } + override fun visitElement(element: IrElement, data: BlockInfo): StackValue { TODO("not implemented for $element") //To change body of created functions use File | Settings | File Templates. }