Generate return when generating continuation class for expression body

Otherwise, the function will return Unit instead of correct value.
 #KT-46007 Fixed
This commit is contained in:
Ilmir Usmanov
2021-04-14 17:47:50 +02:00
committed by TeamCityServer
parent 539d3e5df2
commit 1c48fb28db
13 changed files with 399 additions and 25 deletions
@@ -316,8 +316,12 @@ private class AddContinuationLowering(context: JvmBackendContext) : SuspendLower
function as IrAttributeContainer,
flag.capturesCrossinline
)
for (statement in newFunction.body!!.statements) {
+statement
if (newFunction.body is IrExpressionBody) {
+irReturn(newFunction.body!!.statements[0] as IrExpression)
} else {
for (statement in newFunction.body!!.statements) {
+statement
}
}
}
return result