mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 14:21:44 +00:00
Only new-style classification
This commit is contained in:
parent
35bfeaf4af
commit
11d6b9dadd
5 changed files with 21 additions and 28 deletions
|
@ -14,7 +14,7 @@ mod name_definition;
|
|||
mod rename;
|
||||
mod search_scope;
|
||||
|
||||
use hir::InFile;
|
||||
use hir::{InFile, SourceBinder};
|
||||
use once_cell::unsync::Lazy;
|
||||
use ra_db::{SourceDatabase, SourceDatabaseExt};
|
||||
use ra_prof::profile;
|
||||
|
@ -29,7 +29,7 @@ use crate::{
|
|||
};
|
||||
|
||||
pub(crate) use self::{
|
||||
classify::{classify_name, classify_name2, classify_name_ref, classify_name_ref2},
|
||||
classify::{classify_name, classify_name_ref},
|
||||
name_definition::{NameDefinition, NameKind},
|
||||
rename::rename,
|
||||
};
|
||||
|
@ -171,13 +171,14 @@ fn find_name(
|
|||
syntax: &SyntaxNode,
|
||||
position: FilePosition,
|
||||
) -> Option<RangeInfo<(String, NameDefinition)>> {
|
||||
let mut sb = SourceBinder::new(db);
|
||||
if let Some(name) = find_node_at_offset::<ast::Name>(&syntax, position.offset) {
|
||||
let def = classify_name(db, InFile::new(position.file_id.into(), &name))?;
|
||||
let def = classify_name(&mut sb, InFile::new(position.file_id.into(), &name))?;
|
||||
let range = name.syntax().text_range();
|
||||
return Some(RangeInfo::new(range, (name.text().to_string(), def)));
|
||||
}
|
||||
let name_ref = find_node_at_offset::<ast::NameRef>(&syntax, position.offset)?;
|
||||
let def = classify_name_ref(db, InFile::new(position.file_id.into(), &name_ref))?;
|
||||
let def = classify_name_ref(&mut sb, InFile::new(position.file_id.into(), &name_ref))?;
|
||||
let range = name_ref.syntax().text_range();
|
||||
Some(RangeInfo::new(range, (name_ref.text().to_string(), def)))
|
||||
}
|
||||
|
@ -209,7 +210,10 @@ fn process_definition(
|
|||
continue;
|
||||
}
|
||||
}
|
||||
if let Some(d) = classify_name_ref(db, InFile::new(file_id.into(), &name_ref)) {
|
||||
// FIXME: reuse sb
|
||||
let mut sb = SourceBinder::new(db);
|
||||
if let Some(d) = classify_name_ref(&mut sb, InFile::new(file_id.into(), &name_ref))
|
||||
{
|
||||
if d == def {
|
||||
let kind = if name_ref
|
||||
.syntax()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue