Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/generate_mut_trait_impl.rs')
-rw-r--r--crates/ide-assists/src/handlers/generate_mut_trait_impl.rs24
1 files changed, 11 insertions, 13 deletions
diff --git a/crates/ide-assists/src/handlers/generate_mut_trait_impl.rs b/crates/ide-assists/src/handlers/generate_mut_trait_impl.rs
index 31e49c8ce4..f63b907d86 100644
--- a/crates/ide-assists/src/handlers/generate_mut_trait_impl.rs
+++ b/crates/ide-assists/src/handlers/generate_mut_trait_impl.rs
@@ -68,9 +68,8 @@ pub(crate) fn generate_mut_trait_impl(acc: &mut Assists, ctx: &AssistContext<'_>
target,
|edit| {
let (mut editor, impl_clone) = SyntaxEditor::with_ast_node(&impl_def.reset_indent());
- let factory = SyntaxFactory::without_mappings();
- apply_generate_mut_impl(&mut editor, &factory, &impl_clone, trait_new);
+ apply_generate_mut_impl(&mut editor, &impl_clone, trait_new);
let new_root = editor.finish();
let new_root = new_root.new_root();
@@ -84,7 +83,7 @@ pub(crate) fn generate_mut_trait_impl(acc: &mut Assists, ctx: &AssistContext<'_>
Position::before(impl_def.syntax()),
vec![
new_impl.syntax().syntax_element(),
- factory.whitespace(&format!("\n\n{indent}")).syntax_element(),
+ editor.make().whitespace(&format!("\n\n{indent}")).syntax_element(),
],
);
@@ -113,7 +112,6 @@ fn delete_with_trivia(editor: &mut SyntaxEditor, node: &SyntaxNode) {
fn apply_generate_mut_impl(
editor: &mut SyntaxEditor,
- factory: &SyntaxFactory,
impl_def: &ast::Impl,
trait_new: &str,
) -> Option<()> {
@@ -122,13 +120,13 @@ fn apply_generate_mut_impl(
let seg = path.segment()?;
let name_ref = seg.name_ref()?;
- let new_name_ref = factory.name_ref(trait_new);
+ let new_name_ref = editor.make().name_ref(trait_new);
editor.replace(name_ref.syntax(), new_name_ref.syntax());
if let Some((name, new_name)) =
impl_def.syntax().descendants().filter_map(ast::Name::cast).find_map(process_method_name)
{
- let new_name_node = factory.name(new_name);
+ let new_name_node = editor.make().name(new_name);
editor.replace(name.syntax(), new_name_node.syntax());
}
@@ -137,14 +135,14 @@ fn apply_generate_mut_impl(
}
if let Some(self_param) = impl_def.syntax().descendants().find_map(ast::SelfParam::cast) {
- let mut_self = factory.mut_self_param();
+ let mut_self = editor.make().mut_self_param();
editor.replace(self_param.syntax(), mut_self.syntax());
}
if let Some(ret_type) = impl_def.syntax().descendants().find_map(ast::RetType::cast)
- && let Some(new_ty) = process_ret_type(factory, &ret_type)
+ && let Some(new_ty) = process_ret_type(editor.make(), &ret_type)
{
- let new_ret = factory.ret_type(new_ty);
+ let new_ret = editor.make().ret_type(new_ty);
editor.replace(ret_type.syntax(), new_ret.syntax())
}
@@ -154,13 +152,13 @@ fn apply_generate_mut_impl(
_ => None,
})
}) {
- process_ref_mut(editor, factory, &fn_);
+ process_ref_mut(editor, &fn_);
}
Some(())
}
-fn process_ref_mut(editor: &mut SyntaxEditor, factory: &SyntaxFactory, fn_: &ast::Fn) {
+fn process_ref_mut(editor: &mut SyntaxEditor, fn_: &ast::Fn) {
let Some(expr) = fn_.body().and_then(|b| b.tail_expr()) else { return };
let ast::Expr::RefExpr(ref_expr) = expr else { return };
@@ -171,8 +169,8 @@ fn process_ref_mut(editor: &mut SyntaxEditor, factory: &SyntaxFactory, fn_: &ast
let Some(amp) = ref_expr.amp_token() else { return };
- let mut_kw = factory.token(T![mut]);
- let space = factory.whitespace(" ");
+ let mut_kw = editor.make().token(T![mut]);
+ let space = editor.make().whitespace(" ");
editor.insert(Position::after(amp.clone()), space.syntax_element());
editor.insert(Position::after(amp), mut_kw.syntax_element());