From 1cda60fcd1534d6e49358f53ebcea3758dcb9f9e Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Tue, 27 Sep 2016 12:59:49 +0300 Subject: [PATCH] Cast return expression to function return type --- .../kotlin/backend/jvm/codegen/ExpressionCodegen.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 66b61272376..5b251bb4ad2 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 @@ -55,6 +55,8 @@ class ExpressionCodegen( val typeMapper = classCodegen.typeMapper + val returnType = typeMapper.mapReturnType(irFunction.descriptor) + fun generate() { mv.visitCode() val info = BlockInfo() @@ -329,9 +331,9 @@ class ExpressionCodegen( override fun visitReturn(expression: IrReturn, data: BlockInfo): StackValue { val value = expression.value?.apply { - gen(this, this.asmType, data) + gen(this, returnType, data) } - mv.areturn((expression.value ?: expression).asmType) + mv.areturn(returnType) return expression.onStack }