Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/move_guard.rs')
-rw-r--r--crates/ide-assists/src/handlers/move_guard.rs38
1 files changed, 17 insertions, 21 deletions
diff --git a/crates/ide-assists/src/handlers/move_guard.rs b/crates/ide-assists/src/handlers/move_guard.rs
index ec4acdafa9..7309cc6d06 100644
--- a/crates/ide-assists/src/handlers/move_guard.rs
+++ b/crates/ide-assists/src/handlers/move_guard.rs
@@ -73,24 +73,24 @@ pub(crate) fn move_guard_to_arm_body(acc: &mut Assists, ctx: &AssistContext<'_>)
"Move guard to arm body",
target,
|builder| {
- let mut edit = builder.make_editor(match_arm.syntax());
+ let editor = builder.make_editor(match_arm.syntax());
for element in space_before_delete {
if element.kind() == WHITESPACE {
- edit.delete(element);
+ editor.delete(element);
}
}
for rest_arm in &rest_arms {
- edit.delete(rest_arm.syntax());
+ editor.delete(rest_arm.syntax());
}
if let Some(element) = space_after_arrow
&& element.kind() == WHITESPACE
{
- edit.replace(element, make.whitespace(" "));
+ editor.replace(element, make.whitespace(" "));
}
- edit.delete(guard.syntax());
- edit.replace(arm_expr.syntax(), if_expr.syntax());
- builder.add_file_edits(ctx.vfs_file_id(), edit);
+ editor.delete(guard.syntax());
+ editor.replace(arm_expr.syntax(), if_expr.syntax());
+ builder.add_file_edits(ctx.vfs_file_id(), editor);
},
)
}
@@ -156,7 +156,8 @@ pub(crate) fn move_arm_cond_to_match_guard(
"Move condition to match guard",
replace_node.text_range(),
|builder| {
- let mut editor = builder.make_editor(match_arm.syntax());
+ let editor = builder.make_editor(match_arm.syntax());
+ let make = editor.make();
let mut replace_arms = vec![];
// Dedent if if_expr is in a BlockExpr
@@ -175,17 +176,17 @@ pub(crate) fn move_arm_cond_to_match_guard(
(Some(lhs), Some(rhs)) => {
let op_expr = |expr: Expr| {
if expr.precedence().needs_parentheses_in(ExprPrecedence::LAnd) {
- editor.make().expr_paren(expr).into()
+ make.expr_paren(expr).into()
} else {
expr
}
};
let op = syntax::ast::BinaryOp::LogicOp(syntax::ast::LogicOp::And);
- let expr_bin = editor.make().expr_bin(op_expr(lhs), op, op_expr(rhs));
+ let expr_bin = make.expr_bin(op_expr(lhs), op, op_expr(rhs));
expr_bin.into()
}
};
- Some(editor.make().match_guard(condition))
+ Some(make.match_guard(condition))
};
for (cond, block) in conds_blocks {
@@ -194,8 +195,7 @@ pub(crate) fn move_arm_cond_to_match_guard(
Some(then_expr) if only_expr => then_expr,
_ => block.dedent(dedent.into()).into(),
};
- let new_arm =
- editor.make().match_arm(match_pat.clone(), make_guard(Some(cond)), expr);
+ let new_arm = make.match_arm(match_pat.clone(), make_guard(Some(cond)), expr);
replace_arms.push(new_arm);
}
if let Some(block) = tail {
@@ -208,7 +208,7 @@ pub(crate) fn move_arm_cond_to_match_guard(
}
_ => block.dedent(dedent.into()).into(),
};
- let new_arm = editor.make().match_arm(match_pat, make_guard(None), expr);
+ let new_arm = make.match_arm(match_pat, make_guard(None), expr);
replace_arms.push(new_arm);
} else {
// There's no else branch. Add a pattern without guard, unless the following match
@@ -222,17 +222,13 @@ pub(crate) fn move_arm_cond_to_match_guard(
cov_mark::hit!(move_guard_ifelse_has_wildcard);
}
_ => {
- let block_expr = editor.make().expr_empty_block().into();
- replace_arms.push(editor.make().match_arm(
- match_pat,
- make_guard(None),
- block_expr,
- ));
+ let block_expr = make.expr_empty_block().into();
+ replace_arms.push(make.match_arm(match_pat, make_guard(None), block_expr));
}
}
}
- let newline = editor.make().whitespace(&format!("\n{indent_level}"));
+ let newline = make.whitespace(&format!("\n{indent_level}"));
let replace_arms = replace_arms.iter().map(|it| it.syntax().syntax_element());
let replace_arms = Itertools::intersperse(replace_arms, newline.syntax_element());
editor.replace_with_many(match_arm.syntax(), replace_arms.collect());