mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-27 20:35:09 +00:00
Fixes #2143
This commit is contained in:
parent
5451bfb9a1
commit
c46be83a34
2 changed files with 22 additions and 1 deletions
|
@ -255,7 +255,9 @@ impl SourceAnalyzer {
|
||||||
|
|
||||||
let items =
|
let items =
|
||||||
self.resolver.resolve_module_path(db, &path).take_types().map(PathResolution::Def);
|
self.resolver.resolve_module_path(db, &path).take_types().map(PathResolution::Def);
|
||||||
types.or(values).or(items)
|
types.or(values).or(items).or_else(|| {
|
||||||
|
self.resolver.resolve_path_as_macro(db, &path).map(|def| PathResolution::Macro(def))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn resolve_path(&self, db: &impl HirDatabase, path: &ast::Path) -> Option<PathResolution> {
|
pub fn resolve_path(&self, db: &impl HirDatabase, path: &ast::Path) -> Option<PathResolution> {
|
||||||
|
|
|
@ -315,6 +315,25 @@ mod tests {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn goto_definition_works_for_macros_in_use_tree() {
|
||||||
|
check_goto(
|
||||||
|
"
|
||||||
|
//- /lib.rs
|
||||||
|
use foo::foo<|>;
|
||||||
|
|
||||||
|
//- /foo/lib.rs
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! foo {
|
||||||
|
() => {
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
",
|
||||||
|
"foo MACRO_CALL FileId(2) [0; 66) [29; 32)",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn goto_definition_works_for_methods() {
|
fn goto_definition_works_for_methods() {
|
||||||
covers!(goto_definition_works_for_methods);
|
covers!(goto_definition_works_for_methods);
|
||||||
|
|
Loading…
Reference in a new issue