support post expression blocks in return and yield
This commit is contained in:
parent
8b63b84924
commit
f7b10e213b
2 changed files with 4 additions and 3 deletions
|
|
@ -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?
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue