Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/inline_local_variable.rs')
-rw-r--r--crates/ide-assists/src/handlers/inline_local_variable.rs18
1 files changed, 8 insertions, 10 deletions
diff --git a/crates/ide-assists/src/handlers/inline_local_variable.rs b/crates/ide-assists/src/handlers/inline_local_variable.rs
index f55ef4229e..2af074f1fc 100644
--- a/crates/ide-assists/src/handlers/inline_local_variable.rs
+++ b/crates/ide-assists/src/handlers/inline_local_variable.rs
@@ -7,7 +7,7 @@ use ide_db::{
};
use syntax::{
Direction, TextRange,
- ast::{self, AstNode, AstToken, HasName, syntax_factory::SyntaxFactory},
+ ast::{self, AstNode, AstToken, HasName},
syntax_editor::{Element, SyntaxEditor},
};
@@ -83,7 +83,8 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext<'_>)
"Inline variable",
target.text_range(),
move |builder| {
- let mut editor = builder.make_editor(&target);
+ let editor = builder.make_editor(&target);
+ let make = editor.make();
if delete_let {
editor.delete(let_stmt.syntax());
@@ -91,15 +92,13 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext<'_>)
&& let Some(op_token) = bin_expr.op_token()
{
editor.delete(&op_token);
- remove_whitespace(op_token, Direction::Prev, &mut editor);
- remove_whitespace(let_stmt.syntax(), Direction::Prev, &mut editor);
+ remove_whitespace(op_token, Direction::Prev, &editor);
+ remove_whitespace(let_stmt.syntax(), Direction::Prev, &editor);
} else {
- remove_whitespace(let_stmt.syntax(), Direction::Next, &mut editor);
+ remove_whitespace(let_stmt.syntax(), Direction::Next, &editor);
}
}
- let make = SyntaxFactory::with_mappings();
-
for (name, should_wrap) in wrap_in_parens {
let replacement = if should_wrap {
make.expr_paren(initializer_expr.clone()).into()
@@ -115,8 +114,6 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext<'_>)
editor.replace(name.syntax(), replacement.syntax());
}
}
-
- editor.add_mappings(make.finish_with_mappings());
builder.add_file_edits(ctx.vfs_file_id(), editor);
},
)
@@ -204,7 +201,7 @@ fn inline_usage(
Some(InlineData { let_stmt, delete_let, target: ast::NameOrNameRef::NameRef(name), references })
}
-fn remove_whitespace(elem: impl Element, dir: Direction, editor: &mut SyntaxEditor) {
+fn remove_whitespace(elem: impl Element, dir: Direction, editor: &SyntaxEditor) {
let token = match elem.syntax_element() {
syntax::NodeOrToken::Node(node) => match dir {
Direction::Next => node.last_token(),
@@ -1054,6 +1051,7 @@ fn f() {
check_assist(
inline_local_variable,
r#"
+//- minicore: fn
fn main() {
let $0f = || 2;
let _ = f();