diff --git a/compiler/parser.nim b/compiler/parser.nim index 7475050974..7f438f4208 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -699,10 +699,12 @@ proc parsePar(p: var Parser): PNode = asgn.add b result.add(asgn) if p.tok.tokType == tkSemiColon: + getTok(p) semiStmtList(p, result) elif p.tok.tokType == tkSemiColon: # stmt context: result.add(a) + getTok(p) semiStmtList(p, result) else: a = colonOrEquals(p, a) diff --git a/tests/parser/tstmtlistexprempty.nim b/tests/parser/tstmtlistexprempty.nim new file mode 100644 index 0000000000..1d71c1aeb6 --- /dev/null +++ b/tests/parser/tstmtlistexprempty.nim @@ -0,0 +1,23 @@ +discard """ + nimout: ''' +StmtList + ReturnStmt + StmtListExpr + Call + DotExpr + Ident "x" + Ident "add" + StrLit "123" + Call + DotExpr + Ident "x" + Ident "add" + StrLit "123" + Ident "x" +''' +""" + +import std/macros + +dumpTree: + return (x.add("123"); x.add("123"); x)