Struct rustc_middle::ty::query::on_disk_cache::CacheDecoder [−][src]
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]
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]
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 error(&mut self, err: &str) -> Self::Error[src]
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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>,
pub 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]
&mut self,
_idx: usize,
f: F
) -> Result<T, Self::Error> where
F: FnOnce(&mut Self) -> Result<T, Self::Error>,
pub 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>,
pub 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>,
pub 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> FingerprintDecoder for CacheDecoder<'a, 'tcx>[src]
fn decode_fingerprint(&mut self) -> Result<Fingerprint, Self::Error>[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> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,
impl<D> FingerprintDecoder for D where
D: Decoder, [src]
D: Decoder,
pub default fn decode_fingerprint(
&mut self
) -> Result<Fingerprint, <D as Decoder>::Error>[src]
&mut self
) -> Result<Fingerprint, <D as Decoder>::Error>
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
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]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.