Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/semantics.rs')
| -rw-r--r-- | crates/hir/src/semantics.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs index 0f63de9e72..b09c0e753b 100644 --- a/crates/hir/src/semantics.rs +++ b/crates/hir/src/semantics.rs @@ -329,6 +329,10 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { self.imp.resolve_path(path) } + pub fn resolve_path_as_macro(&self, path: &ast::Path) -> Option<MacroDef> { + self.imp.resolve_path_as_macro(path) + } + pub fn resolve_extern_crate(&self, extern_crate: &ast::ExternCrate) -> Option<Crate> { self.imp.resolve_extern_crate(extern_crate) } @@ -845,6 +849,12 @@ impl<'db> SemanticsImpl<'db> { self.analyze(path.syntax()).resolve_path(self.db, path) } + // FIXME: This shouldn't exist, but is currently required to always resolve attribute paths in + // the IDE layer due to namespace collisions + fn resolve_path_as_macro(&self, path: &ast::Path) -> Option<MacroDef> { + self.analyze(path.syntax()).resolve_path_as_macro(self.db, path) + } + fn resolve_extern_crate(&self, extern_crate: &ast::ExternCrate) -> Option<Crate> { let krate = self.scope(extern_crate.syntax()).krate()?; krate.dependencies(self.db).into_iter().find_map(|dep| { |