046c25dbc0
An expression like: foo(1, fail, 2) was failing to parse, because the parser was interpreting the comma as the start of an expression that was an argument to fail, rather than recognizing that the fail here has no arguments Fixed this by using can_begin_expr to determine whether the next token after a fail token suggests that this is a nullary fail or a unary fail. In addition, when translating calls, check before translating each argument that the block still isn't terminated. This has the effect that if an argument list includes fail, the back-end won't keep trying to generate code for successive arguments and trip the !*terminated assertion. |
||
---|---|---|
.. | ||
ast.rs | ||
attr.rs | ||
codemap.rs | ||
config.rs | ||
eval.rs | ||
ext.rs | ||
extenv.rs | ||
extfmt.rs | ||
extsimplext.rs | ||
fold.rs | ||
lexer.rs | ||
parser.rs | ||
token.rs |