about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/hir/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_middle/src/hir/mod.rs')
-rw-r--r--compiler/rustc_middle/src/hir/mod.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/hir/mod.rs b/compiler/rustc_middle/src/hir/mod.rs
index fcce2d005d7..039e9953814 100644
--- a/compiler/rustc_middle/src/hir/mod.rs
+++ b/compiler/rustc_middle/src/hir/mod.rs
@@ -45,6 +45,21 @@ pub struct ModuleItems {
     foreign_items: Box<[ForeignItemId]>,
 }
 
+impl ModuleItems {
+    pub fn items(&self) -> impl Iterator<Item = ItemId> {
+        self.items.to_vec().into_iter()
+    }
+    pub fn trait_items(&self) -> impl Iterator<Item = TraitItemId> {
+        self.trait_items.to_vec().into_iter()
+    }
+    pub fn impl_items(&self) -> impl Iterator<Item = ImplItemId> {
+        self.impl_items.to_vec().into_iter()
+    }
+    pub fn foreign_items(&self) -> impl Iterator<Item = ForeignItemId> {
+        self.foreign_items.to_vec().into_iter()
+    }
+}
+
 impl<'tcx> TyCtxt<'tcx> {
     #[inline(always)]
     pub fn hir(self) -> map::Map<'tcx> {