about summary refs log tree commit diff
path: root/compiler/rustc_middle/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-07-07 01:17:36 +0000
committerbors <bors@rust-lang.org>2022-07-07 01:17:36 +0000
commitfac8fa56726f7a5b2d4880a4719c5f99beec8328 (patch)
tree15d1a569a9da569e0ff072cacbbd65c4b6eb40a5 /compiler/rustc_middle/src
parent8824d131619e58a38bde8bcf56401629b91a204a (diff)
parent3df10a2a90acef84d46e8681095abaef51758929 (diff)
downloadrust-fac8fa56726f7a5b2d4880a4719c5f99beec8328.tar.gz
rust-fac8fa56726f7a5b2d4880a4719c5f99beec8328.zip
Auto merge of #98487 - cjgillot:variance-nohir, r=wesleywiser
Do not fetch HIR to compute variances.

Everything can be done using higher-level queries.  This simplifies the code, and should allow better incremental caching.
Diffstat (limited to 'compiler/rustc_middle/src')
-rw-r--r--compiler/rustc_middle/src/hir/mod.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/hir/mod.rs b/compiler/rustc_middle/src/hir/mod.rs
index 8622a620721..12209d6725c 100644
--- a/compiler/rustc_middle/src/hir/mod.rs
+++ b/compiler/rustc_middle/src/hir/mod.rs
@@ -63,6 +63,15 @@ impl ModuleItems {
         self.foreign_items.iter().copied()
     }
 
+    pub fn definitions(&self) -> impl Iterator<Item = LocalDefId> + '_ {
+        self.items
+            .iter()
+            .map(|id| id.def_id)
+            .chain(self.trait_items.iter().map(|id| id.def_id))
+            .chain(self.impl_items.iter().map(|id| id.def_id))
+            .chain(self.foreign_items.iter().map(|id| id.def_id))
+    }
+
     pub fn par_items(&self, f: impl Fn(ItemId) + Send + Sync) {
         par_for_each_in(&self.items[..], |&id| f(id))
     }