Skip to content

Commit 66c5203

Browse files
committed
rustc: Change interior vector syntax to T[]
1 parent 15f71b3 commit 66c5203

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

src/comp/front/parser.rs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,26 @@ fn parse_ty_constrs(@ast::ty t, &parser p) -> @ast::ty {
411411
ret t;
412412
}
413413

414+
fn parse_ty_postfix(@ast::ty orig_t, &parser p) -> @ast::ty {
415+
auto lo = p.get_lo_pos();
416+
if (p.peek() == token::LBRACKET) {
417+
p.bump();
418+
419+
auto mut;
420+
if (eat_word(p, "mutable")) {
421+
mut = ast::mut;
422+
} else {
423+
mut = ast::imm;
424+
}
425+
426+
expect(p, token::RBRACKET);
427+
auto hi = p.get_hi_pos();
428+
auto t = ast::ty_ivec(rec(ty=orig_t, mut=mut));
429+
ret parse_ty_postfix(@spanned(lo, hi, t), p);
430+
}
431+
ret parse_ty_constrs(orig_t, p);
432+
}
433+
414434
fn parse_ty_or_bang(&parser p) -> ty_or_bang {
415435
alt (p.peek()) {
416436
case (token::NOT) { p.bump(); ret a_bang[@ast::ty]; }
@@ -522,11 +542,6 @@ fn parse_ty(&parser p) -> @ast::ty {
522542
t = ast::ty_chan(parse_ty(p));
523543
hi = p.get_hi_pos();
524544
expect(p, token::RBRACKET);
525-
} else if (eat_word(p, "ivec")) {
526-
expect(p, token::LBRACKET);
527-
t = ast::ty_ivec(parse_mt(p));
528-
hi = p.get_hi_pos();
529-
expect(p, token::RBRACKET);
530545
} else if (eat_word(p, "mutable")) {
531546
p.get_session().span_warn(p.get_span(),
532547
"ignoring deprecated 'mutable'"
@@ -539,7 +554,7 @@ fn parse_ty(&parser p) -> @ast::ty {
539554
t = ast::ty_path(path, p.get_ann());
540555
hi = path.span.hi;
541556
} else { p.err("expecting type"); t = ast::ty_nil; fail; }
542-
ret parse_ty_constrs(@spanned(lo, hi, t), p);
557+
ret parse_ty_postfix(@spanned(lo, hi, t), p);
543558
}
544559

545560
fn parse_arg(&parser p) -> ast::arg {

0 commit comments

Comments
 (0)