Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/convert_bool_then.rs')
-rw-r--r--crates/ide-assists/src/handlers/convert_bool_then.rs23
1 files changed, 11 insertions, 12 deletions
diff --git a/crates/ide-assists/src/handlers/convert_bool_then.rs b/crates/ide-assists/src/handlers/convert_bool_then.rs
index 8b0b7d3b07..cb2e7d6d10 100644
--- a/crates/ide-assists/src/handlers/convert_bool_then.rs
+++ b/crates/ide-assists/src/handlers/convert_bool_then.rs
@@ -77,7 +77,7 @@ pub(crate) fn convert_if_to_bool_then(acc: &mut Assists, ctx: &AssistContext<'_>
"Convert `if` expression to `bool::then` call",
target,
|builder| {
- let (mut editor, closure_body) = SyntaxEditor::with_ast_node(&closure_body);
+ let (editor, closure_body) = SyntaxEditor::with_ast_node(&closure_body);
// Rewrite all `Some(e)` in tail position to `e`
for_each_tail_expr(&closure_body, &mut |e| {
let e = match e {
@@ -95,13 +95,13 @@ pub(crate) fn convert_if_to_bool_then(acc: &mut Assists, ctx: &AssistContext<'_>
let edit = editor.finish();
let closure_body = ast::Expr::cast(edit.new_root().clone()).unwrap();
- let mut editor = builder.make_editor(expr.syntax());
+ let editor = builder.make_editor(expr.syntax());
+ let make = editor.make();
let closure_body = match closure_body {
ast::Expr::BlockExpr(block) => unwrap_trivial_block(block),
e => e,
};
- let cond =
- if invert_cond { invert_boolean_expression(editor.make(), cond) } else { cond };
+ let cond = if invert_cond { invert_boolean_expression(make, cond) } else { cond };
let parenthesize = matches!(
cond,
@@ -124,11 +124,9 @@ pub(crate) fn convert_if_to_bool_then(acc: &mut Assists, ctx: &AssistContext<'_>
| ast::Expr::YieldExpr(_)
);
- let cond = if parenthesize { editor.make().expr_paren(cond).into() } else { cond };
- let arg_list =
- editor.make().arg_list(Some(editor.make().expr_closure(None, closure_body).into()));
- let mcall =
- editor.make().expr_method_call(cond, editor.make().name_ref("then"), arg_list);
+ let cond = if parenthesize { make.expr_paren(cond).into() } else { cond };
+ let arg_list = make.arg_list(Some(make.expr_closure(None, closure_body).into()));
+ let mcall = make.expr_method_call(cond, make.name_ref("then"), arg_list);
editor.replace(expr.syntax(), mcall.syntax());
builder.add_file_edits(ctx.vfs_file_id(), editor);
},
@@ -187,7 +185,7 @@ pub(crate) fn convert_bool_then_to_if(acc: &mut Assists, ctx: &AssistContext<'_>
e => mapless_make.block_expr(None, Some(e)),
};
- let (mut editor, closure_body) = SyntaxEditor::with_ast_node(&closure_body);
+ let (editor, closure_body) = SyntaxEditor::with_ast_node(&closure_body);
// Wrap all tails in `Some(...)`
let none_path = mapless_make.expr_path(mapless_make.ident_path("None"));
let some_path = mapless_make.expr_path(mapless_make.ident_path("Some"));
@@ -210,7 +208,8 @@ pub(crate) fn convert_bool_then_to_if(acc: &mut Assists, ctx: &AssistContext<'_>
let edit = editor.finish();
let closure_body = ast::BlockExpr::cast(edit.new_root().clone()).unwrap();
- let mut editor = builder.make_editor(mcall.syntax());
+ let editor = builder.make_editor(mcall.syntax());
+ let make = editor.make();
let cond = match &receiver {
ast::Expr::ParenExpr(expr) => expr.expr().unwrap_or(receiver),
@@ -221,7 +220,7 @@ pub(crate) fn convert_bool_then_to_if(acc: &mut Assists, ctx: &AssistContext<'_>
.expr_if(
cond,
closure_body,
- Some(ast::ElseBranch::Block(editor.make().block_expr(None, Some(none_path)))),
+ Some(ast::ElseBranch::Block(make.block_expr(None, Some(none_path)))),
)
.indent(mcall.indent_level());
editor.replace(mcall.syntax().clone(), if_expr.syntax().clone());