Module rustc_data_structures::stable_hasher
source · [−]Structs
Controls what data we do or not not hash.
Whenever a HashStable implementation caches its
result, it needs to include HashingControls as part
of the key, to ensure that is does not produce an incorrect
result (for example, using a Fingerprint produced while
hashing Spans when a Fingeprint without Spans is
being requested)
When hashing something that ends up affecting properties like symbol names, we want these symbol names to be calculated independently of other factors like what architecture you’re compiling from.
Enums
Traits
Something that implements HashStable<CTX> can be hashed in a way that is
stable across multiple compilation sessions.
Implement this for types that can be turned into stable keys like, for example, for DefId that can be converted to a DefPathHash. This is used for bringing maps into a predictable order before hashing them.