@@ -80,8 +80,9 @@ pub(crate) fn apply_demorgan(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opti
8080 _ => return None ,
8181 } ;
8282
83- let ( mut editor, demorganed) = SyntaxEditor :: with_ast_node ( & bin_expr) ;
84- editor. replace ( demorganed. op_token ( ) ?, editor. make ( ) . token ( inv_token) ) ;
83+ let ( editor, demorganed) = SyntaxEditor :: with_ast_node ( & bin_expr) ;
84+ let make = editor. make ( ) ;
85+ editor. replace ( demorganed. op_token ( ) ?, make. token ( inv_token) ) ;
8586
8687 let mut exprs = VecDeque :: from ( [
8788 ( bin_expr. lhs ( ) ?, demorganed. lhs ( ) ?, prec) ,
@@ -92,23 +93,23 @@ pub(crate) fn apply_demorgan(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opti
9293 if let BinExpr ( bin_expr) = & expr {
9394 if let BinExpr ( cbin_expr) = & demorganed {
9495 if op == bin_expr. op_kind ( ) ? {
95- editor. replace ( cbin_expr. op_token ( ) ?, editor . make ( ) . token ( inv_token) ) ;
96+ editor. replace ( cbin_expr. op_token ( ) ?, make. token ( inv_token) ) ;
9697 exprs. push_back ( ( bin_expr. lhs ( ) ?, cbin_expr. lhs ( ) ?, prec) ) ;
9798 exprs. push_back ( ( bin_expr. rhs ( ) ?, cbin_expr. rhs ( ) ?, prec) ) ;
9899 } else {
99- let mut inv = invert_boolean_expression ( editor . make ( ) , expr) ;
100+ let mut inv = invert_boolean_expression ( make, expr) ;
100101 if precedence ( & inv) . needs_parentheses_in ( prec) {
101- inv = editor . make ( ) . expr_paren ( inv) . into ( ) ;
102+ inv = make. expr_paren ( inv) . into ( ) ;
102103 }
103104 editor. replace ( demorganed. syntax ( ) , inv. syntax ( ) ) ;
104105 }
105106 } else {
106107 return None ;
107108 }
108109 } else {
109- let mut inv = invert_boolean_expression ( editor . make ( ) , demorganed. clone ( ) ) ;
110+ let mut inv = invert_boolean_expression ( make, demorganed. clone ( ) ) ;
110111 if precedence ( & inv) . needs_parentheses_in ( prec) {
111- inv = editor . make ( ) . expr_paren ( inv) . into ( ) ;
112+ inv = make. expr_paren ( inv) . into ( ) ;
112113 }
113114 editor. replace ( demorganed. syntax ( ) , inv. syntax ( ) ) ;
114115 }
@@ -123,7 +124,8 @@ pub(crate) fn apply_demorgan(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opti
123124 "Apply De Morgan's law" ,
124125 op_range,
125126 |builder| {
126- let mut editor = builder. make_editor ( bin_expr. syntax ( ) ) ;
127+ let editor = builder. make_editor ( bin_expr. syntax ( ) ) ;
128+ let make = editor. make ( ) ;
127129
128130 let ( target_node, result_expr) = if let Some ( neg_expr) = bin_expr
129131 . syntax ( )
@@ -139,17 +141,17 @@ pub(crate) fn apply_demorgan(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opti
139141 bin_expr. syntax ( ) . parent ( ) . and_then ( ast:: ParenExpr :: cast)
140142 {
141143 cov_mark:: hit!( demorgan_double_parens) ;
142- ( paren_expr. syntax ( ) . clone ( ) , add_bang_paren ( editor . make ( ) , demorganed) )
144+ ( paren_expr. syntax ( ) . clone ( ) , add_bang_paren ( make, demorganed) )
143145 } else {
144- ( bin_expr. syntax ( ) . clone ( ) , add_bang_paren ( editor . make ( ) , demorganed) )
146+ ( bin_expr. syntax ( ) . clone ( ) , add_bang_paren ( make, demorganed) )
145147 } ;
146148
147149 let final_expr = if target_node
148150 . parent ( )
149151 . is_some_and ( |p| result_expr. needs_parens_in_place_of ( & p, & target_node) )
150152 {
151153 cov_mark:: hit!( demorgan_keep_parens_for_op_precedence2) ;
152- editor . make ( ) . expr_paren ( result_expr) . into ( )
154+ make. expr_paren ( result_expr) . into ( )
153155 } else {
154156 result_expr
155157 } ;
@@ -202,17 +204,18 @@ pub(crate) fn apply_demorgan_iterator(acc: &mut Assists, ctx: &AssistContext<'_>
202204 label,
203205 op_range,
204206 |builder| {
205- let mut editor = builder. make_editor ( method_call. syntax ( ) ) ;
207+ let editor = builder. make_editor ( method_call. syntax ( ) ) ;
208+ let make = editor. make ( ) ;
206209 // replace the method name
207210 let new_name = match name. text ( ) . as_str ( ) {
208- "all" => editor . make ( ) . name_ref ( "any" ) ,
209- "any" => editor . make ( ) . name_ref ( "all" ) ,
211+ "all" => make. name_ref ( "any" ) ,
212+ "any" => make. name_ref ( "all" ) ,
210213 _ => unreachable ! ( ) ,
211214 } ;
212215 editor. replace ( name. syntax ( ) , new_name. syntax ( ) ) ;
213216
214217 // negate all tail expressions in the closure body
215- let tail_cb = & mut |e : & _ | tail_cb_impl ( & mut editor, e) ;
218+ let tail_cb = & mut |e : & _ | tail_cb_impl ( & editor, e) ;
216219 walk_expr ( & closure_body, & mut |expr| {
217220 if let ast:: Expr :: ReturnExpr ( ret_expr) = expr
218221 && let Some ( ret_expr_arg) = & ret_expr. expr ( )
@@ -233,10 +236,7 @@ pub(crate) fn apply_demorgan_iterator(acc: &mut Assists, ctx: &AssistContext<'_>
233236 prefix_expr. op_token ( ) . expect ( "prefix expression always has an operator" ) ,
234237 ) ;
235238 } else {
236- editor. insert (
237- Position :: before ( method_call. syntax ( ) ) ,
238- editor. make ( ) . token ( SyntaxKind :: BANG ) ,
239- ) ;
239+ editor. insert ( Position :: before ( method_call. syntax ( ) ) , make. token ( SyntaxKind :: BANG ) ) ;
240240 }
241241 builder. add_file_edits ( ctx. vfs_file_id ( ) , editor) ;
242242 } ,
@@ -265,7 +265,7 @@ fn validate_method_call_expr(
265265 it_type. impls_trait ( sema. db , iter_trait, & [ ] ) . then_some ( ( name_ref, arg_expr) )
266266}
267267
268- fn tail_cb_impl ( editor : & mut SyntaxEditor , e : & ast:: Expr ) {
268+ fn tail_cb_impl ( editor : & SyntaxEditor , e : & ast:: Expr ) {
269269 match e {
270270 ast:: Expr :: BreakExpr ( break_expr) => {
271271 if let Some ( break_expr_arg) = break_expr. expr ( ) {
0 commit comments