diff options
Diffstat (limited to 'crates/ra_ide/src/completion/completion_context.rs')
-rw-r--r-- | crates/ra_ide/src/completion/completion_context.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs index e579e2ee2..41aec5686 100644 --- a/crates/ra_ide/src/completion/completion_context.rs +++ b/crates/ra_ide/src/completion/completion_context.rs | |||
@@ -12,8 +12,8 @@ use ra_syntax::{ | |||
12 | use ra_text_edit::Indel; | 12 | use ra_text_edit::Indel; |
13 | 13 | ||
14 | use super::patterns::{ | 14 | use super::patterns::{ |
15 | goes_after_unsafe, has_bind_pat_parent, has_block_expr_parent, has_impl_as_prev_sibling, | 15 | has_bind_pat_parent, has_block_expr_parent, has_impl_as_prev_sibling, has_ref_pat_parent, |
16 | has_ref_pat_parent, has_trait_as_prev_sibling, inside_trait, is_in_loop_body, | 16 | has_trait_as_prev_sibling, if_is_prev, inside_trait, is_in_loop_body, unsafe_is_prev, |
17 | }; | 17 | }; |
18 | use crate::{call_info::ActiveParameter, completion::CompletionConfig, FilePosition}; | 18 | use crate::{call_info::ActiveParameter, completion::CompletionConfig, FilePosition}; |
19 | use test_utils::mark; | 19 | use test_utils::mark; |
@@ -64,7 +64,8 @@ pub(crate) struct CompletionContext<'a> { | |||
64 | pub(super) is_path_type: bool, | 64 | pub(super) is_path_type: bool, |
65 | pub(super) has_type_args: bool, | 65 | pub(super) has_type_args: bool, |
66 | pub(super) attribute_under_caret: Option<ast::Attr>, | 66 | pub(super) attribute_under_caret: Option<ast::Attr>, |
67 | pub(super) after_unsafe: bool, | 67 | pub(super) unsafe_is_prev: bool, |
68 | pub(super) if_is_prev: bool, | ||
68 | pub(super) block_expr_parent: bool, | 69 | pub(super) block_expr_parent: bool, |
69 | pub(super) bind_pat_parent: bool, | 70 | pub(super) bind_pat_parent: bool, |
70 | pub(super) ref_pat_parent: bool, | 71 | pub(super) ref_pat_parent: bool, |
@@ -130,7 +131,7 @@ impl<'a> CompletionContext<'a> { | |||
130 | has_type_args: false, | 131 | has_type_args: false, |
131 | dot_receiver_is_ambiguous_float_literal: false, | 132 | dot_receiver_is_ambiguous_float_literal: false, |
132 | attribute_under_caret: None, | 133 | attribute_under_caret: None, |
133 | after_unsafe: false, | 134 | unsafe_is_prev: false, |
134 | in_loop_body: false, | 135 | in_loop_body: false, |
135 | ref_pat_parent: false, | 136 | ref_pat_parent: false, |
136 | bind_pat_parent: false, | 137 | bind_pat_parent: false, |
@@ -138,6 +139,7 @@ impl<'a> CompletionContext<'a> { | |||
138 | inside_trait: false, | 139 | inside_trait: false, |
139 | trait_as_prev_sibling: false, | 140 | trait_as_prev_sibling: false, |
140 | impl_as_prev_sibling: false, | 141 | impl_as_prev_sibling: false, |
142 | if_is_prev: false, | ||
141 | }; | 143 | }; |
142 | 144 | ||
143 | let mut original_file = original_file.syntax().clone(); | 145 | let mut original_file = original_file.syntax().clone(); |
@@ -212,7 +214,8 @@ impl<'a> CompletionContext<'a> { | |||
212 | let fake_ident_token = file_with_fake_ident.token_at_offset(offset).right_biased().unwrap(); | 214 | let fake_ident_token = file_with_fake_ident.token_at_offset(offset).right_biased().unwrap(); |
213 | let syntax_element = NodeOrToken::Token(fake_ident_token.clone()); | 215 | let syntax_element = NodeOrToken::Token(fake_ident_token.clone()); |
214 | self.block_expr_parent = has_block_expr_parent(syntax_element.clone()); | 216 | self.block_expr_parent = has_block_expr_parent(syntax_element.clone()); |
215 | self.after_unsafe = goes_after_unsafe(syntax_element.clone()); | 217 | self.unsafe_is_prev = unsafe_is_prev(syntax_element.clone()); |
218 | self.if_is_prev = if_is_prev(syntax_element.clone()); | ||
216 | self.bind_pat_parent = has_bind_pat_parent(syntax_element.clone()); | 219 | self.bind_pat_parent = has_bind_pat_parent(syntax_element.clone()); |
217 | self.ref_pat_parent = has_ref_pat_parent(syntax_element.clone()); | 220 | self.ref_pat_parent = has_ref_pat_parent(syntax_element.clone()); |
218 | self.in_loop_body = is_in_loop_body(syntax_element.clone()); | 221 | self.in_loop_body = is_in_loop_body(syntax_element.clone()); |