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()