summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorSirOlaf <34164198+SirOlaf@users.noreply.github.com>2023-07-22 19:09:39 +0200
committerGitHub <noreply@github.com>2023-07-22 19:09:39 +0200
commit3ebe24977ce93ca3c347550c69dbfa7c9a7db507 (patch)
treeaf30d3bdaf095d65c4f90ed0c60b72203f4823c4
parentb02c1dd6ca96548b47d978f96278c67bf59e9d9e (diff)
downloadNim-3ebe24977ce93ca3c347550c69dbfa7c9a7db507.tar.gz
Open scope for defer (#22315)
Co-authored-by: SirOlaf <>
-rw-r--r--compiler/semexprs.nim2
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim
index 1d917f00d..c6be3e833 100644
--- a/compiler/semexprs.nim
+++ b/compiler/semexprs.nim
@@ -3282,7 +3282,9 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}, expectedType: PType
   of nkDefer:
     if c.currentScope == c.topLevelScope:
       localError(c.config, n.info, "defer statement not supported at top level")
+    openScope(c)
     n[0] = semExpr(c, n[0])
+    closeScope(c)
     if not n[0].typ.isEmptyType and not implicitlyDiscardable(n[0]):
       localError(c.config, n.info, "'defer' takes a 'void' expression")
     #localError(c.config, n.info, errGenerated, "'defer' not allowed in this context")