Skip to content

Commit 4101d8c

Browse files
committed
rustc: Add a side table for legacy boxed traits, not filled in.
This is part of the transition to "@int as @trait".
1 parent 2df1688 commit 4101d8c

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

src/rustc/metadata/common.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ enum astencode_tag { // Reserves 0x50 -- 0x6f
120120
tag_table_spill = 0x5f,
121121
tag_table_method_map = 0x60,
122122
tag_table_vtable_map = 0x61,
123-
tag_table_adjustments = 0x62
123+
tag_table_adjustments = 0x62,
124+
tag_table_legacy_boxed_trait = 0x63
124125
}
125126

126127
type link_meta = {name: ~str, vers: ~str, extras_hash: ~str};

src/rustc/middle/astencode.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,12 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
832832
}
833833
}
834834
}
835+
836+
do option::iter(&tcx.legacy_boxed_traits.find(id)) |_x| {
837+
do ebml_w.tag(c::tag_table_legacy_boxed_trait) {
838+
ebml_w.id(id);
839+
}
840+
}
835841
}
836842

837843
trait doc_decoder_helpers {
@@ -963,6 +969,8 @@ fn decode_side_tables(xcx: extended_decode_ctxt,
963969
} else if tag == (c::tag_table_adjustments as uint) {
964970
let adj = @ty::deserialize_AutoAdjustment(val_dsr).tr(xcx);
965971
dcx.tcx.adjustments.insert(id, adj);
972+
} else if tag == (c::tag_table_legacy_boxed_trait as uint) {
973+
dcx.tcx.legacy_boxed_traits.insert(id, ());
966974
} else {
967975
xcx.dcx.tcx.sess.bug(
968976
fmt!("unknown tag found in side tables: %x", tag));

src/rustc/middle/ty.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,8 @@ type ctxt =
356356
inferred_modes: HashMap<ast::node_id, ast::mode>,
357357
adjustments: HashMap<ast::node_id, @AutoAdjustment>,
358358
normalized_cache: HashMap<t, t>,
359-
lang_items: middle::lang_items::LanguageItems};
359+
lang_items: middle::lang_items::LanguageItems,
360+
legacy_boxed_traits: HashMap<node_id, ()>};
360361

361362
enum tbox_flag {
362363
has_params = 1,
@@ -875,7 +876,8 @@ fn mk_ctxt(s: session::session,
875876
inferred_modes: HashMap(),
876877
adjustments: HashMap(),
877878
normalized_cache: new_ty_hash(),
878-
lang_items: move lang_items}
879+
lang_items: move lang_items,
880+
legacy_boxed_traits: HashMap()}
879881
}
880882

881883

0 commit comments

Comments
 (0)