diff options
| author | bors <bors@rust-lang.org> | 2018-01-13 09:11:59 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-01-13 09:11:59 +0000 |
| commit | ca092937aa43f7ad166f67bf4eb96753293e56f9 (patch) | |
| tree | 4ab2bb49058b696e28907b63f307695c7d61ef7b /src/librustc_metadata/decoder.rs | |
| parent | 6cf081c8c54e92702f350fa30d77561540324401 (diff) | |
| parent | c9d25e3269664885e485ffefddf71472dc398019 (diff) | |
| download | rust-ca092937aa43f7ad166f67bf4eb96753293e56f9.tar.gz rust-ca092937aa43f7ad166f67bf4eb96753293e56f9.zip | |
Auto merge of #47181 - michaelwoerister:var-len-def-index, r=eddyb
Use DefIndex encoding that works better with on-disk variable length integer representations. Use the least instead of the most significant bit for representing the address space. r? @eddyb
Diffstat (limited to 'src/librustc_metadata/decoder.rs')
| -rw-r--r-- | src/librustc_metadata/decoder.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index 7023bd1e6a9..c62b8a692d7 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -18,7 +18,8 @@ use rustc::hir; use rustc::middle::cstore::{LinkagePreference, ExternConstBody, ExternBodyNestedBodies}; use rustc::hir::def::{self, Def, CtorKind}; -use rustc::hir::def_id::{CrateNum, DefId, DefIndex, CRATE_DEF_INDEX, LOCAL_CRATE}; +use rustc::hir::def_id::{CrateNum, DefId, DefIndex, + CRATE_DEF_INDEX, LOCAL_CRATE}; use rustc::ich::Fingerprint; use rustc::middle::lang_items; use rustc::mir; @@ -36,7 +37,6 @@ use std::rc::Rc; use std::u32; use rustc_serialize::{Decodable, Decoder, SpecializedDecoder, opaque}; -use rustc_data_structures::indexed_vec::Idx; use syntax::attr; use syntax::ast::{self, Ident}; use syntax::codemap; @@ -264,7 +264,7 @@ impl<'a, 'tcx> SpecializedDecoder<DefId> for DecodeContext<'a, 'tcx> { impl<'a, 'tcx> SpecializedDecoder<DefIndex> for DecodeContext<'a, 'tcx> { #[inline] fn specialized_decode(&mut self) -> Result<DefIndex, Self::Error> { - Ok(DefIndex::from_u32(self.read_u32()?)) + Ok(DefIndex::from_raw_u32(self.read_u32()?)) } } @@ -453,7 +453,7 @@ impl<'a, 'tcx> CrateMetadata { if !self.is_proc_macro(index) { self.entry(index).kind.to_def(self.local_def_id(index)) } else { - let kind = self.proc_macros.as_ref().unwrap()[index.as_usize() - 1].1.kind(); + let kind = self.proc_macros.as_ref().unwrap()[index.to_proc_macro_index()].1.kind(); Some(Def::Macro(self.local_def_id(index), kind)) } } @@ -634,7 +634,7 @@ impl<'a, 'tcx> CrateMetadata { let def = Def::Macro( DefId { krate: self.cnum, - index: DefIndex::new(id + 1) + index: DefIndex::from_proc_macro_index(id), }, ext.kind() ); |
