Add explicit irReturn when transforming expression body to block body.

This commit is contained in:
Mads Ager
2019-11-29 14:21:04 +01:00
committed by max-kammerer
parent 7fede87825
commit 8383274144
2 changed files with 3 additions and 2 deletions
@@ -315,7 +315,7 @@ private class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass
}
// After the checks, insert the orignal method body.
if (body is IrExpressionBody) {
+(body as IrExpressionBody).expression
+irReturn((body as IrExpressionBody).expression)
} else {
(body as IrBlockBody).statements.forEach { +it }
}
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.backend.jvm.ir.IrInlineReferenceLocator
import org.jetbrains.kotlin.ir.builders.createTmpVariable
import org.jetbrains.kotlin.ir.builders.irBlockBody
import org.jetbrains.kotlin.ir.builders.irInt
import org.jetbrains.kotlin.ir.builders.irReturn
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.IrFile
@@ -78,7 +79,7 @@ internal class FakeInliningLocalVariablesLowering(val context: JvmBackendContext
// it will materialize in the code.
createTmpVariable(irInt(0), name, origin = IrDeclarationOrigin.DEFINED)
if (body is IrExpressionBody) {
+(body as IrExpressionBody).expression
+irReturn((body as IrExpressionBody).expression)
} else {
(body as IrBlockBody).statements.forEach { +it }
}