Remove type parameter and vec/port/chan foo[T] syntax.

This commit is contained in:
Erick Tryzelaar 2011-08-10 07:50:00 -07:00 committed by Graydon Hoare
parent b3eba15271
commit adb9cde399

View file

@ -448,23 +448,17 @@ fn parse_ty_postfix(orig_t: ast::ty_, p: &parser, colons_before_params: bool)
-> @ast::ty { -> @ast::ty {
let lo = p.get_lo_pos(); let lo = p.get_lo_pos();
let seq; if colons_before_params && p.peek() == token::MOD_SEP {
if p.peek() == token::LBRACKET {
p.bump();
seq = parse_seq_to_end(token::RBRACKET, some(token::COMMA),
bind parse_ty(_, false), p);
} else if colons_before_params && p.peek() == token::MOD_SEP {
p.bump(); p.bump();
expect(p, token::LT); expect(p, token::LT);
seq = parse_seq_to_gt(some(token::COMMA), bind parse_ty(_, false), p);
} else if !colons_before_params && p.peek() == token::LT { } else if !colons_before_params && p.peek() == token::LT {
p.bump(); p.bump();
seq = parse_seq_to_gt(some(token::COMMA), bind parse_ty(_, false), p);
} else { } else {
ret @spanned(lo, p.get_lo_pos(), orig_t); ret @spanned(lo, p.get_lo_pos(), orig_t);
} }
// If we're here, we have explicit type parameter instantiation. // If we're here, we have explicit type parameter instantiation.
let seq = parse_seq_to_gt(some(token::COMMA), bind parse_ty(_, false), p);
alt orig_t { alt orig_t {
ast::ty_path(pth, ann) { ast::ty_path(pth, ann) {
@ -575,17 +569,10 @@ fn parse_ty(p: &parser, colons_before_params: bool) -> @ast::ty {
parse_type_constraints(p)); parse_type_constraints(p));
} }
} else if (eat_word(p, "vec")) { } else if (eat_word(p, "vec")) {
if p.peek() == token::LBRACKET { expect(p, token::LT);
p.bump(); t = ast::ty_vec(parse_mt(p));
t = ast::ty_vec(parse_mt(p)); hi = p.get_hi_pos();
hi = p.get_hi_pos(); expect_gt(p);
expect(p, token::RBRACKET);
} else {
expect(p, token::LT);
t = ast::ty_vec(parse_mt(p));
hi = p.get_hi_pos();
expect_gt(p);
}
} else if (p.peek() == token::LBRACKET) { } else if (p.peek() == token::LBRACKET) {
expect(p, token::LBRACKET); expect(p, token::LBRACKET);
t = ast::ty_ivec(parse_mt(p)); t = ast::ty_ivec(parse_mt(p));