support post expression blocks in return and yield

This commit is contained in:
Zahary Karadjov 2017-04-10 17:26:50 +03:00
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: # NL terminates:
addSon(result, ast.emptyNode) addSon(result, ast.emptyNode)
else: else:
addSon(result, parseExpr(p)) var e = parseExpr(p)
e = postExprBlocks(p, e)
addSon(result, e)
proc parseIfOrWhen(p: var TParser, kind: TNodeKind): PNode = proc parseIfOrWhen(p: var TParser, kind: TNodeKind): PNode =
#| condStmt = expr colcom stmt COMMENT? #| condStmt = expr colcom stmt COMMENT?

View file

@ -59,14 +59,13 @@ template wrap(body: typed): untyped =
macro makeProc(): typed = macro makeProc(): typed =
# Make a template tree # Make a template tree
result = (quote do: result = quote do:
proc someProc* = proc someProc* =
wrap do: wrap do:
let x = 123 let x = 123
# Implicit conversion here # Implicit conversion here
let s: string = x let s: string = x
echo s echo s
)
makeProc() makeProc()