diff options
author | SirOlaf <34164198+SirOlaf@users.noreply.github.com> | 2023-07-22 19:09:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-22 19:09:39 +0200 |
commit | 3ebe24977ce93ca3c347550c69dbfa7c9a7db507 (patch) | |
tree | af30d3bdaf095d65c4f90ed0c60b72203f4823c4 | |
parent | b02c1dd6ca96548b47d978f96278c67bf59e9d9e (diff) | |
download | Nim-3ebe24977ce93ca3c347550c69dbfa7c9a7db507.tar.gz |
Open scope for defer (#22315)
Co-authored-by: SirOlaf <>
-rw-r--r-- | compiler/semexprs.nim | 2 |
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") |