about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <github333195615777966@oli-obk.de>2025-03-19 14:18:15 +0000
committerOli Scherer <github333195615777966@oli-obk.de>2025-03-20 16:20:41 +0000
commit485c14f373c4bd2365283375ceba5fa105451dbe (patch)
treeeea2acdd6094b3022ea3fe1420b00c2f23bd5f4b
parent87e60a7d285f8ea560189024f85f2b194d1f168f (diff)
downloadrust-485c14f373c4bd2365283375ceba5fa105451dbe.tar.gz
rust-485c14f373c4bd2365283375ceba5fa105451dbe.zip
Make `crate_hash` not iterate over `hir_crate` owners anymore
-rw-r--r--compiler/rustc_middle/src/hir/map.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/compiler/rustc_middle/src/hir/map.rs b/compiler/rustc_middle/src/hir/map.rs
index 2e589150d3e..236183d6b2f 100644
--- a/compiler/rustc_middle/src/hir/map.rs
+++ b/compiler/rustc_middle/src/hir/map.rs
@@ -1176,15 +1176,14 @@ pub(super) fn crate_hash(tcx: TyCtxt<'_>, _: LocalCrate) -> Svh {
         debugger_visualizers.hash_stable(&mut hcx, &mut stable_hasher);
         if tcx.sess.opts.incremental.is_some() {
             let definitions = tcx.untracked().definitions.freeze();
-            let mut owner_spans: Vec<_> = krate
-                .owners
-                .iter_enumerated()
-                .filter_map(|(def_id, info)| {
-                    let _ = info.as_owner()?;
+            let mut owner_spans: Vec<_> = tcx
+                .hir_crate_items(())
+                .definitions()
+                .map(|def_id| {
                     let def_path_hash = definitions.def_path_hash(def_id);
                     let span = tcx.source_span(def_id);
                     debug_assert_eq!(span.parent(), None);
-                    Some((def_path_hash, span))
+                    (def_path_hash, span)
                 })
                 .collect();
             owner_spans.sort_unstable_by_key(|bn| bn.0);