1
Fork 0

Remove unused hashing infra.

This commit is contained in:
Camille GILLOT 2022-08-07 17:33:37 +02:00
parent 8a4cbcf220
commit 5d75ca5ef4
3 changed files with 9 additions and 26 deletions

View file

@ -631,14 +631,12 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
) -> (Fingerprint, Fingerprint) { ) -> (Fingerprint, Fingerprint) {
self.tcx.with_stable_hashing_context(|mut hcx| { self.tcx.with_stable_hashing_context(|mut hcx| {
let mut stable_hasher = StableHasher::new(); let mut stable_hasher = StableHasher::new();
hcx.with_hir_bodies(true, node.def_id(), bodies, |hcx| { hcx.with_hir_bodies(node.def_id(), bodies, |hcx| {
node.hash_stable(hcx, &mut stable_hasher) node.hash_stable(hcx, &mut stable_hasher)
}); });
let hash_including_bodies = stable_hasher.finish(); let hash_including_bodies = stable_hasher.finish();
let mut stable_hasher = StableHasher::new(); let mut stable_hasher = StableHasher::new();
hcx.with_hir_bodies(false, node.def_id(), bodies, |hcx| { hcx.without_hir_bodies(|hcx| node.hash_stable(hcx, &mut stable_hasher));
node.hash_stable(hcx, &mut stable_hasher)
});
let hash_without_bodies = stable_hasher.finish(); let hash_without_bodies = stable_hasher.finish();
(hash_including_bodies, hash_without_bodies) (hash_including_bodies, hash_without_bodies)
}) })

View file

@ -40,11 +40,8 @@ pub struct StableHashingContext<'a> {
#[derive(Clone, Copy)] #[derive(Clone, Copy)]
pub(super) enum BodyResolver<'tcx> { pub(super) enum BodyResolver<'tcx> {
Forbidden, Forbidden,
Traverse { Ignore,
hash_bodies: bool, Traverse { owner: LocalDefId, bodies: &'tcx SortedMap<hir::ItemLocalId, &'tcx hir::Body<'tcx>> },
owner: LocalDefId,
bodies: &'tcx SortedMap<hir::ItemLocalId, &'tcx hir::Body<'tcx>>,
},
} }
impl<'a> StableHashingContext<'a> { impl<'a> StableHashingContext<'a> {
@ -98,32 +95,20 @@ impl<'a> StableHashingContext<'a> {
Self::new_with_or_without_spans(sess, definitions, cstore, source_span, always_ignore_spans) Self::new_with_or_without_spans(sess, definitions, cstore, source_span, always_ignore_spans)
} }
/// Allow hashing
#[inline] #[inline]
pub fn while_hashing_hir_bodies(&mut self, hb: bool, f: impl FnOnce(&mut Self)) { pub fn without_hir_bodies(&mut self, f: impl FnOnce(&mut StableHashingContext<'_>)) {
let prev = match &mut self.body_resolver { f(&mut StableHashingContext { body_resolver: BodyResolver::Ignore, ..self.clone() });
BodyResolver::Forbidden => panic!("Hashing HIR bodies is forbidden."),
BodyResolver::Traverse { ref mut hash_bodies, .. } => {
std::mem::replace(hash_bodies, hb)
}
};
f(self);
match &mut self.body_resolver {
BodyResolver::Forbidden => unreachable!(),
BodyResolver::Traverse { ref mut hash_bodies, .. } => *hash_bodies = prev,
}
} }
#[inline] #[inline]
pub fn with_hir_bodies( pub fn with_hir_bodies(
&mut self, &mut self,
hash_bodies: bool,
owner: LocalDefId, owner: LocalDefId,
bodies: &SortedMap<hir::ItemLocalId, &hir::Body<'_>>, bodies: &SortedMap<hir::ItemLocalId, &hir::Body<'_>>,
f: impl FnOnce(&mut StableHashingContext<'_>), f: impl FnOnce(&mut StableHashingContext<'_>),
) { ) {
f(&mut StableHashingContext { f(&mut StableHashingContext {
body_resolver: BodyResolver::Traverse { hash_bodies, owner, bodies }, body_resolver: BodyResolver::Traverse { owner, bodies },
..self.clone() ..self.clone()
}); });
} }

View file

@ -12,8 +12,8 @@ impl<'ctx> rustc_hir::HashStableContext for StableHashingContext<'ctx> {
let hcx = self; let hcx = self;
match hcx.body_resolver { match hcx.body_resolver {
BodyResolver::Forbidden => panic!("Hashing HIR bodies is forbidden."), BodyResolver::Forbidden => panic!("Hashing HIR bodies is forbidden."),
BodyResolver::Traverse { hash_bodies: false, .. } => {} BodyResolver::Ignore => {}
BodyResolver::Traverse { hash_bodies: true, owner, bodies } => { BodyResolver::Traverse { owner, bodies } => {
assert_eq!(id.hir_id.owner, owner); assert_eq!(id.hir_id.owner, owner);
bodies[&id.hir_id.local_id].hash_stable(hcx, hasher); bodies[&id.hir_id.local_id].hash_stable(hcx, hasher);
} }