Explicitly check for reference locals or fields in Name classification

This commit is contained in:
Lukas Wirth 2021-07-11 14:03:35 +02:00
parent 87621de2b9
commit c65bb7f8b9
11 changed files with 67 additions and 50 deletions

View file

@ -29,10 +29,10 @@ pub(crate) fn goto_implementation(
let node = sema.find_node_at_offset_with_descend(&syntax, position.offset)?;
let def = match &node {
ast::NameLike::Name(name) => {
NameClass::classify(&sema, name).map(|class| class.referenced_or_defined())
NameClass::classify(&sema, name).map(|class| class.defined_or_referenced_local())
}
ast::NameLike::NameRef(name_ref) => {
NameRefClass::classify(&sema, name_ref).map(|class| class.referenced())
NameRefClass::classify(&sema, name_ref).map(|class| class.referenced_local())
}
ast::NameLike::Lifetime(_) => None,
}?;