libsyntax: Accept the new [T, ..N] style for vec.

This commit is contained in:
Patrick Walton 2013-03-19 15:40:04 -07:00
parent 049e1f9a1f
commit b0bea10898
3 changed files with 20 additions and 4 deletions

View file

@ -642,9 +642,9 @@ pub impl Parser {
self.obsolete(*self.last_span, ObsoleteMutVector);
}
// Parse the `* e` in `[ int * e ]`
// Parse the `, ..e` in `[ int, ..e ]`
// where `e` is a const expression
let t = match self.maybe_parse_fixed_vstore_with_star() {
let t = match self.maybe_parse_fixed_vstore() {
None => ty_vec(mt),
Some(suffix) => ty_fixed_length_vec(mt, suffix)
};
@ -815,8 +815,14 @@ pub impl Parser {
})
}
fn maybe_parse_fixed_vstore_with_star(&self) -> Option<@ast::expr> {
fn maybe_parse_fixed_vstore(&self) -> Option<@ast::expr> {
if self.eat(&token::BINOP(token::STAR)) {
// XXX: Obsolete; remove after snapshot.
Some(self.parse_expr())
} else if *self.token == token::COMMA &&
self.look_ahead(1) == token::DOTDOT {
self.bump();
self.bump();
Some(self.parse_expr())
} else {
None