diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2012-05-10 09:27:02 -0700 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2012-05-18 20:00:51 -0700 |
| commit | 774ea145ec4525e63ba97502306036e773c19eca (patch) | |
| tree | a5dbc6d74456fda9919b81364089390584eeb3b3 /src | |
| parent | 0f969da8824c4a2a25f67a1576907e7de985d97c (diff) | |
| download | rust-774ea145ec4525e63ba97502306036e773c19eca.tar.gz rust-774ea145ec4525e63ba97502306036e773c19eca.zip | |
make more code use dvec
Diffstat (limited to 'src')
| -rw-r--r-- | src/rustc/middle/resolve.rs | 12 | ||||
| -rw-r--r-- | src/rustc/middle/trans/shape.rs | 9 |
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); |
