always wrap block into an expression

This commit is contained in:
Aleksey Kladov 2019-09-02 19:33:02 +03:00
parent a8397deab9
commit 3c2dea7f55
5 changed files with 19 additions and 14 deletions

View file

@ -40,6 +40,11 @@ pub(crate) fn block(p: &mut Parser) {
p.error("expected a block");
return;
}
atom::block_expr(p, None);
}
pub(crate) fn naked_block(p: &mut Parser) {
assert!(p.at(T!['{']));
let m = p.start();
p.bump();
expr_block_contents(p);

View file

@ -463,10 +463,10 @@ fn match_guard(p: &mut Parser) -> CompletedMarker {
// unsafe {};
// 'label: {};
// }
fn block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
pub(super) fn block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
assert!(p.at(T!['{']));
let m = m.unwrap_or_else(|| p.start());
block(p);
naked_block(p);
m.complete(p, BLOCK_EXPR)
}