diff options
| author | Eric Holk <eric.holk@gmail.com> | 2012-06-28 15:00:03 -0700 |
|---|---|---|
| committer | Eric Holk <eric.holk@gmail.com> | 2012-06-28 15:11:09 -0700 |
| commit | 87eaf91be34e1a6e38e4a043102910e1f3e77824 (patch) | |
| tree | 9aba96871ad4d79524b1339364603df966073c2b /src/rustc/metadata | |
| parent | 54713afa20a9e3cb09ffe678aeb7d32630ef7b59 (diff) | |
| download | rust-87eaf91be34e1a6e38e4a043102910e1f3e77824.tar.gz rust-87eaf91be34e1a6e38e4a043102910e1f3e77824.zip | |
Replaced almost all vector+ in rustc (#2719)
Didn't update shape because the changes were causing segfaults.
Diffstat (limited to 'src/rustc/metadata')
| -rw-r--r-- | src/rustc/metadata/creader.rs | 2 | ||||
| -rw-r--r-- | src/rustc/metadata/csearch.rs | 2 | ||||
| -rw-r--r-- | src/rustc/metadata/cstore.rs | 2 | ||||
| -rw-r--r-- | src/rustc/metadata/decoder.rs | 6 | ||||
| -rw-r--r-- | src/rustc/metadata/encoder.rs | 44 | ||||
| -rw-r--r-- | src/rustc/metadata/filesearch.rs | 26 |
6 files changed, 47 insertions, 35 deletions
diff --git a/src/rustc/metadata/creader.rs b/src/rustc/metadata/creader.rs index 4f9c4189feb..aa02bb84c8c 100644 --- a/src/rustc/metadata/creader.rs +++ b/src/rustc/metadata/creader.rs @@ -164,7 +164,7 @@ fn metas_with(ident: ast::ident, key: ast::ident, metas: [@ast::meta_item]/~) -> [@ast::meta_item]/~ { let name_items = attr::find_meta_items_by_name(metas, *key); if name_items.is_empty() { - metas + [attr::mk_name_value_item_str(key, *ident)]/~ + vec::append_one(metas, attr::mk_name_value_item_str(key, *ident)) } else { metas } diff --git a/src/rustc/metadata/csearch.rs b/src/rustc/metadata/csearch.rs index 1f9b2d427f8..6b30bf3090b 100644 --- a/src/rustc/metadata/csearch.rs +++ b/src/rustc/metadata/csearch.rs @@ -88,7 +88,7 @@ fn get_item_path(tcx: ty::ctxt, def: ast::def_id) -> ast_map::path { // FIXME #1920: This path is not always correct if the crate is not linked // into the root namespace. - [ast_map::path_mod(@cdata.name)]/~ + path + vec::append([ast_map::path_mod(@cdata.name)]/~, path) } enum found_ast { diff --git a/src/rustc/metadata/cstore.rs b/src/rustc/metadata/cstore.rs index b1eba8e3875..8d828aed69d 100644 --- a/src/rustc/metadata/cstore.rs +++ b/src/rustc/metadata/cstore.rs @@ -134,7 +134,7 @@ fn get_used_libraries(cstore: cstore) -> [str]/~ { } fn add_used_link_args(cstore: cstore, args: str) { - p(cstore).used_link_args += str::split_char(args, ' '); + vec::push_all(p(cstore).used_link_args, str::split_char(args, ' ')); } fn get_used_link_args(cstore: cstore) -> [str]/~ { diff --git a/src/rustc/metadata/decoder.rs b/src/rustc/metadata/decoder.rs index 856ea024453..b738f1988c2 100644 --- a/src/rustc/metadata/decoder.rs +++ b/src/rustc/metadata/decoder.rs @@ -611,9 +611,9 @@ fn get_attributes(md: ebml::doc) -> [ast::attribute]/~ { // an attribute assert (vec::len(meta_items) == 1u); let meta_item = meta_items[0]; - attrs += - [{node: {style: ast::attr_outer, value: *meta_item}, - span: ast_util::dummy_sp()}]/~; + vec::push(attrs, + {node: {style: ast::attr_outer, value: *meta_item}, + span: ast_util::dummy_sp()}); }; } option::none { } diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs index 6c5b03a387d..1e4521276d2 100644 --- a/src/rustc/metadata/encoder.rs +++ b/src/rustc/metadata/encoder.rs @@ -119,9 +119,11 @@ fn encode_enum_variant_paths(ebml_w: ebml::writer, variants: [variant]/~, } } -fn add_to_index(ebml_w: ebml::writer, path: [ident]/~, &index: [entry<str>]/~, +fn add_to_index(ebml_w: ebml::writer, path: [ident]/&, &index: [entry<str>]/~, name: ident) { - let full_path = path + [name]/~; + let mut full_path = []/~; + vec::push_all(full_path, path); + vec::push(full_path, name); vec::push(index, {val: ast_util::path_name_i(full_path), pos: ebml_w.writer.tell()}); } @@ -171,15 +173,16 @@ fn encode_module_item_paths(ebml_w: ebml::writer, ecx: @encode_ctxt, ebml_w.wr_tag(tag_paths_data_mod) {|| encode_name_and_def_id(ebml_w, it.ident, it.id); encode_module_item_paths(ebml_w, ecx, _mod, - path + [it.ident]/~, + vec::append_one(path, it.ident), index); } } item_foreign_mod(nmod) { ebml_w.wr_tag(tag_paths_data_mod) {|| encode_name_and_def_id(ebml_w, it.ident, it.id); - encode_foreign_module_item_paths(ebml_w, nmod, - path + [it.ident]/~, index); + encode_foreign_module_item_paths( + ebml_w, nmod, + vec::append_one(path, it.ident), index); } } item_ty(_, tps, _) { @@ -197,7 +200,8 @@ fn encode_module_item_paths(ebml_w: ebml::writer, ecx: @encode_ctxt, add_to_index(ebml_w, path, index, it.ident); encode_named_def_id(ebml_w, it.ident, local_def(ctor.node.id)); - encode_class_item_paths(ebml_w, items, path + [it.ident]/~, + encode_class_item_paths(ebml_w, items, + vec::append_one(path, it.ident), index); } } @@ -451,11 +455,12 @@ fn encode_info_for_class(ecx: @encode_ctxt, ebml_w: ebml::writer, vec::push(*index, {val: m.id, pos: ebml_w.writer.tell()}); vec::push(*global_index, {val: m.id, pos: ebml_w.writer.tell()}); - let impl_path = path + [ast_map::path_name(m.ident)]/~; + let impl_path = vec::append_one(path, + ast_map::path_name(m.ident)); #debug("encode_info_for_class: doing %s %d", *m.ident, m.id); encode_info_for_method(ecx, ebml_w, impl_path, should_inline(m.attrs), id, m, - class_tps + m.tps); + vec::append(class_tps, m.tps)); } _ { /* don't encode private methods */ } } @@ -709,11 +714,13 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: ebml::writer, item: @item, encode_path(ebml_w, path, ast_map::path_name(item.ident)); ebml_w.end_tag(); - let impl_path = path + [ast_map::path_name(item.ident)]/~; + let impl_path = vec::append_one(path, + ast_map::path_name(item.ident)); for methods.each {|m| vec::push(*index, {val: m.id, pos: ebml_w.writer.tell()}); encode_info_for_method(ecx, ebml_w, impl_path, - should_inline(m.attrs), item.id, m, tps + m.tps); + should_inline(m.attrs), item.id, m, + vec::append(tps, m.tps)); } } item_iface(tps, rp, ms) { @@ -786,8 +793,8 @@ fn encode_info_for_items(ecx: @encode_ctxt, ebml_w: ebml::writer, item_class(tps, _, _, ctor, m_dtor, _) { #debug("encoding info for ctor %s %d", *i.ident, ctor.node.id); - *index += - [{val: ctor.node.id, pos: ebml_w.writer.tell()}]/~; + vec::push(*index, + {val: ctor.node.id, pos: ebml_w.writer.tell()}); encode_info_for_fn(ecx, ebml_w, ctor.node.id, i.ident, *pt, if tps.len() > 0u { some(ii_ctor(ctor, i.ident, tps, @@ -933,7 +940,7 @@ fn synthesize_crate_attrs(ecx: @encode_ctxt, crate: @crate) -> [attribute]/~ { attr::remove_meta_items_by_name(tmp, @"vers") }; - let meta_items = [name_item, vers_item]/~ + other_items; + let meta_items = vec::append([name_item, vers_item]/~, other_items); let link_item = attr::mk_list_item(@"link", meta_items); ret attr::mk_attr(link_item); @@ -942,18 +949,19 @@ fn synthesize_crate_attrs(ecx: @encode_ctxt, crate: @crate) -> [attribute]/~ { let mut attrs: [attribute]/~ = []/~; let mut found_link_attr = false; for crate.node.attrs.each {|attr| - attrs += + vec::push( + attrs, if *attr::get_attr_name(attr) != "link" { - [attr]/~ + attr } else { alt attr.node.value.node { meta_list(n, l) { found_link_attr = true;; - [synthesize_link_attr(ecx, l)]/~ + synthesize_link_attr(ecx, l) } - _ { [attr]/~ } + _ { attr } } - }; + }); } if !found_link_attr { vec::push(attrs, synthesize_link_attr(ecx, []/~)); } diff --git a/src/rustc/metadata/filesearch.rs b/src/rustc/metadata/filesearch.rs index c66c02bce9c..9d382467214 100644 --- a/src/rustc/metadata/filesearch.rs +++ b/src/rustc/metadata/filesearch.rs @@ -39,16 +39,19 @@ fn mk_filesearch(maybe_sysroot: option<path>, impl of filesearch for filesearch_impl { fn sysroot() -> path { self.sysroot } fn lib_search_paths() -> [path]/~ { - self.addl_lib_search_paths - + [make_target_lib_path(self.sysroot, self.target_triple)]/~ - + alt get_cargo_lib_path_nearest() { - result::ok(p) { [p]/~ } - result::err(p) { []/~ } - } - + alt get_cargo_lib_path() { - result::ok(p) { [p]/~ } - result::err(p) { []/~ } - } + let mut paths = self.addl_lib_search_paths; + + vec::push(paths, + make_target_lib_path(self.sysroot, self.target_triple)); + alt get_cargo_lib_path_nearest() { + result::ok(p) { vec::push(paths, p) } + result::err(p) { } + } + alt get_cargo_lib_path() { + result::ok(p) { vec::push(paths, p) } + result::err(p) { } + } + paths } fn get_target_lib_path() -> path { make_target_lib_path(self.sysroot, self.target_triple) @@ -91,7 +94,8 @@ fn relative_target_lib_path(target_triple: str) -> [path]/~ { fn make_target_lib_path(sysroot: path, target_triple: str) -> path { - let path = [sysroot]/~ + relative_target_lib_path(target_triple); + let path = vec::append([sysroot]/~, + relative_target_lib_path(target_triple)); let path = path::connect_many(path); ret path; } |
