diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-10-02 16:19:03 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-10-02 16:19:03 -0700 |
| commit | 4101d8c22d239eba5b2202faa28db54b5e1a4909 (patch) | |
| tree | 9de4396ac9ec454e2e4387fcbfc8b41c86a62179 /src/rustc | |
| parent | 2df168812d3abd3878a55058b12d911ff17c95ad (diff) | |
| download | rust-4101d8c22d239eba5b2202faa28db54b5e1a4909.tar.gz rust-4101d8c22d239eba5b2202faa28db54b5e1a4909.zip | |
rustc: Add a side table for legacy boxed traits, not filled in.
This is part of the transition to "@int as @Trait".
Diffstat (limited to 'src/rustc')
| -rw-r--r-- | src/rustc/metadata/common.rs | 3 | ||||
| -rw-r--r-- | src/rustc/middle/astencode.rs | 8 | ||||
| -rw-r--r-- | src/rustc/middle/ty.rs | 6 |
3 files changed, 14 insertions, 3 deletions
diff --git a/src/rustc/metadata/common.rs b/src/rustc/metadata/common.rs index 2d62bf7b4a2..1857abf2cf2 100644 --- a/src/rustc/metadata/common.rs +++ b/src/rustc/metadata/common.rs @@ -120,7 +120,8 @@ enum astencode_tag { // Reserves 0x50 -- 0x6f tag_table_spill = 0x5f, tag_table_method_map = 0x60, tag_table_vtable_map = 0x61, - tag_table_adjustments = 0x62 + tag_table_adjustments = 0x62, + tag_table_legacy_boxed_trait = 0x63 } type link_meta = {name: ~str, vers: ~str, extras_hash: ~str}; diff --git a/src/rustc/middle/astencode.rs b/src/rustc/middle/astencode.rs index 9332ebe9770..92af75ef84a 100644 --- a/src/rustc/middle/astencode.rs +++ b/src/rustc/middle/astencode.rs @@ -832,6 +832,12 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt, } } } + + do option::iter(&tcx.legacy_boxed_traits.find(id)) |_x| { + do ebml_w.tag(c::tag_table_legacy_boxed_trait) { + ebml_w.id(id); + } + } } trait doc_decoder_helpers { @@ -963,6 +969,8 @@ fn decode_side_tables(xcx: extended_decode_ctxt, } else if tag == (c::tag_table_adjustments as uint) { let adj = @ty::deserialize_AutoAdjustment(val_dsr).tr(xcx); dcx.tcx.adjustments.insert(id, adj); + } else if tag == (c::tag_table_legacy_boxed_trait as uint) { + dcx.tcx.legacy_boxed_traits.insert(id, ()); } else { xcx.dcx.tcx.sess.bug( fmt!("unknown tag found in side tables: %x", tag)); diff --git a/src/rustc/middle/ty.rs b/src/rustc/middle/ty.rs index a96388e9d77..5afc60f58ac 100644 --- a/src/rustc/middle/ty.rs +++ b/src/rustc/middle/ty.rs @@ -356,7 +356,8 @@ type ctxt = inferred_modes: HashMap<ast::node_id, ast::mode>, adjustments: HashMap<ast::node_id, @AutoAdjustment>, normalized_cache: HashMap<t, t>, - lang_items: middle::lang_items::LanguageItems}; + lang_items: middle::lang_items::LanguageItems, + legacy_boxed_traits: HashMap<node_id, ()>}; enum tbox_flag { has_params = 1, @@ -875,7 +876,8 @@ fn mk_ctxt(s: session::session, inferred_modes: HashMap(), adjustments: HashMap(), normalized_cache: new_ty_hash(), - lang_items: move lang_items} + lang_items: move lang_items, + legacy_boxed_traits: HashMap()} } |
