about summary refs log tree commit diff
path: root/src/librustc_metadata/decoder.rs
diff options
context:
space:
mode:
authorSeo Sanghyeon <sanxiyn@gmail.com>2016-04-12 01:35:26 +0900
committerSeo Sanghyeon <sanxiyn@gmail.com>2016-04-12 01:35:26 +0900
commit2fd1f3e24a98d95b03ce74a480bca66dc6259fda (patch)
treee3cceac8b12f1a0557cdb90ddbb979553163748c /src/librustc_metadata/decoder.rs
parent23a7d30fc22ec27839433e1b457dcea7200d7e30 (diff)
downloadrust-2fd1f3e24a98d95b03ce74a480bca66dc6259fda.tar.gz
rust-2fd1f3e24a98d95b03ce74a480bca66dc6259fda.zip
Do not encode name when encoding DefKey
Diffstat (limited to 'src/librustc_metadata/decoder.rs')
-rw-r--r--src/librustc_metadata/decoder.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs
index 6a634d061fa..b5b27586a7f 100644
--- a/src/librustc_metadata/decoder.rs
+++ b/src/librustc_metadata/decoder.rs
@@ -17,6 +17,7 @@ use self::Family::*;
 use astencode::decode_inlined_item;
 use cstore::{self, crate_metadata};
 use common::*;
+use def_key;
 use encoder::def_to_u64;
 use index;
 use tls_context;
@@ -49,7 +50,7 @@ use std::str;
 
 use rbml::reader;
 use rbml;
-use serialize::Decodable;
+use rustc_serialize::Decodable;
 use syntax::attr;
 use syntax::parse::token::{self, IdentInterner};
 use syntax::ast;
@@ -1739,7 +1740,11 @@ pub fn def_key(cdata: Cmd, id: DefIndex) -> hir_map::DefKey {
     match reader::maybe_get_doc(item_doc, tag_def_key) {
         Some(def_key_doc) => {
             let mut decoder = reader::Decoder::new(def_key_doc);
-            hir_map::DefKey::decode(&mut decoder).unwrap()
+            let simple_key = def_key::DefKey::decode(&mut decoder).unwrap();
+            let name = reader::maybe_get_doc(item_doc, tag_paths_data_name).map(|name| {
+                token::intern(name.as_str_slice())
+            });
+            def_key::recover_def_key(simple_key, name)
         }
         None => {
             bug!("failed to find block with tag {:?} for item with family {:?}",