diff options
Diffstat (limited to 'compiler/closureiters.nim')
-rw-r--r-- | compiler/closureiters.nim | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/closureiters.nim b/compiler/closureiters.nim index 2848942fa..613fbe582 100644 --- a/compiler/closureiters.nim +++ b/compiler/closureiters.nim @@ -825,10 +825,13 @@ proc newEndFinallyNode(ctx: var Ctx, info: TLineInfo): PNode = let retStmt = if ctx.nearestFinally == 0: # last finally, we can return - let asgn = newTree(nkFastAsgn, - newSymNode(getClosureIterResult(ctx.g, ctx.fn, ctx.idgen), info), - ctx.newTmpResultAccess()) - newTree(nkReturnStmt, asgn) + let retValue = if ctx.fn.typ[0].isNil: + ctx.g.emptyNode + else: + newTree(nkFastAsgn, + newSymNode(getClosureIterResult(ctx.g, ctx.fn, ctx.idgen), info), + ctx.newTmpResultAccess()) + newTree(nkReturnStmt, retValue) else: # bubble up to next finally newTree(nkGotoState, ctx.g.newIntLit(info, ctx.nearestFinally)) |