diff options
Diffstat (limited to 'crates/ra_ide/src/completion/completion_context.rs')
-rw-r--r-- | crates/ra_ide/src/completion/completion_context.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs index 81a033fcb..fe9777487 100644 --- a/crates/ra_ide/src/completion/completion_context.rs +++ b/crates/ra_ide/src/completion/completion_context.rs | |||
@@ -165,7 +165,7 @@ impl<'a> CompletionContext<'a> { | |||
165 | self.is_param = true; | 165 | self.is_param = true; |
166 | return; | 166 | return; |
167 | } | 167 | } |
168 | self.classify_name_ref(original_file, name_ref); | 168 | self.classify_name_ref(original_file, name_ref, offset); |
169 | } | 169 | } |
170 | 170 | ||
171 | // Otherwise, see if this is a declaration. We can use heuristics to | 171 | // Otherwise, see if this is a declaration. We can use heuristics to |
@@ -190,13 +190,18 @@ impl<'a> CompletionContext<'a> { | |||
190 | } | 190 | } |
191 | } | 191 | } |
192 | 192 | ||
193 | fn classify_name_ref(&mut self, original_file: &SyntaxNode, name_ref: ast::NameRef) { | 193 | fn classify_name_ref( |
194 | &mut self, | ||
195 | original_file: &SyntaxNode, | ||
196 | name_ref: ast::NameRef, | ||
197 | offset: TextUnit, | ||
198 | ) { | ||
194 | self.name_ref_syntax = | 199 | self.name_ref_syntax = |
195 | find_node_at_offset(&original_file, name_ref.syntax().text_range().start()); | 200 | find_node_at_offset(&original_file, name_ref.syntax().text_range().start()); |
196 | let name_range = name_ref.syntax().text_range(); | 201 | let name_range = name_ref.syntax().text_range(); |
197 | if name_ref.syntax().parent().and_then(ast::RecordField::cast).is_some() { | 202 | if name_ref.syntax().parent().and_then(ast::RecordField::cast).is_some() { |
198 | self.record_lit_syntax = | 203 | self.record_lit_syntax = |
199 | self.sema.find_node_at_offset_with_macros(&original_file, self.offset); | 204 | self.sema.find_node_at_offset_with_macros(&original_file, offset); |
200 | } | 205 | } |
201 | 206 | ||
202 | self.impl_def = self | 207 | self.impl_def = self |