support post expression blocks in return and yield

This commit is contained in:
Zahary Karadjov
2017-04-10 17:26:50 +03:00
parent 8b63b84924
commit f7b10e213b
2 changed files with 4 additions and 3 deletions

View File

@@ -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?

View File

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