From 42e645ca9acb7166623bee25dd4143dd266ae4a7 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 4 Dec 2014 10:29:41 -0500 Subject: [PATCH] Patch more metadata decoding problems. --- src/librustc/metadata/decoder.rs | 11 ++++++----- src/librustc/metadata/encoder.rs | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 0a001d475046..a168ac7fa9a7 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -172,14 +172,15 @@ fn item_visibility(item: rbml::Doc) -> ast::Visibility { } fn item_sort(item: rbml::Doc) -> char { - // NB(pcwalton): The default of 'r' here is relied upon in - // `is_associated_type` below. - let mut ret = 'r'; + let mut ret = None; reader::tagged_docs(item, tag_item_trait_item_sort, |doc| { - ret = doc.as_str_slice().as_bytes()[0] as char; + ret = Some(doc.as_str_slice().as_bytes()[0] as char); false }); - ret + match ret { + Some(r) => r, + None => panic!("No item_sort found") + } } fn item_symbol(item: rbml::Doc) -> String { diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 9378ff028e0a..20e7cb63133d 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -898,7 +898,7 @@ fn encode_info_for_associated_type(ecx: &EncodeContext, encode_visibility(rbml_w, associated_type.vis); encode_family(rbml_w, 'y'); encode_parent_item(rbml_w, local_def(parent_id)); - encode_item_sort(rbml_w, 'r'); + encode_item_sort(rbml_w, 't'); let stab = stability::lookup(ecx.tcx, associated_type.def_id); encode_stability(rbml_w, stab); @@ -1404,6 +1404,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_path(rbml_w, path.clone().chain(Some(elem).into_iter())); + encode_item_sort(rbml_w, 't'); encode_family(rbml_w, 'y'); is_nonstatic_method = false;