summary refs log tree commit diff stats
path: root/compiler/closureiters.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/closureiters.nim')
-rw-r--r--compiler/closureiters.nim11
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))