aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/completion/completion_item.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-02-11 20:40:08 +0000
committerAleksey Kladov <[email protected]>2019-02-11 20:43:24 +0000
commit8ef80086a0ee81b4dedab6d37a9a2e7fe5bce38a (patch)
tree6be1668b8cf61d4d67054581a10424be0aaeaa0e /crates/ra_ide_api/src/completion/completion_item.rs
parentdb6d214411505de6534fce183e9bea8109bc5283 (diff)
fix regression in self-referential completion
Diffstat (limited to 'crates/ra_ide_api/src/completion/completion_item.rs')
-rw-r--r--crates/ra_ide_api/src/completion/completion_item.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/ra_ide_api/src/completion/completion_item.rs b/crates/ra_ide_api/src/completion/completion_item.rs
index 7b8972af0..22ff08a23 100644
--- a/crates/ra_ide_api/src/completion/completion_item.rs
+++ b/crates/ra_ide_api/src/completion/completion_item.rs
@@ -306,10 +306,9 @@ fn function_item_label(ctx: &CompletionContext, function: hir::Function) -> Opti
306} 306}
307 307
308#[cfg(test)] 308#[cfg(test)]
309pub(crate) fn check_completion(test_name: &str, code: &str, kind: CompletionKind) { 309pub(crate) fn do_completion(code: &str, kind: CompletionKind) -> Vec<CompletionItem> {
310 use crate::mock_analysis::{single_file_with_position, analysis_and_position}; 310 use crate::mock_analysis::{single_file_with_position, analysis_and_position};
311 use crate::completion::completions; 311 use crate::completion::completions;
312 use insta::assert_debug_snapshot_matches;
313 let (analysis, position) = if code.contains("//-") { 312 let (analysis, position) = if code.contains("//-") {
314 analysis_and_position(code) 313 analysis_and_position(code)
315 } else { 314 } else {
@@ -320,6 +319,13 @@ pub(crate) fn check_completion(test_name: &str, code: &str, kind: CompletionKind
320 let mut kind_completions: Vec<CompletionItem> = 319 let mut kind_completions: Vec<CompletionItem> =
321 completion_items.into_iter().filter(|c| c.completion_kind == kind).collect(); 320 completion_items.into_iter().filter(|c| c.completion_kind == kind).collect();
322 kind_completions.sort_by_key(|c| c.label.clone()); 321 kind_completions.sort_by_key(|c| c.label.clone());
322 kind_completions
323}
324
325#[cfg(test)]
326pub(crate) fn check_completion(test_name: &str, code: &str, kind: CompletionKind) {
327 use insta::assert_debug_snapshot_matches;
328 let kind_completions = do_completion(code, kind);
323 assert_debug_snapshot_matches!(test_name, kind_completions); 329 assert_debug_snapshot_matches!(test_name, kind_completions);
324} 330}
325 331