Struct rustc_query_system::ich::hcx::StableHashingContext [−][src]
pub struct StableHashingContext<'a> {
definitions: &'a Definitions,
cstore: &'a dyn CrateStore,
pub(super) body_resolver: BodyResolver<'a>,
hash_spans: bool,
pub(super) node_id_hashing_mode: NodeIdHashingMode,
raw_source_map: &'a SourceMap,
caching_source_map: Option<CachingSourceMapView<'a>>,
}
Expand description
This is the context state available during incr. comp. hashing. It contains
enough information to transform DefId
s and HirId
s into stable DefPath
s (i.e.,
a reference to the TyCtxt
) and it holds a few caches for speeding up various
things (e.g., each DefId
/DefPath
is only hashed once).
Fields
definitions: &'a Definitions
cstore: &'a dyn CrateStore
body_resolver: BodyResolver<'a>
hash_spans: bool
node_id_hashing_mode: NodeIdHashingMode
raw_source_map: &'a SourceMap
caching_source_map: Option<CachingSourceMapView<'a>>
Implementations
fn new_with_or_without_spans(
sess: &'a Session,
definitions: &'a Definitions,
cstore: &'a dyn CrateStore,
always_ignore_spans: bool
) -> Self
pub fn new(
sess: &'a Session,
definitions: &'a Definitions,
cstore: &'a dyn CrateStore
) -> Self
pub fn ignore_spans(
sess: &'a Session,
definitions: &'a Definitions,
cstore: &'a dyn CrateStore
) -> Self
Allow hashing
pub fn with_hir_bodies(
&mut self,
hash_bodies: bool,
owner: LocalDefId,
bodies: &'a IndexVec<ItemLocalId, Option<&'a Body<'a>>>,
f: impl FnOnce(&mut Self)
)
pub fn with_node_id_hashing_mode<F: FnOnce(&mut Self)>(
&mut self,
mode: NodeIdHashingMode,
f: F
)
Trait Implementations
Auto Trait Implementations
impl<'a> !RefUnwindSafe for StableHashingContext<'a>
impl<'a> !Send for StableHashingContext<'a>
impl<'a> !Sync for StableHashingContext<'a>
impl<'a> Unpin for StableHashingContext<'a>
impl<'a> !UnwindSafe for StableHashingContext<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 192 bytes