about summary refs log tree commit diff
path: root/src/rustc
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-05-10 09:27:02 -0700
committerNiko Matsakis <niko@alum.mit.edu>2012-05-18 20:00:51 -0700
commit774ea145ec4525e63ba97502306036e773c19eca (patch)
treea5dbc6d74456fda9919b81364089390584eeb3b3 /src/rustc
parent0f969da8824c4a2a25f67a1576907e7de985d97c (diff)
downloadrust-774ea145ec4525e63ba97502306036e773c19eca.tar.gz
rust-774ea145ec4525e63ba97502306036e773c19eca.zip
make more code use dvec
Diffstat (limited to 'src/rustc')
-rw-r--r--src/rustc/middle/resolve.rs12
-rw-r--r--src/rustc/middle/trans/shape.rs9
2 files changed, 11 insertions, 10 deletions
diff --git a/src/rustc/middle/resolve.rs b/src/rustc/middle/resolve.rs
index caa47378162..4a2d03ec0c8 100644
--- a/src/rustc/middle/resolve.rs
+++ b/src/rustc/middle/resolve.rs
@@ -17,6 +17,7 @@ import std::{list};
 import std::list::{list, nil, cons};
 import option::{is_none, is_some};
 import syntax::print::pprust::*;
+import dvec::{dvec, extensions};
 
 export resolve_crate;
 export def_map, ext_map, exp_map, impl_map;
@@ -1798,7 +1799,7 @@ fn check_arm(e: @env, a: ast::arm, &&x: (), v: vt<()>) {
     visit::visit_arm(a, x, v);
     let ch0 = checker(*e, "binding");
     check_pat(e, ch0, a.pats[0]);
-    let seen0 = ch0.seen;
+    let seen0 = ch0.seen.get();
     let mut i = vec::len(a.pats);
     while i > 1u {
         i -= 1u;
@@ -1807,7 +1808,7 @@ fn check_arm(e: @env, a: ast::arm, &&x: (), v: vt<()>) {
 
         // Ensure the bindings introduced in this pattern are the same as in
         // the first pattern.
-        if vec::len(ch.seen) != vec::len(seen0) {
+        if ch.seen.len() != seen0.len() {
             e.sess.span_err(a.pats[i].span,
                             "inconsistent number of bindings");
         } else {
@@ -1902,11 +1903,10 @@ fn check_ty(e: @env, ty: @ast::ty, &&x: (), v: vt<()>) {
     visit::visit_ty(ty, x, v);
 }
 
-type checker = @{mut seen: [ident], kind: str, sess: session};
+type checker = @{seen: dvec<ident>, kind: str, sess: session};
 
 fn checker(e: env, kind: str) -> checker {
-    let seen: [ident] = [];
-    ret @{mut seen: seen, kind: kind, sess: e.sess};
+    ret @{seen: dvec(), kind: kind, sess: e.sess};
 }
 
 fn check_name(ch: checker, sp: span, name: ident) {
@@ -1918,7 +1918,7 @@ fn check_name(ch: checker, sp: span, name: ident) {
 }
 fn add_name(ch: checker, sp: span, name: ident) {
     check_name(ch, sp, name);
-    ch.seen += [name];
+    ch.seen.push(name);
 }
 
 fn ensure_unique<T>(e: env, sp: span, elts: [T], id: fn(T) -> ident,
diff --git a/src/rustc/middle/trans/shape.rs b/src/rustc/middle/trans/shape.rs
index 73897fd3175..9e3c6255c89 100644
--- a/src/rustc/middle/trans/shape.rs
+++ b/src/rustc/middle/trans/shape.rs
@@ -15,6 +15,7 @@ import syntax::ast_util::dummy_sp;
 import syntax::util::interner;
 import util::common;
 import syntax::codemap::span;
+import dvec::{dvec, extensions};
 
 import std::map::hashmap;
 
@@ -26,7 +27,7 @@ type ctxt =
     {mut next_tag_id: u16,
      pad: u16,
      tag_id_to_index: hashmap<ast::def_id, u16>,
-     mut tag_order: [ast::def_id],
+     tag_order: dvec<ast::def_id>,
      resources: interner::interner<res_info>,
      llshapetablesty: TypeRef,
      llshapetables: ValueRef};
@@ -273,7 +274,7 @@ fn mk_ctxt(llmod: ModuleRef) -> ctxt {
     ret {mut next_tag_id: 0u16,
          pad: 0u16,
          tag_id_to_index: common::new_def_hash(),
-         mut tag_order: [],
+         tag_order: dvec(),
          resources: interner::mk(hash_res_info, {|a, b| a == b}),
          llshapetablesty: llshapetablesty,
          llshapetables: llshapetables};
@@ -328,7 +329,7 @@ fn shape_of(ccx: @crate_ctxt, t: ty::t, ty_param_map: [uint]) -> [u8] {
               none {
                 id = ccx.shape_cx.next_tag_id;
                 ccx.shape_cx.tag_id_to_index.insert(did, id);
-                ccx.shape_cx.tag_order += [did];
+                ccx.shape_cx.tag_order.push(did);
                 ccx.shape_cx.next_tag_id += 1u16;
               }
               some(existing_id) { id = existing_id; }
@@ -497,7 +498,7 @@ fn gen_enum_shapes(ccx: @crate_ctxt) -> ValueRef {
     let mut i = 0u;
     let mut data = [];
     let mut offsets = [];
-    while i < vec::len(ccx.shape_cx.tag_order) {
+    while i < ccx.shape_cx.tag_order.len() {
         let did = ccx.shape_cx.tag_order[i];
         let variants = ty::enum_variants(ccx.tcx, did);
         let item_tyt = ty::lookup_item_type(ccx.tcx, did);