summary refs log tree commit diff stats
path: root/compiler/parser.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/parser.nim')
-rw-r--r--compiler/parser.nim8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/parser.nim b/compiler/parser.nim
index e9dff25ac..561200bcc 100644
--- a/compiler/parser.nim
+++ b/compiler/parser.nim
@@ -1172,7 +1172,7 @@ proc parseMacroColon(p: var TParser, x: PNode): PNode =
     result = makeCall(result)
     getTok(p)
     skipComment(p, result)
-    let stmtList = newNodeP(nkStmtList, p)
+    var stmtList = newNodeP(nkStmtList, p)
     if p.tok.tokType notin {tkOf, tkElif, tkElse, tkExcept}:
       let body = parseStmt(p)
       stmtList.add body
@@ -1202,9 +1202,9 @@ proc parseMacroColon(p: var TParser, x: PNode): PNode =
       if b.kind == nkElse: break
     if stmtList.len == 1 and stmtList[0].kind == nkStmtList:
       # to keep backwards compatibility (see tests/vm/tstringnil)
-      result.add stmtList[0]
-    else:
-      result.add stmtList
+      stmtList = stmtList[0]
+    result.add newProcNode(nkDo, stmtList.info, stmtList,
+                           params = emptyNode, pragmas = emptyNode)
 
 proc parseExprStmt(p: var TParser): PNode =
   #| exprStmt = simpleExpr