From 5875d7b03c4dba91be95cacd3f02bdb7ccc90a0e Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Fri, 25 Feb 2022 17:51:28 +0000 Subject: [PATCH] "Reset" the hashing context before stable hashing the types --- compiler/rustc_middle/src/ty/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_middle/src/ty/mod.rs b/compiler/rustc_middle/src/ty/mod.rs index 8f067de366591..34d18281c59fa 100644 --- a/compiler/rustc_middle/src/ty/mod.rs +++ b/compiler/rustc_middle/src/ty/mod.rs @@ -31,7 +31,7 @@ use rustc_ast as ast; use rustc_attr as attr; use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap}; use rustc_data_structures::intern::Interned; -use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; +use rustc_data_structures::stable_hasher::{HashStable, NodeIdHashingMode, StableHasher}; use rustc_data_structures::tagged_ptr::CopyTaggedPtr; use rustc_hir as hir; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; @@ -471,7 +471,11 @@ impl<'a, 'tcx> HashStable> for Ty<'tcx> { let stable_hash: Fingerprint = { let mut hasher = StableHasher::new(); - kind.hash_stable(hcx, &mut hasher); + hcx.while_hashing_spans(false, |hcx| { + hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { + kind.hash_stable(hcx, &mut hasher) + }) + }); hasher.finish() }; stable_hash.hash_stable(hcx, hasher);