@@ -127,6 +127,8 @@ pub(crate) fn find_refs_to_def(
127
127
def : & Definition ,
128
128
search_scope : Option < SearchScope > ,
129
129
) -> Vec < Reference > {
130
+ let _p = profile ( "find_refs_to_def" ) ;
131
+
130
132
let search_scope = {
131
133
let base = SearchScope :: for_def ( & def, db) ;
132
134
match search_scope {
@@ -140,38 +142,10 @@ pub(crate) fn find_refs_to_def(
140
142
Some ( it) => it. to_string ( ) ,
141
143
} ;
142
144
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
-
171
145
let pat = name. as_str ( ) ;
172
146
let mut refs = vec ! [ ] ;
173
147
174
- for ( file_id, search_range) in scope {
148
+ for ( file_id, search_range) in search_scope {
175
149
let text = db. file_text ( file_id) ;
176
150
let search_range =
177
151
search_range. unwrap_or ( TextRange :: offset_len ( 0 . into ( ) , TextUnit :: of_str ( & text) ) ) ;
@@ -226,6 +200,23 @@ fn process_definition(
226
200
refs
227
201
}
228
202
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
+
229
220
fn decl_access ( def : & Definition , syntax : & SyntaxNode , range : TextRange ) -> Option < ReferenceAccess > {
230
221
match def {
231
222
Definition :: Local ( _) | Definition :: StructField ( _) => { }
0 commit comments