Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/resolver.rs')
-rw-r--r--crates/hir-def/src/resolver.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/crates/hir-def/src/resolver.rs b/crates/hir-def/src/resolver.rs
index 2ac1516ec0..301391516d 100644
--- a/crates/hir-def/src/resolver.rs
+++ b/crates/hir-def/src/resolver.rs
@@ -2,7 +2,10 @@
use std::{fmt, hash::BuildHasherDefault};
use base_db::CrateId;
-use hir_expand::name::{name, Name};
+use hir_expand::{
+ name::{name, Name},
+ MacroDefId,
+};
use indexmap::IndexMap;
use intern::Interned;
use rustc_hash::FxHashSet;
@@ -406,6 +409,15 @@ impl Resolver {
.take_macros_import()
}
+ pub fn resolve_path_as_macro_def(
+ &self,
+ db: &dyn DefDatabase,
+ path: &ModPath,
+ expected_macro_kind: Option<MacroSubNs>,
+ ) -> Option<MacroDefId> {
+ self.resolve_path_as_macro(db, path, expected_macro_kind).map(|(it, _)| db.macro_def(it))
+ }
+
/// Returns a set of names available in the current scope.
///
/// Note that this is a somewhat fuzzy concept -- internally, the compiler