Struct rustc_middle::ty::query::on_disk_cache::CacheDecoder [−][src]
pub struct CacheDecoder<'a, 'tcx> {
tcx: TyCtxt<'tcx>,
opaque: Decoder<'a>,
source_map: &'a SourceMap,
cnum_map: &'a IndexVec<CrateNum, Option<CrateNum>>,
file_index_to_file: &'a Lock<FxHashMap<SourceFileIndex, Lrc<SourceFile>>>,
file_index_to_stable_id: &'a FxHashMap<SourceFileIndex, StableSourceFileId>,
alloc_decoding_session: AllocDecodingSession<'a>,
syntax_contexts: &'a FxHashMap<u32, AbsoluteBytePos>,
expn_data: &'a FxHashMap<u32, AbsoluteBytePos>,
hygiene_context: &'a HygieneDecodeContext,
}Expand description
A decoder that can read from the incremental compilation cache. It is similar to the one
we use for crate metadata decoding in that it can rebase spans and eventually
will also handle things that contain Ty instances.
Fields
tcx: TyCtxt<'tcx>opaque: Decoder<'a>source_map: &'a SourceMapcnum_map: &'a IndexVec<CrateNum, Option<CrateNum>>file_index_to_file: &'a Lock<FxHashMap<SourceFileIndex, Lrc<SourceFile>>>file_index_to_stable_id: &'a FxHashMap<SourceFileIndex, StableSourceFileId>alloc_decoding_session: AllocDecodingSession<'a>syntax_contexts: &'a FxHashMap<u32, AbsoluteBytePos>expn_data: &'a FxHashMap<u32, AbsoluteBytePos>hygiene_context: &'a HygieneDecodeContextImplementations
impl<'a, 'tcx> CacheDecoder<'a, 'tcx>[src]
impl<'a, 'tcx> CacheDecoder<'a, 'tcx>[src]fn file_index_to_file(&self, index: SourceFileIndex) -> Lrc<SourceFile>[src]
Trait Implementations
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [Node<'tcx>][src]
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [Node<'tcx>][src]fn decode(d: &mut CacheDecoder<'a, 'tcx>) -> Result<Self, String>[src]
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [(Predicate<'tcx>, Span)][src]
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [(Predicate<'tcx>, Span)][src]fn decode(d: &mut CacheDecoder<'a, 'tcx>) -> Result<Self, String>[src]
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [InlineAsmTemplatePiece][src]
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [InlineAsmTemplatePiece][src]fn decode(d: &mut CacheDecoder<'a, 'tcx>) -> Result<Self, String>[src]
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [Span][src]
impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for &'tcx [Span][src]fn decode(d: &mut CacheDecoder<'a, 'tcx>) -> Result<Self, String>[src]
impl<'a, 'tcx> Decoder for CacheDecoder<'a, 'tcx>[src]
impl<'a, 'tcx> Decoder for CacheDecoder<'a, 'tcx>[src]type Error = String
fn read_nil(&mut self) -> Result<(), Self::Error>[src]
fn read_u128(&mut self) -> Result<u128, Self::Error>[src]
fn read_u64(&mut self) -> Result<u64, Self::Error>[src]
fn read_u32(&mut self) -> Result<u32, Self::Error>[src]
fn read_u16(&mut self) -> Result<u16, Self::Error>[src]
fn read_u8(&mut self) -> Result<u8, Self::Error>[src]
fn read_usize(&mut self) -> Result<usize, Self::Error>[src]
fn read_i128(&mut self) -> Result<i128, Self::Error>[src]
fn read_i64(&mut self) -> Result<i64, Self::Error>[src]
fn read_i32(&mut self) -> Result<i32, Self::Error>[src]
fn read_i16(&mut self) -> Result<i16, Self::Error>[src]
fn read_i8(&mut self) -> Result<i8, Self::Error>[src]
fn read_isize(&mut self) -> Result<isize, Self::Error>[src]
fn read_bool(&mut self) -> Result<bool, Self::Error>[src]
fn read_f64(&mut self) -> Result<f64, Self::Error>[src]
fn read_f32(&mut self) -> Result<f32, Self::Error>[src]
fn read_char(&mut self) -> Result<char, Self::Error>[src]
fn read_str(&mut self) -> Result<Cow<'_, str>, Self::Error>[src]
fn read_raw_bytes_into(&mut self, bytes: &mut [u8]) -> Result<(), Self::Error>[src]
fn error(&mut self, err: &str) -> Self::Error[src]
fn read_enum<T, F>(&mut self, _name: &str, f: F) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_enum_variant<T, F>(
&mut self,
_names: &[&str],
f: F
) -> Result<T, Self::Error> where
F: FnMut(&mut Self, usize) -> Result<T, Self::Error>, [src]
&mut self,
_names: &[&str],
f: F
) -> Result<T, Self::Error> where
F: FnMut(&mut Self, usize) -> Result<T, Self::Error>,
fn read_enum_variant_arg<T, F>(
&mut self,
_a_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_a_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_enum_struct_variant<T, F>(
&mut self,
names: &[&str],
f: F
) -> Result<T, Self::Error> where
F: FnMut(&mut Self, usize) -> Result<T, Self::Error>, [src]
&mut self,
names: &[&str],
f: F
) -> Result<T, Self::Error> where
F: FnMut(&mut Self, usize) -> Result<T, Self::Error>,
fn read_enum_struct_variant_field<T, F>(
&mut self,
_f_name: &str,
f_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_f_name: &str,
f_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_struct<T, F>(
&mut self,
_s_name: &str,
_len: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_s_name: &str,
_len: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_struct_field<T, F>(
&mut self,
_f_name: &str,
_f_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_f_name: &str,
_f_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_tuple<T, F>(&mut self, _len: usize, f: F) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_tuple_arg<T, F>(
&mut self,
_a_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_a_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_tuple_struct<T, F>(
&mut self,
_s_name: &str,
len: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_s_name: &str,
len: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_tuple_struct_arg<T, F>(
&mut self,
a_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
a_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_option<T, F>(&mut self, f: F) -> Result<T, Self::Error> where
F: FnMut(&mut Self, bool) -> Result<T, Self::Error>, [src]
F: FnMut(&mut Self, bool) -> Result<T, Self::Error>,
fn read_seq<T, F>(&mut self, f: F) -> Result<T, Self::Error> where
F: FnOnce(&mut Self, usize) -> Result<T, Self::Error>, [src]
F: FnOnce(&mut Self, usize) -> Result<T, Self::Error>,
fn read_seq_elt<T, F>(&mut self, _idx: usize, f: F) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_map<T, F>(&mut self, f: F) -> Result<T, Self::Error> where
F: FnOnce(&mut Self, usize) -> Result<T, Self::Error>, [src]
F: FnOnce(&mut Self, usize) -> Result<T, Self::Error>,
fn read_map_elt_key<T, F>(
&mut self,
_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
fn read_map_elt_val<T, F>(
&mut self,
_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>, [src]
&mut self,
_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
impl<'a, 'tcx> DecoderWithPosition for CacheDecoder<'a, 'tcx>[src]
impl<'a, 'tcx> DecoderWithPosition for CacheDecoder<'a, 'tcx>[src]impl<'a, 'tcx> TyDecoder<'tcx> for CacheDecoder<'a, 'tcx>[src]
impl<'a, 'tcx> TyDecoder<'tcx> for CacheDecoder<'a, 'tcx>[src]const CLEAR_CROSS_CRATE: bool[src]
fn tcx(&self) -> TyCtxt<'tcx>[src]
fn position(&self) -> usize[src]
fn peek_byte(&self) -> u8[src]
fn cached_ty_for_shorthand<F>(
&mut self,
shorthand: usize,
or_insert_with: F
) -> Result<Ty<'tcx>, Self::Error> where
F: FnOnce(&mut Self) -> Result<Ty<'tcx>, Self::Error>, [src]
&mut self,
shorthand: usize,
or_insert_with: F
) -> Result<Ty<'tcx>, Self::Error> where
F: FnOnce(&mut Self) -> Result<Ty<'tcx>, Self::Error>,
fn with_position<F, R>(&mut self, pos: usize, f: F) -> R where
F: FnOnce(&mut Self) -> R, [src]
F: FnOnce(&mut Self) -> R,
fn map_encoded_cnum_to_current(&self, cnum: CrateNum) -> CrateNum[src]
fn decode_alloc_id(&mut self) -> Result<AllocId, Self::Error>[src]
fn positioned_at_shorthand(&self) -> bool[src]
Auto Trait Implementations
impl<'a, 'tcx> !RefUnwindSafe for CacheDecoder<'a, 'tcx>
impl<'a, 'tcx> !Send for CacheDecoder<'a, 'tcx>
impl<'a, 'tcx> !Sync for CacheDecoder<'a, 'tcx>
impl<'a, 'tcx> Unpin for CacheDecoder<'a, 'tcx>
impl<'a, 'tcx> !UnwindSafe for CacheDecoder<'a, 'tcx>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> MaybeResult<T> for T[src]
impl<T> MaybeResult<T> for T[src]impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,