diff options
Diffstat (limited to 'crates/ide_completion/src/patterns.rs')
-rw-r--r-- | crates/ide_completion/src/patterns.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crates/ide_completion/src/patterns.rs b/crates/ide_completion/src/patterns.rs index 251d76fe9..ee87bf461 100644 --- a/crates/ide_completion/src/patterns.rs +++ b/crates/ide_completion/src/patterns.rs | |||
@@ -272,9 +272,8 @@ fn test_for_is_prev2() { | |||
272 | check_pattern_is_applicable(r"for i i$0", for_is_prev2); | 272 | check_pattern_is_applicable(r"for i i$0", for_is_prev2); |
273 | } | 273 | } |
274 | 274 | ||
275 | pub(crate) fn is_in_loop_body(element: SyntaxElement) -> bool { | 275 | pub(crate) fn is_in_loop_body(node: &SyntaxNode) -> bool { |
276 | element | 276 | node.ancestors() |
277 | .ancestors() | ||
278 | .take_while(|it| it.kind() != FN && it.kind() != CLOSURE_EXPR) | 277 | .take_while(|it| it.kind() != FN && it.kind() != CLOSURE_EXPR) |
279 | .find_map(|it| { | 278 | .find_map(|it| { |
280 | let loop_body = match_ast! { | 279 | let loop_body = match_ast! { |
@@ -285,7 +284,7 @@ pub(crate) fn is_in_loop_body(element: SyntaxElement) -> bool { | |||
285 | _ => None, | 284 | _ => None, |
286 | } | 285 | } |
287 | }; | 286 | }; |
288 | loop_body.filter(|it| it.syntax().text_range().contains_range(element.text_range())) | 287 | loop_body.filter(|it| it.syntax().text_range().contains_range(node.text_range())) |
289 | }) | 288 | }) |
290 | .is_some() | 289 | .is_some() |
291 | } | 290 | } |