mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 12:29:21 +00:00
Remove obsolete RangeInfo usage in references
This commit is contained in:
parent
342bf41022
commit
e31420fbe2
3 changed files with 20 additions and 38 deletions
|
@ -47,7 +47,7 @@ pub(crate) fn incoming_calls(db: &RootDatabase, position: FilePosition) -> Optio
|
||||||
|
|
||||||
let mut calls = CallLocations::default();
|
let mut calls = CallLocations::default();
|
||||||
|
|
||||||
for (&file_id, references) in refs.info.references().iter() {
|
for (&file_id, references) in refs.references().iter() {
|
||||||
let file = sema.parse(file_id);
|
let file = sema.parse(file_id);
|
||||||
let file = file.syntax();
|
let file = file.syntax();
|
||||||
for reference in references {
|
for reference in references {
|
||||||
|
|
|
@ -369,9 +369,7 @@ impl Analysis {
|
||||||
position: FilePosition,
|
position: FilePosition,
|
||||||
search_scope: Option<SearchScope>,
|
search_scope: Option<SearchScope>,
|
||||||
) -> Cancelable<Option<ReferenceSearchResult>> {
|
) -> Cancelable<Option<ReferenceSearchResult>> {
|
||||||
self.with_db(|db| {
|
self.with_db(|db| references::find_all_refs(&Semantics::new(db), position, search_scope))
|
||||||
references::find_all_refs(&Semantics::new(db), position, search_scope).map(|it| it.info)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds all methods and free functions for the file. Does not return tests!
|
/// Finds all methods and free functions for the file. Does not return tests!
|
||||||
|
|
|
@ -25,7 +25,7 @@ use syntax::{
|
||||||
AstNode, SyntaxNode, TextRange, TokenAtOffset, T,
|
AstNode, SyntaxNode, TextRange, TokenAtOffset, T,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{display::TryToNav, FilePosition, FileRange, NavigationTarget, RangeInfo};
|
use crate::{display::TryToNav, FilePosition, NavigationTarget};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct ReferenceSearchResult {
|
pub struct ReferenceSearchResult {
|
||||||
|
@ -41,14 +41,6 @@ pub struct Declaration {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ReferenceSearchResult {
|
impl ReferenceSearchResult {
|
||||||
pub fn declaration(&self) -> &Declaration {
|
|
||||||
&self.declaration
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn decl_target(&self) -> &NavigationTarget {
|
|
||||||
&self.declaration.nav
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn references(&self) -> &UsageSearchResult {
|
pub fn references(&self) -> &UsageSearchResult {
|
||||||
&self.references
|
&self.references
|
||||||
}
|
}
|
||||||
|
@ -87,7 +79,7 @@ pub(crate) fn find_all_refs(
|
||||||
sema: &Semantics<RootDatabase>,
|
sema: &Semantics<RootDatabase>,
|
||||||
position: FilePosition,
|
position: FilePosition,
|
||||||
search_scope: Option<SearchScope>,
|
search_scope: Option<SearchScope>,
|
||||||
) -> Option<RangeInfo<ReferenceSearchResult>> {
|
) -> Option<ReferenceSearchResult> {
|
||||||
let _p = profile::span("find_all_refs");
|
let _p = profile::span("find_all_refs");
|
||||||
let syntax = sema.parse(position.file_id).syntax().clone();
|
let syntax = sema.parse(position.file_id).syntax().clone();
|
||||||
|
|
||||||
|
@ -105,7 +97,7 @@ pub(crate) fn find_all_refs(
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
let RangeInfo { range, info: def } = find_name(&sema, &syntax, position, opt_name)?;
|
let def = find_name(&sema, &syntax, position, opt_name)?;
|
||||||
|
|
||||||
let mut usages = def.usages(sema).set_scope(search_scope).all();
|
let mut usages = def.usages(sema).set_scope(search_scope).all();
|
||||||
usages
|
usages
|
||||||
|
@ -139,7 +131,7 @@ pub(crate) fn find_all_refs(
|
||||||
|
|
||||||
let declaration = Declaration { nav, kind, access: decl_access(&def, &syntax, decl_range) };
|
let declaration = Declaration { nav, kind, access: decl_access(&def, &syntax, decl_range) };
|
||||||
|
|
||||||
Some(RangeInfo::new(range, ReferenceSearchResult { declaration, references: usages }))
|
Some(ReferenceSearchResult { declaration, references: usages })
|
||||||
}
|
}
|
||||||
|
|
||||||
fn find_name(
|
fn find_name(
|
||||||
|
@ -147,35 +139,27 @@ fn find_name(
|
||||||
syntax: &SyntaxNode,
|
syntax: &SyntaxNode,
|
||||||
position: FilePosition,
|
position: FilePosition,
|
||||||
opt_name: Option<ast::Name>,
|
opt_name: Option<ast::Name>,
|
||||||
) -> Option<RangeInfo<Definition>> {
|
) -> Option<Definition> {
|
||||||
if let Some(name) = opt_name {
|
let def = if let Some(name) = opt_name {
|
||||||
let def = NameClass::classify(sema, &name)?.referenced_or_defined(sema.db);
|
NameClass::classify(sema, &name)?.referenced_or_defined(sema.db)
|
||||||
let FileRange { range, .. } = sema.original_range(name.syntax());
|
} else if let Some(lifetime) =
|
||||||
return Some(RangeInfo::new(range, def));
|
|
||||||
}
|
|
||||||
|
|
||||||
let (FileRange { range, .. }, def) = if let Some(lifetime) =
|
|
||||||
sema.find_node_at_offset_with_descend::<ast::Lifetime>(&syntax, position.offset)
|
sema.find_node_at_offset_with_descend::<ast::Lifetime>(&syntax, position.offset)
|
||||||
{
|
{
|
||||||
if let Some(def) = NameRefClass::classify_lifetime(sema, &lifetime)
|
if let Some(def) =
|
||||||
.map(|class| NameRefClass::referenced(class, sema.db))
|
NameRefClass::classify_lifetime(sema, &lifetime).map(|class| class.referenced(sema.db))
|
||||||
{
|
{
|
||||||
(sema.original_range(lifetime.syntax()), def)
|
def
|
||||||
} else {
|
} else {
|
||||||
(
|
NameClass::classify_lifetime(sema, &lifetime)?.referenced_or_defined(sema.db)
|
||||||
sema.original_range(lifetime.syntax()),
|
|
||||||
NameClass::classify_lifetime(sema, &lifetime)?.referenced_or_defined(sema.db),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
} else if let Some(name_ref) =
|
||||||
|
sema.find_node_at_offset_with_descend::<ast::NameRef>(&syntax, position.offset)
|
||||||
|
{
|
||||||
|
NameRefClass::classify(sema, &name_ref)?.referenced(sema.db)
|
||||||
} else {
|
} else {
|
||||||
let name_ref =
|
return None;
|
||||||
sema.find_node_at_offset_with_descend::<ast::NameRef>(&syntax, position.offset)?;
|
|
||||||
(
|
|
||||||
sema.original_range(name_ref.syntax()),
|
|
||||||
NameRefClass::classify(sema, &name_ref)?.referenced(sema.db),
|
|
||||||
)
|
|
||||||
};
|
};
|
||||||
Some(RangeInfo::new(range, def))
|
Some(def)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn decl_access(def: &Definition, syntax: &SyntaxNode, range: TextRange) -> Option<ReferenceAccess> {
|
fn decl_access(def: &Definition, syntax: &SyntaxNode, range: TextRange) -> Option<ReferenceAccess> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue