// want to pick up on a reference changing its target, so we hash the NodeIds
// in "DefPath Mode".
- fn hash_item_id(&mut self, id: hir::ItemId, hasher: &mut StableHasher) {
+ fn hash_reference_to_item(&mut self, id: hir::HirId, hasher: &mut StableHasher) {
let hcx = self;
- let hir::ItemId { id } = id;
hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| {
id.hash_stable(hcx, hasher);
})
}
- fn hash_impl_item_id(&mut self, id: hir::ImplItemId, hasher: &mut StableHasher) {
- let hcx = self;
- let hir::ImplItemId { hir_id } = id;
-
- hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| {
- hir_id.hash_stable(hcx, hasher);
- })
- }
-
- fn hash_trait_item_id(&mut self, id: hir::TraitItemId, hasher: &mut StableHasher) {
- let hcx = self;
- let hir::TraitItemId { hir_id } = id;
-
- hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| {
- hir_id.hash_stable(hcx, hasher);
- })
- }
-
fn hash_hir_mod(&mut self, module: &hir::Mod<'_>, hasher: &mut StableHasher) {
let hcx = self;
let hir::Mod { inner: ref inner_span, ref item_ids } = *module;
fn hash_def_id(&mut self, _: DefId, hasher: &mut StableHasher);
fn hash_hir_id(&mut self, _: HirId, hasher: &mut StableHasher);
fn hash_body_id(&mut self, _: BodyId, hasher: &mut StableHasher);
- fn hash_item_id(&mut self, _: ItemId, hasher: &mut StableHasher);
- fn hash_impl_item_id(&mut self, _: ImplItemId, hasher: &mut StableHasher);
- fn hash_trait_item_id(&mut self, _: TraitItemId, hasher: &mut StableHasher);
+ fn hash_reference_to_item(&mut self, _: HirId, hasher: &mut StableHasher);
fn hash_hir_mod(&mut self, _: &Mod<'_>, hasher: &mut StableHasher);
fn hash_hir_expr(&mut self, _: &Expr<'_>, hasher: &mut StableHasher);
fn hash_hir_ty(&mut self, _: &Ty<'_>, hasher: &mut StableHasher);
impl<HirCtx: crate::HashStableContext> HashStable<HirCtx> for ItemId {
fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) {
- hcx.hash_item_id(*self, hasher)
+ hcx.hash_reference_to_item(self.id, hasher)
}
}
impl<HirCtx: crate::HashStableContext> HashStable<HirCtx> for ImplItemId {
fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) {
- hcx.hash_impl_item_id(*self, hasher)
+ hcx.hash_reference_to_item(self.hir_id, hasher)
}
}
impl<HirCtx: crate::HashStableContext> HashStable<HirCtx> for TraitItemId {
fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) {
- hcx.hash_trait_item_id(*self, hasher)
+ hcx.hash_reference_to_item(self.hir_id, hasher)
}
}