about summary refs log tree commit diff
path: root/src/rustc/metadata/encoder.rs
diff options
context:
space:
mode:
authorSimon BD <simon@server>2012-10-06 13:15:18 -0500
committerSimon BD <simon@server>2012-10-06 13:15:18 -0500
commit0e3bec0ced8d781cdd93996e7b8eeedb13f81ba8 (patch)
tree4738dcf131910061f5253ee5ef42960b9aef35f5 /src/rustc/metadata/encoder.rs
parentd4a54837d4ab28219727e1f1e0c131ba6033ba94 (diff)
parentf96a2a2ca16a44f869336f7e28fc261551c1184c (diff)
downloadrust-0e3bec0ced8d781cdd93996e7b8eeedb13f81ba8.tar.gz
rust-0e3bec0ced8d781cdd93996e7b8eeedb13f81ba8.zip
Merge remote-tracking branch 'original/incoming' into incoming
Diffstat (limited to 'src/rustc/metadata/encoder.rs')
-rw-r--r--src/rustc/metadata/encoder.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs
index 17d686b41d1..a65c25a46ef 100644
--- a/src/rustc/metadata/encoder.rs
+++ b/src/rustc/metadata/encoder.rs
@@ -34,6 +34,7 @@ export metadata_encoding_version;
 export def_to_str;
 export encode_ctxt;
 export write_type;
+export write_vstore;
 export encode_def_id;
 
 type abbrev_map = map::HashMap<ty::t, tyencode::ty_abbrev>;
@@ -116,7 +117,7 @@ fn encode_mutability(ebml_w: ebml::Writer, mt: class_mutability) {
 type entry<T> = {val: T, pos: uint};
 
 fn add_to_index(ecx: @encode_ctxt, ebml_w: ebml::Writer, path: &[ident],
-                &index: ~[entry<~str>], name: ident) {
+                index: &mut ~[entry<~str>], name: ident) {
     let mut full_path = ~[];
     full_path.push_all(path);
     full_path.push(name);
@@ -180,6 +181,16 @@ fn write_type(ecx: @encode_ctxt, ebml_w: ebml::Writer, typ: ty::t) {
     tyencode::enc_ty(ebml_w.writer, ty_str_ctxt, typ);
 }
 
+fn write_vstore(ecx: @encode_ctxt, ebml_w: ebml::Writer, vstore: ty::vstore) {
+    let ty_str_ctxt =
+        @{diag: ecx.diag,
+          ds: def_to_str,
+          tcx: ecx.tcx,
+          reachable: |a| reachable(ecx, a),
+          abbrevs: tyencode::ac_use_abbrevs(ecx.type_abbrevs)};
+    tyencode::enc_vstore(ebml_w.writer, ty_str_ctxt, vstore);
+}
+
 fn encode_type(ecx: @encode_ctxt, ebml_w: ebml::Writer, typ: ty::t) {
     ebml_w.start_tag(tag_items_data_item_type);
     write_type(ecx, ebml_w, typ);