Skip to content

Commit e627f38

Browse files
committed
fix(ide-completion): fix handling of for in impl T for A in function body
1 parent 13ac53e commit e627f38

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

crates/ide-completion/src/completions/keyword.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,51 @@ fn foo(a: A) { a.$0 }
150150
);
151151
}
152152

153+
#[test]
154+
fn for_in_impl() {
155+
check_edit(
156+
"for",
157+
r#"
158+
struct X;
159+
impl X $0 {}
160+
"#,
161+
r#"
162+
struct X;
163+
impl X for $0 {}
164+
"#,
165+
);
166+
check_edit(
167+
"for",
168+
r#"
169+
fn foo() {
170+
struct X;
171+
impl X $0 {}
172+
}
173+
"#,
174+
r#"
175+
fn foo() {
176+
struct X;
177+
impl X for $0 {}
178+
}
179+
"#,
180+
);
181+
check_edit(
182+
"for",
183+
r#"
184+
fn foo() {
185+
struct X;
186+
impl X { fn bar() { $0 } }
187+
}
188+
"#,
189+
r#"
190+
fn foo() {
191+
struct X;
192+
impl X { fn bar() { for $1 in $2 { $0 } } }
193+
}
194+
"#,
195+
);
196+
}
197+
153198
#[test]
154199
fn let_semi() {
155200
cov_mark::check!(let_semi);

0 commit comments

Comments
 (0)