Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/lib.rs')
| -rw-r--r-- | crates/hir/src/lib.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index ee4ff0aebb..9207614c68 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -570,6 +570,12 @@ impl Module { .collect() } + pub fn legacy_macros(self, db: &dyn HirDatabase) -> Vec<Macro> { + let def_map = self.id.def_map(db.upcast()); + let scope = &def_map[self.id.local_id].scope; + scope.legacy_macros().map(|(_, it)| MacroId::from(it).into()).collect() + } + pub fn impl_defs(self, db: &dyn HirDatabase) -> Vec<Impl> { let def_map = self.id.def_map(db.upcast()); def_map[self.id.local_id].scope.impls().map(Impl::from).collect() @@ -1789,6 +1795,10 @@ impl Macro { } } + pub fn is_macro_export(self, db: &dyn HirDatabase) -> bool { + matches!(self.id, MacroId::MacroRulesId(id) if db.macro_rules_data(id).macro_export) + } + pub fn kind(&self, db: &dyn HirDatabase) -> MacroKind { match self.id { MacroId::Macro2Id(it) => match it.lookup(db.upcast()).expander { |