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 HygieneDecodeContext

Implementations

impl<'a, 'tcx> CacheDecoder<'a, 'tcx>[src]

Trait Implementations

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]

fn decode(d: &mut CacheDecoder<'a, 'tcx>) -> Result<Self, String>[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]

fn decode(d: &mut CacheDecoder<'a, 'tcx>) -> Result<Self, String>[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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

fn read_option<T, F>(&mut self, f: F) -> Result<T, Self::Error> where
    F: FnMut(&mut Self, bool) -> Result<T, Self::Error>, 
[src]

fn read_seq<T, F>(&mut self, f: F) -> Result<T, Self::Error> where
    F: FnOnce(&mut Self, usize) -> Result<T, Self::Error>, 
[src]

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]

fn read_map<T, F>(&mut self, f: F) -> Result<T, Self::Error> where
    F: FnOnce(&mut Self, usize) -> Result<T, Self::Error>, 
[src]

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]

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]

impl<'a, 'tcx> DecoderWithPosition for CacheDecoder<'a, 'tcx>[src]

fn position(&self) -> usize[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]

fn with_position<F, R>(&mut self, pos: usize, f: F) -> R where
    F: FnOnce(&mut Self) -> R, 
[src]

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> Any for T where
    T: 'static + ?Sized, 
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> MaybeResult<T> for T[src]

type Error = !

pub fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T[src]

pub fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

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]