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.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/crates/hir-def/src/item_scope.rs b/crates/hir-def/src/item_scope.rs
index a60b9f9f3a..54cd57110e 100644
--- a/crates/hir-def/src/item_scope.rs
+++ b/crates/hir-def/src/item_scope.rs
@@ -234,6 +234,14 @@ impl ItemScope {
self.impls.iter().copied()
}
+ pub fn all_macro_calls(&self) -> impl Iterator<Item = MacroCallId> + '_ {
+ self.macro_invocations.values().copied().chain(self.attr_macros.values().copied()).chain(
+ self.derive_macros.values().flat_map(|it| {
+ it.iter().flat_map(|it| it.derive_call_ids.iter().copied().flatten())
+ }),
+ )
+ }
+
pub(crate) fn modules_in_scope(&self) -> impl Iterator<Item = (ModuleId, Visibility)> + '_ {
self.types.values().copied().filter_map(|(def, vis, _)| match def {
ModuleDefId::ModuleId(module) => Some((module, vis)),