diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-07-06 15:53:47 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-07-06 15:53:47 -0700 |
| commit | aad0bcc8d5e1ed9cf6ca0eedae21b3aa0c67ab16 (patch) | |
| tree | 6b2cf72623e772a7e24cb71ba0fe4994d176fe4f | |
| parent | 401b6362d7f99a3cebc863cb1b8906d62e9ba79b (diff) | |
| download | rust-aad0bcc8d5e1ed9cf6ca0eedae21b3aa0c67ab16.tar.gz rust-aad0bcc8d5e1ed9cf6ca0eedae21b3aa0c67ab16.zip | |
rustc: Make AST tuple types use interior vectors
| -rw-r--r-- | src/comp/middle/typeck.rs | 6 | ||||
| -rw-r--r-- | src/comp/syntax/ast.rs | 2 | ||||
| -rw-r--r-- | src/comp/syntax/parse/parser.rs | 4 | ||||
| -rw-r--r-- | src/comp/syntax/print/pprust.rs | 2 |
4 files changed, 5 insertions, 9 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index 0a964750aac..0a90b657cc5 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -315,11 +315,7 @@ fn ast_ty_to_ty(&ty::ctxt tcx, &ty_getter getter, &@ast::ty ast_ty) -> ty::t { typ = ty::mk_chan(tcx, ast_ty_to_ty(tcx, getter, t)); } case (ast::ty_tup(?fields)) { - let ty::mt[] flds = ~[]; - ivec::reserve(flds, vec::len(fields)); - for (ast::mt field in fields) { - flds += ~[ast_mt_to_mt(tcx, getter, field)]; - } + auto flds = ivec::map(bind ast_mt_to_mt(tcx, getter, _), fields); typ = ty::mk_tup(tcx, flds); } case (ast::ty_rec(?fields)) { diff --git a/src/comp/syntax/ast.rs b/src/comp/syntax/ast.rs index 0258472042e..f785a00a69c 100644 --- a/src/comp/syntax/ast.rs +++ b/src/comp/syntax/ast.rs @@ -401,7 +401,7 @@ tag ty_ { ty_task; ty_port(@ty); ty_chan(@ty); - ty_tup(vec[mt]); + ty_tup(mt[]); ty_rec(vec[ty_field]); ty_fn(proto, vec[ty_arg], @ty, controlflow, vec[@constr]); ty_obj(vec[ty_method]); diff --git a/src/comp/syntax/parse/parser.rs b/src/comp/syntax/parse/parser.rs index 8923588dba4..ae102027f0a 100644 --- a/src/comp/syntax/parse/parser.rs +++ b/src/comp/syntax/parse/parser.rs @@ -520,8 +520,8 @@ fn parse_ty(&parser p) -> @ast::ty { expect(p, token::RBRACKET); } else if (eat_word(p, "tup")) { auto elems = - parse_seq(token::LPAREN, token::RPAREN, some(token::COMMA), - parse_mt, p); + parse_seq_ivec(token::LPAREN, token::RPAREN, some(token::COMMA), + parse_mt, p); hi = elems.span.hi; t = ast::ty_tup(elems.node); } else if (eat_word(p, "rec")) { diff --git a/src/comp/syntax/print/pprust.rs b/src/comp/syntax/print/pprust.rs index ec9d6316f72..83f27f7560f 100644 --- a/src/comp/syntax/print/pprust.rs +++ b/src/comp/syntax/print/pprust.rs @@ -301,7 +301,7 @@ fn print_type(&ps s, &ast::ty ty) { case (ast::ty_tup(?elts)) { word(s.s, "tup"); popen(s); - commasep(s, inconsistent, elts, print_mt); + commasep_ivec(s, inconsistent, elts, print_mt); pclose(s); } case (ast::ty_rec(?fields)) { |
