diff options
| author | Michael Woerister <michaelwoerister@posteo.net> | 2018-01-02 06:36:12 -0500 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@posteo> | 2018-01-08 14:15:17 +0100 |
| commit | c9d25e3269664885e485ffefddf71472dc398019 (patch) | |
| tree | 7ec518cbe806353ce89c6591272cb4456db8669a /src/librustc_metadata/decoder.rs | |
| parent | 78f24d86b84882a02c15f27768e831d0342a3f5d (diff) | |
| download | rust-c9d25e3269664885e485ffefddf71472dc398019.tar.gz rust-c9d25e3269664885e485ffefddf71472dc398019.zip | |
Use different DefIndex representation that is better suited for variable length integer encodings.
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 fb4a73891a3..a11e3b69ab1 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() ); |
