Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/keyword.rs')
-rw-r--r--crates/ide-completion/src/completions/keyword.rs96
1 files changed, 93 insertions, 3 deletions
diff --git a/crates/ide-completion/src/completions/keyword.rs b/crates/ide-completion/src/completions/keyword.rs
index 039742463c..64bb1fce6b 100644
--- a/crates/ide-completion/src/completions/keyword.rs
+++ b/crates/ide-completion/src/completions/keyword.rs
@@ -336,7 +336,7 @@ fn main() {
}
#[test]
- fn completes_let_with_space() {
+ fn completes_let_in_block() {
check_edit(
"let",
r#"
@@ -346,7 +346,7 @@ fn main() {
"#,
r#"
fn main() {
- let $0
+ let $1 = $0;
}
"#,
);
@@ -359,7 +359,97 @@ fn main() {
"#,
r#"
fn main() {
- let mut $0
+ let mut $1 = $0;
+}
+"#,
+ );
+ }
+
+ #[test]
+ fn completes_let_in_condition() {
+ check_edit(
+ "let",
+ r#"
+fn main() {
+ if $0 {}
+}
+"#,
+ r#"
+fn main() {
+ if let $1 = $0 {}
+}
+"#,
+ );
+ check_edit(
+ "letm",
+ r#"
+fn main() {
+ if $0 {}
+}
+"#,
+ r#"
+fn main() {
+ if let mut $1 = $0 {}
+}
+"#,
+ );
+ }
+
+ #[test]
+ fn completes_let_in_no_empty_condition() {
+ check_edit(
+ "let",
+ r#"
+fn main() {
+ if $0x {}
+}
+"#,
+ r#"
+fn main() {
+ if let $1 = $0x {}
+}
+"#,
+ );
+ check_edit(
+ "letm",
+ r#"
+fn main() {
+ if $0x {}
+}
+"#,
+ r#"
+fn main() {
+ if let mut $1 = $0x {}
+}
+"#,
+ );
+ }
+
+ #[test]
+ fn completes_let_in_condition_block() {
+ check_edit(
+ "let",
+ r#"
+fn main() {
+ if { $0 } {}
+}
+"#,
+ r#"
+fn main() {
+ if { let $1 = $0; } {}
+}
+"#,
+ );
+ check_edit(
+ "letm",
+ r#"
+fn main() {
+ if { $0 } {}
+}
+"#,
+ r#"
+fn main() {
+ if { let mut $1 = $0; } {}
}
"#,
);