Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir_def/src/item_scope.rs')
| -rw-r--r-- | crates/hir_def/src/item_scope.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/hir_def/src/item_scope.rs b/crates/hir_def/src/item_scope.rs index f1330b34d1..0096df2288 100644 --- a/crates/hir_def/src/item_scope.rs +++ b/crates/hir_def/src/item_scope.rs @@ -119,6 +119,12 @@ impl ItemScope { self.values.values().copied() } + pub fn types( + &self, + ) -> impl Iterator<Item = (ModuleDefId, Visibility)> + ExactSizeIterator + '_ { + self.types.values().copied() + } + pub fn unnamed_consts(&self) -> impl Iterator<Item = ConstId> + '_ { self.unnamed_consts.iter().copied() } @@ -142,6 +148,10 @@ impl ItemScope { } } + pub(crate) fn type_(&self, name: &Name) -> Option<(ModuleDefId, Visibility)> { + self.types.get(name).copied() + } + /// XXX: this is O(N) rather than O(1), try to not introduce new usages. pub(crate) fn name_of(&self, item: ItemInNs) -> Option<(&Name, Visibility)> { let (def, mut iter) = match item { |