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.rs24
1 files changed, 13 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 6ff5f0bbd3..5f6909ea3e 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
@@ -47,7 +47,6 @@ pub(crate) fn replace_let_with_if_let(acc: &mut Assists, ctx: &AssistContext<'_>
target,
|builder| {
let mut editor = builder.make_editor(let_stmt.syntax());
- let make = SyntaxFactory::with_mappings();
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`,
@@ -59,27 +58,30 @@ pub(crate) fn replace_let_with_if_let(acc: &mut Assists, ctx: &AssistContext<'_>
.map(|it| it.happy_case());
match happy_variant {
None => original_pat,
- Some(var_name) => {
- make.tuple_struct_pat(make.ident_path(var_name), [original_pat]).into()
- }
+ Some(var_name) => editor
+ .make()
+ .tuple_struct_pat(editor.make().ident_path(var_name), [original_pat])
+ .into(),
}
};
- let init_expr =
- if let_expr_needs_paren(&init) { make.expr_paren(init).into() } else { init };
+ let init_expr = if let_expr_needs_paren(&init) {
+ editor.make().expr_paren(init).into()
+ } else {
+ init
+ };
- let block = make.block_expr([], None);
+ let block = editor.make().block_expr([], None);
let block = block.indent(IndentLevel::from_node(let_stmt.syntax()));
- let if_expr = make.expr_if(
- make.expr_let(pat, init_expr).into(),
+ let if_expr = editor.make().expr_if(
+ editor.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 = make.expr_stmt(if_expr.into());
+ let if_stmt = editor.make().expr_stmt(if_expr.into());
editor.replace(let_stmt.syntax(), if_stmt.syntax());
- editor.add_mappings(make.finish_with_mappings());
builder.add_file_edits(ctx.vfs_file_id(), editor);
},
)