From f7b10e213b81588d560e37aa5f7c8b0d10ea5689 Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Mon, 10 Apr 2017 17:26:50 +0300 Subject: [PATCH] support post expression blocks in return and yield --- compiler/parser.nim | 4 +++- tests/template/tgensymregression.nim | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/parser.nim b/compiler/parser.nim index 8b335efd57..178006e469 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -1344,7 +1344,9 @@ proc parseReturnOrRaise(p: var TParser, kind: TNodeKind): PNode = # NL terminates: addSon(result, ast.emptyNode) else: - addSon(result, parseExpr(p)) + var e = parseExpr(p) + e = postExprBlocks(p, e) + addSon(result, e) proc parseIfOrWhen(p: var TParser, kind: TNodeKind): PNode = #| condStmt = expr colcom stmt COMMENT? diff --git a/tests/template/tgensymregression.nim b/tests/template/tgensymregression.nim index 0fadbde417..4cc64a8315 100644 --- a/tests/template/tgensymregression.nim +++ b/tests/template/tgensymregression.nim @@ -59,14 +59,13 @@ template wrap(body: typed): untyped = macro makeProc(): typed = # Make a template tree - result = (quote do: + result = quote do: proc someProc* = wrap do: let x = 123 # Implicit conversion here let s: string = x echo s - ) makeProc()