aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion/completion_context.rs
diff options
context:
space:
mode:
authorMikhail Rakhmanov <[email protected]>2020-06-11 23:17:30 +0100
committerMikhail Rakhmanov <[email protected]>2020-06-11 23:17:30 +0100
commita2b4385f161134955fd729087f142d54c3a5e035 (patch)
tree57340237a1bc00f3b5383881bc289d224e4c6ee3 /crates/ra_ide/src/completion/completion_context.rs
parentf46bc12199dc88b88bd826f49d5c5af6e9caf727 (diff)
Add few smoke tests for patterns and refactoring
Diffstat (limited to 'crates/ra_ide/src/completion/completion_context.rs')
-rw-r--r--crates/ra_ide/src/completion/completion_context.rs13
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::{
12use ra_text_edit::Indel; 12use ra_text_edit::Indel;
13 13
14use super::patterns::{ 14use 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};
18use crate::{call_info::ActiveParameter, completion::CompletionConfig, FilePosition}; 18use crate::{call_info::ActiveParameter, completion::CompletionConfig, FilePosition};
19use test_utils::mark; 19use 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());