about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/hir
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2022-06-25 15:30:38 +0200
committerCamille GILLOT <gillot.camille@gmail.com>2022-06-28 18:14:33 +0200
commit3df10a2a90acef84d46e8681095abaef51758929 (patch)
tree99d7b2286ec33a30d9eef656ae817184dcabc3de /compiler/rustc_middle/src/hir
parent00ebeb87ac87a492bd59ace6bd43d6ad1629ca4e (diff)
downloadrust-3df10a2a90acef84d46e8681095abaef51758929.tar.gz
rust-3df10a2a90acef84d46e8681095abaef51758929.zip
Do not fetch HIR to compute variances.
Diffstat (limited to 'compiler/rustc_middle/src/hir')
-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))
     }