about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-04-03 11:13:46 +0000
committerGitHub <noreply@github.com>2022-04-03 11:13:46 +0000
commitf6bf7a3e411b90385b796340bd99feff135f9a3a (patch)
tree14eb700881d4193816a031c0a7480bb4ac197ec1
parent40cba42e479d6b67f0b1592177ae005ce8c897f3 (diff)
parenta8f460209df54a119a5346471881cb8f4a9a49be (diff)
downloadrust-f6bf7a3e411b90385b796340bd99feff135f9a3a.tar.gz
rust-f6bf7a3e411b90385b796340bd99feff135f9a3a.zip
Merge #11886
11886: add test for postfix completion relevance r=matklad a=matklad

Follow up to #11857, add a test and cov-marks

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
-rw-r--r--crates/ide_completion/src/completions/postfix.rs2
-rw-r--r--crates/ide_completion/src/render.rs32
2 files changed, 33 insertions, 1 deletions
diff --git a/crates/ide_completion/src/completions/postfix.rs b/crates/ide_completion/src/completions/postfix.rs
index 175d6f1623a..5bd69b0c1c3 100644
--- a/crates/ide_completion/src/completions/postfix.rs
+++ b/crates/ide_completion/src/completions/postfix.rs
@@ -243,8 +243,10 @@ fn build_postfix_snippet_builder<'ctx>(
                 CompletionItem::new(CompletionItemKind::Snippet, ctx.source_range(), label);
             item.detail(detail).snippet_edit(cap, edit);
             let postfix_match = if ctx.original_token.text() == label {
+                cov_mark::hit!(postfix_exact_match_is_high_priority);
                 Some(CompletionRelevancePostfixMatch::Exact)
             } else {
+                cov_mark::hit!(postfix_inexact_match_is_low_priority);
                 Some(CompletionRelevancePostfixMatch::NonExact)
             };
             let relevance = CompletionRelevance { postfix_match, ..Default::default() };
diff --git a/crates/ide_completion/src/render.rs b/crates/ide_completion/src/render.rs
index 65375494569..70ae6399f4d 100644
--- a/crates/ide_completion/src/render.rs
+++ b/crates/ide_completion/src/render.rs
@@ -1550,7 +1550,8 @@ fn foo() {
     }
 
     #[test]
-    fn postfix_completion_relevance() {
+    fn postfix_exact_match_is_high_priority() {
+        cov_mark::check!(postfix_exact_match_is_high_priority);
         check_relevance_for_kinds(
             r#"
 mod ops {
@@ -1585,4 +1586,33 @@ fn main() {
             "#]],
         );
     }
+
+    #[test]
+    fn postfix_inexact_match_is_low_priority() {
+        cov_mark::check!(postfix_inexact_match_is_low_priority);
+        check_relevance_for_kinds(
+            r#"
+struct S;
+impl S {
+    fn f(&self) {}
+}
+fn main() {
+    S.$0
+}
+    "#,
+            &[CompletionItemKind::Snippet, CompletionItemKind::Method],
+            expect![[r#"
+                me f() []
+                sn ref []
+                sn refm []
+                sn match []
+                sn box []
+                sn dbg []
+                sn dbgr []
+                sn call []
+                sn let []
+                sn letm []
+            "#]],
+        );
+    }
 }