Skip to content

Commit 2638bec

Browse files
committed
Merge refs_to_def and process_def
1 parent 1874b67 commit 2638bec

File tree

1 file changed

+20
-29
lines changed

1 file changed

+20
-29
lines changed

crates/ra_ide/src/references.rs

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ pub(crate) fn find_refs_to_def(
127127
def: &Definition,
128128
search_scope: Option<SearchScope>,
129129
) -> Vec<Reference> {
130+
let _p = profile("find_refs_to_def");
131+
130132
let search_scope = {
131133
let base = SearchScope::for_def(&def, db);
132134
match search_scope {
@@ -140,38 +142,10 @@ pub(crate) fn find_refs_to_def(
140142
Some(it) => it.to_string(),
141143
};
142144

143-
process_definition(db, def, name, search_scope)
144-
}
145-
146-
fn find_name(
147-
sema: &Semantics<RootDatabase>,
148-
syntax: &SyntaxNode,
149-
position: FilePosition,
150-
opt_name: Option<ast::Name>,
151-
) -> Option<RangeInfo<Definition>> {
152-
if let Some(name) = opt_name {
153-
let def = classify_name(sema, &name)?.definition();
154-
let range = name.syntax().text_range();
155-
return Some(RangeInfo::new(range, def));
156-
}
157-
let name_ref = find_node_at_offset::<ast::NameRef>(&syntax, position.offset)?;
158-
let def = classify_name_ref(sema, &name_ref)?.definition();
159-
let range = name_ref.syntax().text_range();
160-
Some(RangeInfo::new(range, def))
161-
}
162-
163-
fn process_definition(
164-
db: &RootDatabase,
165-
def: &Definition,
166-
name: String,
167-
scope: SearchScope,
168-
) -> Vec<Reference> {
169-
let _p = profile("process_definition");
170-
171145
let pat = name.as_str();
172146
let mut refs = vec![];
173147

174-
for (file_id, search_range) in scope {
148+
for (file_id, search_range) in search_scope {
175149
let text = db.file_text(file_id);
176150
let search_range =
177151
search_range.unwrap_or(TextRange::offset_len(0.into(), TextUnit::of_str(&text)));
@@ -226,6 +200,23 @@ fn process_definition(
226200
refs
227201
}
228202

203+
fn find_name(
204+
sema: &Semantics<RootDatabase>,
205+
syntax: &SyntaxNode,
206+
position: FilePosition,
207+
opt_name: Option<ast::Name>,
208+
) -> Option<RangeInfo<Definition>> {
209+
if let Some(name) = opt_name {
210+
let def = classify_name(sema, &name)?.definition();
211+
let range = name.syntax().text_range();
212+
return Some(RangeInfo::new(range, def));
213+
}
214+
let name_ref = find_node_at_offset::<ast::NameRef>(&syntax, position.offset)?;
215+
let def = classify_name_ref(sema, &name_ref)?.definition();
216+
let range = name_ref.syntax().text_range();
217+
Some(RangeInfo::new(range, def))
218+
}
219+
229220
fn decl_access(def: &Definition, syntax: &SyntaxNode, range: TextRange) -> Option<ReferenceAccess> {
230221
match def {
231222
Definition::Local(_) | Definition::StructField(_) => {}

0 commit comments

Comments
 (0)