syntax: make match arms store the expr directly.

Previously `ast::Arm` was always storing a single `ast::Expr` wrapped in an
`ast::Block` (for historical reasons, AIUI), so we might as just store
that expr directly.

Closes #3085.
This commit is contained in:
Huon Wilson
2014-03-03 18:41:47 +11:00
parent 3f3425a555
commit c3b9047040
15 changed files with 30 additions and 57 deletions

View File

@@ -2634,16 +2634,7 @@ impl Parser {
self.eat(&token::COMMA);
}
let blk = P(ast::Block {
view_items: Vec::new(),
stmts: Vec::new(),
expr: Some(expr),
id: ast::DUMMY_NODE_ID,
rules: DefaultBlock,
span: expr.span,
});
arms.push(ast::Arm { pats: pats, guard: guard, body: blk });
arms.push(ast::Arm { pats: pats, guard: guard, body: expr });
}
let hi = self.span.hi;
self.bump();