File tree Expand file tree Collapse file tree 2 files changed +4
-6
lines changed Expand file tree Collapse file tree 2 files changed +4
-6
lines changed Original file line number Diff line number Diff line change @@ -207,7 +207,7 @@ impl AnalysisImpl {
207
207
let syntax = file. syntax ( ) ;
208
208
if let Some ( name_ref) = find_node_at_offset :: < ast:: NameRef > ( syntax, offset) {
209
209
// First try to resolve the symbol locally
210
- return if let Some ( ( name, range) ) = resolve_local_name ( & file , offset , name_ref) {
210
+ return if let Some ( ( name, range) ) = resolve_local_name ( name_ref) {
211
211
let mut vec = vec ! [ ] ;
212
212
vec. push ( (
213
213
file_id,
@@ -262,15 +262,15 @@ impl AnalysisImpl {
262
262
if let Some ( name_ref) = find_node_at_offset :: < ast:: NameRef > ( syntax, offset) {
263
263
264
264
// We are only handing local references for now
265
- if let Some ( resolved) = resolve_local_name ( & file , offset , name_ref) {
265
+ if let Some ( resolved) = resolve_local_name ( name_ref) {
266
266
267
267
ret. push ( ( file_id, resolved. 1 ) ) ;
268
268
269
269
if let Some ( fn_def) = find_node_at_offset :: < ast:: FnDef > ( syntax, offset) {
270
270
271
271
let refs : Vec < _ > = fn_def. syntax ( ) . descendants ( )
272
272
. filter_map ( ast:: NameRef :: cast)
273
- . filter ( |n : & ast:: NameRef | resolve_local_name ( & file , n . syntax ( ) . range ( ) . start ( ) , * n) == Some ( resolved. clone ( ) ) )
273
+ . filter ( |& n: & ast:: NameRef | resolve_local_name ( n) == Some ( resolved. clone ( ) ) )
274
274
. collect ( ) ;
275
275
276
276
for r in refs {
Original file line number Diff line number Diff line change @@ -152,11 +152,9 @@ pub fn find_node_at_offset<'a, N: AstNode<'a>>(
152
152
}
153
153
154
154
pub fn resolve_local_name (
155
- file : & File ,
156
- offset : TextUnit ,
157
155
name_ref : ast:: NameRef ,
158
156
) -> Option < ( SmolStr , TextRange ) > {
159
- let fn_def = find_node_at_offset :: < ast :: FnDef > ( file . syntax ( ) , offset ) ?;
157
+ let fn_def = name_ref . syntax ( ) . ancestors ( ) . find_map ( ast :: FnDef :: cast ) ?;
160
158
let scopes = scope:: FnScopes :: new ( fn_def) ;
161
159
let scope_entry = scope:: resolve_local_name ( name_ref, & scopes) ?;
162
160
let name = scope_entry. ast ( ) . name ( ) ?;
You can’t perform that action at this time.
0 commit comments