rustc: Eliminate metadata's dependency on trans

This commit is contained in:
Brian Anderson 2012-05-13 17:01:52 -07:00
parent ecf290d448
commit a2572fe77e
10 changed files with 123 additions and 68 deletions

View file

@ -17,7 +17,6 @@ import std::serialization::serializer_helpers;
import std::serialization::deserializer_helpers;
import std::prettyprint::serializer;
import std::smallintmap::map;
import middle::trans::common::maps;
import middle::{ty, typeck, last_use, ast_map};
import middle::typeck::{method_origin,
serialize_method_origin,
@ -657,7 +656,7 @@ impl helpers for ebml::ebml_deserializer {
impl helpers for @e::encode_ctxt {
fn ty_str_ctxt() -> @tyencode::ctxt {
@{ds: e::def_to_str,
tcx: self.ccx.tcx,
tcx: self.tcx,
reachable: encoder::reachable(self, _),
abbrevs: tyencode::ac_use_abbrevs(self.type_abbrevs)}
}
@ -721,8 +720,7 @@ fn encode_side_tables_for_ii(ecx: @e::encode_ctxt,
fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
ebml_w: ebml::writer,
id: ast::node_id) {
let ccx = ecx.ccx;
let tcx = ccx.tcx;
let tcx = ecx.tcx;
#debug["Encoding side tables for id %d", id];
@ -796,25 +794,25 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
// }
//}
option::iter(ccx.maps.mutbl_map.find(id)) {|_m|
option::iter(ecx.maps.mutbl_map.find(id)) {|_m|
ebml_w.tag(c::tag_table_mutbl) {||
ebml_w.id(id);
}
}
option::iter(ccx.maps.copy_map.find(id)) {|_m|
option::iter(ecx.maps.copy_map.find(id)) {|_m|
ebml_w.tag(c::tag_table_copy) {||
ebml_w.id(id);
}
}
option::iter(ccx.maps.spill_map.find(id)) {|_m|
option::iter(ecx.maps.spill_map.find(id)) {|_m|
ebml_w.tag(c::tag_table_spill) {||
ebml_w.id(id);
}
}
option::iter(ccx.maps.last_uses.find(id)) {|m|
option::iter(ecx.maps.last_uses.find(id)) {|m|
ebml_w.tag(c::tag_table_last_use) {||
ebml_w.id(id);
ebml_w.tag(c::tag_table_val) {||
@ -826,7 +824,7 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
// impl_map is not used except when emitting metadata,
// don't need to keep it.
option::iter(ccx.maps.method_map.find(id)) {|mo|
option::iter(ecx.maps.method_map.find(id)) {|mo|
ebml_w.tag(c::tag_table_method_map) {||
ebml_w.id(id);
ebml_w.tag(c::tag_table_val) {||
@ -835,7 +833,7 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
}
}
option::iter(ccx.maps.vtable_map.find(id)) {|dr|
option::iter(ecx.maps.vtable_map.find(id)) {|dr|
ebml_w.tag(c::tag_table_vtable_map) {||
ebml_w.id(id);
ebml_w.tag(c::tag_table_val) {||