diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-06-16 10:12:56 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-06-16 10:13:39 -0700 |
| commit | 66c52036dabdeba6f28dcc0401d5a64c232e35d7 (patch) | |
| tree | fdee55191c4e1943524a24cc5575522980339f07 /src/comp | |
| parent | 15f71b3600f314599a39b6c13ef39d1fc7c25540 (diff) | |
| download | rust-66c52036dabdeba6f28dcc0401d5a64c232e35d7.tar.gz rust-66c52036dabdeba6f28dcc0401d5a64c232e35d7.zip | |
rustc: Change interior vector syntax to `T[]`
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/front/parser.rs | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 165ca574df5..c733e5b372d 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -411,6 +411,26 @@ fn parse_ty_constrs(@ast::ty t, &parser p) -> @ast::ty { ret t; } +fn parse_ty_postfix(@ast::ty orig_t, &parser p) -> @ast::ty { + auto lo = p.get_lo_pos(); + if (p.peek() == token::LBRACKET) { + p.bump(); + + auto mut; + if (eat_word(p, "mutable")) { + mut = ast::mut; + } else { + mut = ast::imm; + } + + expect(p, token::RBRACKET); + auto hi = p.get_hi_pos(); + auto t = ast::ty_ivec(rec(ty=orig_t, mut=mut)); + ret parse_ty_postfix(@spanned(lo, hi, t), p); + } + ret parse_ty_constrs(orig_t, p); +} + fn parse_ty_or_bang(&parser p) -> ty_or_bang { alt (p.peek()) { case (token::NOT) { p.bump(); ret a_bang[@ast::ty]; } @@ -522,11 +542,6 @@ fn parse_ty(&parser p) -> @ast::ty { t = ast::ty_chan(parse_ty(p)); hi = p.get_hi_pos(); expect(p, token::RBRACKET); - } else if (eat_word(p, "ivec")) { - expect(p, token::LBRACKET); - t = ast::ty_ivec(parse_mt(p)); - hi = p.get_hi_pos(); - expect(p, token::RBRACKET); } else if (eat_word(p, "mutable")) { p.get_session().span_warn(p.get_span(), "ignoring deprecated 'mutable'" @@ -539,7 +554,7 @@ fn parse_ty(&parser p) -> @ast::ty { t = ast::ty_path(path, p.get_ann()); hi = path.span.hi; } else { p.err("expecting type"); t = ast::ty_nil; fail; } - ret parse_ty_constrs(@spanned(lo, hi, t), p); + ret parse_ty_postfix(@spanned(lo, hi, t), p); } fn parse_arg(&parser p) -> ast::arg { |
