@@ -25,7 +25,7 @@ use syntax::{
25
25
AstNode , SyntaxNode , TextRange , TokenAtOffset , T ,
26
26
} ;
27
27
28
- use crate :: { display:: TryToNav , FilePosition , FileRange , NavigationTarget , RangeInfo } ;
28
+ use crate :: { display:: TryToNav , FilePosition , NavigationTarget } ;
29
29
30
30
#[ derive( Debug , Clone ) ]
31
31
pub struct ReferenceSearchResult {
@@ -41,14 +41,6 @@ pub struct Declaration {
41
41
}
42
42
43
43
impl ReferenceSearchResult {
44
- pub fn declaration ( & self ) -> & Declaration {
45
- & self . declaration
46
- }
47
-
48
- pub fn decl_target ( & self ) -> & NavigationTarget {
49
- & self . declaration . nav
50
- }
51
-
52
44
pub fn references ( & self ) -> & UsageSearchResult {
53
45
& self . references
54
46
}
@@ -87,7 +79,7 @@ pub(crate) fn find_all_refs(
87
79
sema : & Semantics < RootDatabase > ,
88
80
position : FilePosition ,
89
81
search_scope : Option < SearchScope > ,
90
- ) -> Option < RangeInfo < ReferenceSearchResult > > {
82
+ ) -> Option < ReferenceSearchResult > {
91
83
let _p = profile:: span ( "find_all_refs" ) ;
92
84
let syntax = sema. parse ( position. file_id ) . syntax ( ) . clone ( ) ;
93
85
@@ -105,7 +97,7 @@ pub(crate) fn find_all_refs(
105
97
)
106
98
} ;
107
99
108
- let RangeInfo { range , info : def } = find_name ( & sema, & syntax, position, opt_name) ?;
100
+ let def = find_name ( & sema, & syntax, position, opt_name) ?;
109
101
110
102
let mut usages = def. usages ( sema) . set_scope ( search_scope) . all ( ) ;
111
103
usages
@@ -139,43 +131,35 @@ pub(crate) fn find_all_refs(
139
131
140
132
let declaration = Declaration { nav, kind, access : decl_access ( & def, & syntax, decl_range) } ;
141
133
142
- Some ( RangeInfo :: new ( range , ReferenceSearchResult { declaration, references : usages } ) )
134
+ Some ( ReferenceSearchResult { declaration, references : usages } )
143
135
}
144
136
145
137
fn find_name (
146
138
sema : & Semantics < RootDatabase > ,
147
139
syntax : & SyntaxNode ,
148
140
position : FilePosition ,
149
141
opt_name : Option < ast:: Name > ,
150
- ) -> Option < RangeInfo < Definition > > {
151
- if let Some ( name) = opt_name {
152
- let def = NameClass :: classify ( sema, & name) ?. referenced_or_defined ( sema. db ) ;
153
- let FileRange { range, .. } = sema. original_range ( name. syntax ( ) ) ;
154
- return Some ( RangeInfo :: new ( range, def) ) ;
155
- }
156
-
157
- let ( FileRange { range, .. } , def) = if let Some ( lifetime) =
142
+ ) -> Option < Definition > {
143
+ let def = if let Some ( name) = opt_name {
144
+ NameClass :: classify ( sema, & name) ?. referenced_or_defined ( sema. db )
145
+ } else if let Some ( lifetime) =
158
146
sema. find_node_at_offset_with_descend :: < ast:: Lifetime > ( & syntax, position. offset )
159
147
{
160
- if let Some ( def) = NameRefClass :: classify_lifetime ( sema , & lifetime )
161
- . map ( |class| NameRefClass :: referenced ( class , sema. db ) )
148
+ if let Some ( def) =
149
+ NameRefClass :: classify_lifetime ( sema , & lifetime ) . map ( |class| class . referenced ( sema. db ) )
162
150
{
163
- ( sema . original_range ( lifetime . syntax ( ) ) , def)
151
+ def
164
152
} else {
165
- (
166
- sema. original_range ( lifetime. syntax ( ) ) ,
167
- NameClass :: classify_lifetime ( sema, & lifetime) ?. referenced_or_defined ( sema. db ) ,
168
- )
153
+ NameClass :: classify_lifetime ( sema, & lifetime) ?. referenced_or_defined ( sema. db )
169
154
}
155
+ } else if let Some ( name_ref) =
156
+ sema. find_node_at_offset_with_descend :: < ast:: NameRef > ( & syntax, position. offset )
157
+ {
158
+ NameRefClass :: classify ( sema, & name_ref) ?. referenced ( sema. db )
170
159
} else {
171
- let name_ref =
172
- sema. find_node_at_offset_with_descend :: < ast:: NameRef > ( & syntax, position. offset ) ?;
173
- (
174
- sema. original_range ( name_ref. syntax ( ) ) ,
175
- NameRefClass :: classify ( sema, & name_ref) ?. referenced ( sema. db ) ,
176
- )
160
+ return None ;
177
161
} ;
178
- Some ( RangeInfo :: new ( range , def) )
162
+ Some ( def)
179
163
}
180
164
181
165
fn decl_access ( def : & Definition , syntax : & SyntaxNode , range : TextRange ) -> Option < ReferenceAccess > {
0 commit comments