about summary refs log tree commit diff
diff options
context:
space:
mode:
authorroife <roifewu@gmail.com>2024-09-03 05:16:02 +0800
committerroife <roifewu@gmail.com>2024-09-03 05:23:04 +0800
commitef491f22999bb964ac92b64935d7ffe722e9c5a8 (patch)
tree8faf03b59fbb7f4ed5edd30fb3008ba3b7020357
parent5f7fcbe0d4dbd34c01dc6ae16e19a0f00035ba2f (diff)
downloadrust-ef491f22999bb964ac92b64935d7ffe722e9c5a8.tar.gz
rust-ef491f22999bb964ac92b64935d7ffe722e9c5a8.zip
tests: suggesting names in completions for let_stmt and fn_param
-rw-r--r--src/tools/rust-analyzer/crates/ide-completion/src/tests/pattern.rs73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-completion/src/tests/pattern.rs b/src/tools/rust-analyzer/crates/ide-completion/src/tests/pattern.rs
index 6a0b67e291a..bd3e7c72bcd 100644
--- a/src/tools/rust-analyzer/crates/ide-completion/src/tests/pattern.rs
+++ b/src/tools/rust-analyzer/crates/ide-completion/src/tests/pattern.rs
@@ -198,6 +198,7 @@ fn foo(a$0: Tuple) {
             st Unit
             bn Record {…} Record { field$1 }$0
             bn Tuple(…)   Tuple($1)$0
+            bn tuple
             kw mut
             kw ref
         "#]],
@@ -850,3 +851,75 @@ fn foo() {
 "#,
     );
 }
+
+#[test]
+fn suggest_name_for_pattern() {
+    check_edit(
+        "s1",
+        r#"
+struct S1;
+
+fn foo() {
+    let $0 = S1;
+}
+"#,
+        r#"
+struct S1;
+
+fn foo() {
+    let s1 = S1;
+}
+"#,
+    );
+
+    check_edit(
+        "s1",
+        r#"
+struct S1;
+
+fn foo(s$0: S1) {
+}
+"#,
+        r#"
+struct S1;
+
+fn foo(s1: S1) {
+}
+"#,
+    );
+
+    // Tests for &adt
+    check_edit(
+        "s1",
+        r#"
+struct S1;
+
+fn foo() {
+    let $0 = &S1;
+}
+"#,
+        r#"
+struct S1;
+
+fn foo() {
+    let s1 = &S1;
+}
+"#,
+    );
+
+    // Do not suggest reserved keywords
+    check_empty(
+        r#"
+struct Struct;
+
+fn foo() {
+    let $0 = Struct;
+}
+"#,
+        expect![[r#"
+            st Struct
+            kw mut
+            kw ref
+        "#]],
+    );
+}