1
1
use ide_db:: helpers:: FamousDefs ;
2
- use syntax:: { AstNode , ast:: { self , make, ArgListOwner , edit:: AstNodeEdit } } ;
2
+ use syntax:: {
3
+ ast:: { self , edit:: AstNodeEdit , make, ArgListOwner } ,
4
+ AstNode ,
5
+ } ;
3
6
4
7
use crate :: { AssistContext , AssistId , AssistKind , Assists } ;
5
8
@@ -31,16 +34,20 @@ pub(crate) fn convert_iter_for_each_to_for(acc: &mut Assists, ctx: &AssistContex
31
34
ast:: Expr :: MethodCallExpr ( expr) => {
32
35
closure = match expr. arg_list ( ) ?. args ( ) . next ( ) ? {
33
36
ast:: Expr :: ClosureExpr ( expr) => expr,
34
- _ => { return None ; }
37
+ _ => {
38
+ return None ;
39
+ }
35
40
} ;
36
-
41
+
37
42
expr
38
- } ,
43
+ }
39
44
ast:: Expr :: ClosureExpr ( expr) => {
40
45
closure = expr;
41
46
ast:: MethodCallExpr :: cast ( closure. syntax ( ) . ancestors ( ) . nth ( 2 ) ?) ?
42
- } ,
43
- _ => { return None ; }
47
+ }
48
+ _ => {
49
+ return None ;
50
+ }
44
51
} ;
45
52
46
53
let ( total_expr, parent) = validate_method_call_expr ( & ctx. sema , total_expr) ?;
@@ -58,8 +65,10 @@ pub(crate) fn convert_iter_for_each_to_for(acc: &mut Assists, ctx: &AssistContex
58
65
59
66
let block = match body {
60
67
ast:: Expr :: BlockExpr ( block) => block,
61
- _ => make:: block_expr ( Vec :: new ( ) , Some ( body) )
62
- } . reset_indent ( ) . indent ( original_indentation) ;
68
+ _ => make:: block_expr ( Vec :: new ( ) , Some ( body) ) ,
69
+ }
70
+ . reset_indent ( )
71
+ . indent ( original_indentation) ;
63
72
64
73
let expr_for_loop = make:: expr_for_loop ( param, parent, block) ;
65
74
builder. replace_ast ( total_expr, expr_for_loop)
@@ -187,6 +196,7 @@ fn main() {
187
196
r#"
188
197
fn main() {
189
198
value.$0for_each(|x| println!("{}", x));
190
- }"# )
199
+ }"# ,
200
+ )
191
201
}
192
- }
202
+ }
0 commit comments