Classify name takes const patterns into account

This commit is contained in:
Aleksey Kladov 2020-02-28 15:27:52 +01:00
parent 9ef6359950
commit 209eb32796
6 changed files with 44 additions and 23 deletions

View file

@ -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};