From 28a926cb679100414a71bb8aefe349c5bdf69b26 Mon Sep 17 00:00:00 2001 From: cooldome Date: Thu, 21 Mar 2019 05:48:54 +0000 Subject: [PATCH] fixes #10861 (#10877) --- compiler/parser.nim | 5 +++-- tests/parser/tletcolon.nim | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/compiler/parser.nim b/compiler/parser.nim index 1acfe1b982..95ec5f7659 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -400,7 +400,8 @@ proc exprList(p: var TParser, endTok: TTokType, result: PNode) = proc exprColonEqExprListAux(p: var TParser, endTok: TTokType, result: PNode) = assert(endTok in {tkCurlyRi, tkCurlyDotRi, tkBracketRi, tkParRi}) getTok(p) - optInd(p, result) + flexComment(p, result) + optPar(p) # progress guaranteed while p.tok.tokType != endTok and p.tok.tokType != tkEof: var a = exprColonEqExpr(p) @@ -2085,7 +2086,7 @@ proc parseConstant(p: var TParser): PNode = addSon(result, p.emptyNode) eat(p, tkEquals) optInd(p, result) - addSon(result, parseExpr(p)) + addSon(result, parseStmtListExpr(p)) indAndComment(p, result) proc parseBind(p: var TParser, k: TNodeKind): PNode = diff --git a/tests/parser/tletcolon.nim b/tests/parser/tletcolon.nim index 7eaa5e3e5d..a2dde148aa 100644 --- a/tests/parser/tletcolon.nim +++ b/tests/parser/tletcolon.nim @@ -58,4 +58,18 @@ block: var y = 2 echo "block expression works" y*y - doAssert x == 4 \ No newline at end of file + doAssert x == 4 + + +# bug 10861 +macro foo(a: untyped): untyped = + a + +let c1 = foo: + 1 + 1 + +const c2 = foo: + 1 + 1 + +const c3 = + foo: 1 + 1