Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/replace_let_with_if_let.rs')
-rw-r--r--crates/ide-assists/src/handlers/replace_let_with_if_let.rs20
1 files changed, 9 insertions, 11 deletions
diff --git a/crates/ide-assists/src/handlers/replace_let_with_if_let.rs b/crates/ide-assists/src/handlers/replace_let_with_if_let.rs
index 5f6909ea3e..d36f7f1f06 100644
--- a/crates/ide-assists/src/handlers/replace_let_with_if_let.rs
+++ b/crates/ide-assists/src/handlers/replace_let_with_if_let.rs
@@ -46,7 +46,8 @@ pub(crate) fn replace_let_with_if_let(acc: &mut Assists, ctx: &AssistContext<'_>
"Replace let with if let",
target,
|builder| {
- let mut editor = builder.make_editor(let_stmt.syntax());
+ let editor = builder.make_editor(let_stmt.syntax());
+ let make = editor.make();
let ty = ctx.sema.type_of_expr(&init);
let pat = if let_stmt.let_else().is_some() {
// Do not add the wrapper type that implements `Try`,
@@ -60,26 +61,23 @@ pub(crate) fn replace_let_with_if_let(acc: &mut Assists, ctx: &AssistContext<'_>
None => original_pat,
Some(var_name) => editor
.make()
- .tuple_struct_pat(editor.make().ident_path(var_name), [original_pat])
+ .tuple_struct_pat(make.ident_path(var_name), [original_pat])
.into(),
}
};
- let init_expr = if let_expr_needs_paren(&init) {
- editor.make().expr_paren(init).into()
- } else {
- init
- };
+ let init_expr =
+ if let_expr_needs_paren(&init) { make.expr_paren(init).into() } else { init };
- let block = editor.make().block_expr([], None);
+ let block = make.block_expr([], None);
let block = block.indent(IndentLevel::from_node(let_stmt.syntax()));
- let if_expr = editor.make().expr_if(
- editor.make().expr_let(pat, init_expr).into(),
+ let if_expr = make.expr_if(
+ make.expr_let(pat, init_expr).into(),
block,
let_stmt
.let_else()
.and_then(|let_else| let_else.block_expr().map(ast::ElseBranch::from)),
);
- let if_stmt = editor.make().expr_stmt(if_expr.into());
+ let if_stmt = make.expr_stmt(if_expr.into());
editor.replace(let_stmt.syntax(), if_stmt.syntax());
builder.add_file_edits(ctx.vfs_file_id(), editor);