wip
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
This commit is contained in:
@@ -243,6 +243,24 @@ mod tests {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn goto_def_for_use_alias() {
|
||||||
|
covers!(ra_ide_db::goto_def_for_use_alias);
|
||||||
|
check_goto(
|
||||||
|
"
|
||||||
|
//- /lib.rs
|
||||||
|
use foo as <|>bar;
|
||||||
|
|
||||||
|
|
||||||
|
//- /foo/lib.rs
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! foo { () => { () } }
|
||||||
|
",
|
||||||
|
"foo MACRO_CALL FileId(2) 0..49 29..32",
|
||||||
|
"#[macro_export]\nmacro_rules! foo { () => { () } }|foo",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn goto_def_for_macros_in_use_tree() {
|
fn goto_def_for_macros_in_use_tree() {
|
||||||
check_goto(
|
check_goto(
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ use hir::{
|
|||||||
};
|
};
|
||||||
use ra_prof::profile;
|
use ra_prof::profile;
|
||||||
use ra_syntax::{
|
use ra_syntax::{
|
||||||
ast::{self, AstNode},
|
ast::{self, AstNode, NameOwner},
|
||||||
match_ast,
|
match_ast,
|
||||||
};
|
};
|
||||||
use test_utils::tested_by;
|
use test_utils::tested_by;
|
||||||
@@ -115,10 +115,16 @@ pub fn classify_name(sema: &Semantics<RootDatabase>, name: &ast::Name) -> Option
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn classify_name_inner(sema: &Semantics<RootDatabase>, name: &ast::Name) -> Option<Definition> {
|
fn classify_name_inner(sema: &Semantics<RootDatabase>, name: &ast::Name) -> Option<Definition> {
|
||||||
|
println!("name : {} -- {:?}", name, name);
|
||||||
let parent = name.syntax().parent()?;
|
let parent = name.syntax().parent()?;
|
||||||
|
println!("parent : {} -- {:?}", parent, parent);
|
||||||
|
|
||||||
match_ast! {
|
match_ast! {
|
||||||
match parent {
|
match parent {
|
||||||
|
ast::Alias(it) => {
|
||||||
|
let def = sema.to_def(&it)?;
|
||||||
|
Some(Definition::ModuleDef(def.into()))
|
||||||
|
},
|
||||||
ast::BindPat(it) => {
|
ast::BindPat(it) => {
|
||||||
let local = sema.to_def(&it)?;
|
let local = sema.to_def(&it)?;
|
||||||
Some(Definition::Local(local))
|
Some(Definition::Local(local))
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
test_utils::marks![
|
test_utils::marks![
|
||||||
goto_def_for_macros
|
goto_def_for_macros
|
||||||
|
goto_def_for_use_alias
|
||||||
goto_def_for_methods
|
goto_def_for_methods
|
||||||
goto_def_for_fields
|
goto_def_for_fields
|
||||||
goto_def_for_record_fields
|
goto_def_for_record_fields
|
||||||
|
|||||||
Reference in New Issue
Block a user