about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-07-06 15:53:47 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-07-06 15:53:47 -0700
commitaad0bcc8d5e1ed9cf6ca0eedae21b3aa0c67ab16 (patch)
tree6b2cf72623e772a7e24cb71ba0fe4994d176fe4f
parent401b6362d7f99a3cebc863cb1b8906d62e9ba79b (diff)
downloadrust-aad0bcc8d5e1ed9cf6ca0eedae21b3aa0c67ab16.tar.gz
rust-aad0bcc8d5e1ed9cf6ca0eedae21b3aa0c67ab16.zip
rustc: Make AST tuple types use interior vectors
-rw-r--r--src/comp/middle/typeck.rs6
-rw-r--r--src/comp/syntax/ast.rs2
-rw-r--r--src/comp/syntax/parse/parser.rs4
-rw-r--r--src/comp/syntax/print/pprust.rs2
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)) {