Skip to content

Commit 98847e4

Browse files
committed
internal: use the new edit_in_place::Indent API
1 parent d6c4165 commit 98847e4

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

crates/ide_assists/src/handlers/convert_iter_for_each_to_for.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use ide_db::helpers::FamousDefs;
22
use syntax::{
3-
ast::{self, edit::AstNodeEdit, make, ArgListOwner},
3+
ast::{self, edit_in_place::Indent, make, ArgListOwner},
44
AstNode,
55
};
66

@@ -46,24 +46,25 @@ pub(crate) fn convert_iter_for_each_to_for(acc: &mut Assists, ctx: &AssistContex
4646
let body = closure.body()?;
4747

4848
let stmt = method.syntax().parent().and_then(ast::ExprStmt::cast);
49-
let syntax = stmt.as_ref().map_or(method.syntax(), |stmt| stmt.syntax());
49+
let range = stmt.as_ref().map_or_else(|| method.syntax(), AstNode::syntax).text_range();
5050

5151
acc.add(
5252
AssistId("convert_iter_for_each_to_for", AssistKind::RefactorRewrite),
5353
"Replace this `Iterator::for_each` with a for loop",
54-
syntax.text_range(),
54+
range,
5555
|builder| {
56-
let indent = stmt.as_ref().map_or(method.indent_level(), |stmt| stmt.indent_level());
56+
let indent =
57+
stmt.as_ref().map_or_else(|| method.indent_level(), ast::ExprStmt::indent_level);
5758

5859
let block = match body {
5960
ast::Expr::BlockExpr(block) => block,
6061
_ => make::block_expr(Vec::new(), Some(body)),
6162
}
62-
.reset_indent()
63-
.indent(indent);
63+
.clone_for_update();
64+
block.reset_indent().indent(indent);
6465

6566
let expr_for_loop = make::expr_for_loop(param, receiver, block);
66-
builder.replace(syntax.text_range(), expr_for_loop.syntax().text())
67+
builder.replace(range, expr_for_loop.to_string())
6768
},
6869
)
6970
}

0 commit comments

Comments
 (0)