Trait rustc_ap_rustc_span::HashStableContext [−][src]
pub trait HashStableContext {
fn hash_def_id(&mut self, _: DefId, hasher: &mut StableHasher);
fn expn_id_cache() -> &'static LocalKey<ExpnIdCache>;
fn hash_crate_num(&mut self, _: CrateNum, hasher: &mut StableHasher);
fn hash_spans(&self) -> bool;
fn span_data_to_lines_and_cols(
&mut self,
span: &SpanData
) -> Option<(Lrc<SourceFile>, usize, BytePos, usize, BytePos)>;
}Expand description
Requirements for a StableHashingContext to be used in this crate.
This is a hack to allow using the HashStable_Generic derive macro
instead of implementing everything in rustc_middle.
Required methods
fn hash_def_id(&mut self, _: DefId, hasher: &mut StableHasher)[src]
fn expn_id_cache() -> &'static LocalKey<ExpnIdCache>[src]
fn expn_id_cache() -> &'static LocalKey<ExpnIdCache>[src]Obtains a cache for storing the Fingerprint of an ExpnId.
This method allows us to have multiple HashStableContext implementations
that hash things in a different way, without the results of one polluting
the cache of the other.
fn hash_crate_num(&mut self, _: CrateNum, hasher: &mut StableHasher)[src]
fn hash_spans(&self) -> bool[src]
fn span_data_to_lines_and_cols(
&mut self,
span: &SpanData
) -> Option<(Lrc<SourceFile>, usize, BytePos, usize, BytePos)>[src]
&mut self,
span: &SpanData
) -> Option<(Lrc<SourceFile>, usize, BytePos, usize, BytePos)>