mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 23:25:03 +00:00
Classify name takes const patterns into account
This commit is contained in:
parent
9ef6359950
commit
209eb32796
6 changed files with 44 additions and 23 deletions
|
@ -30,7 +30,9 @@ pub(crate) fn goto_definition(
|
|||
reference_definition(&sema, &name_ref).to_vec()
|
||||
},
|
||||
ast::Name(name) => {
|
||||
name_definition(&sema, &name)?
|
||||
let def = classify_name(&sema, &name)?.definition();
|
||||
let nav = def.try_to_nav(sema.db)?;
|
||||
vec![nav]
|
||||
},
|
||||
_ => return None,
|
||||
}
|
||||
|
@ -88,15 +90,6 @@ pub(crate) fn reference_definition(
|
|||
Approximate(navs)
|
||||
}
|
||||
|
||||
fn name_definition(
|
||||
sema: &Semantics<RootDatabase>,
|
||||
name: &ast::Name,
|
||||
) -> Option<Vec<NavigationTarget>> {
|
||||
let def = classify_name(sema, name)?;
|
||||
let nav = def.try_to_nav(sema.db)?;
|
||||
Some(vec![nav])
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use test_utils::{assert_eq_text, covers};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue