diff options
Diffstat (limited to 'compiler/parser.nim')
-rw-r--r-- | compiler/parser.nim | 8 |
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 |