Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide-assists/src/handlers/qualify_method_call.rs14
-rw-r--r--crates/ide-assists/src/handlers/qualify_path.rs3
2 files changed, 11 insertions, 6 deletions
diff --git a/crates/ide-assists/src/handlers/qualify_method_call.rs b/crates/ide-assists/src/handlers/qualify_method_call.rs
index 495a84d62b..8b9e6570e9 100644
--- a/crates/ide-assists/src/handlers/qualify_method_call.rs
+++ b/crates/ide-assists/src/handlers/qualify_method_call.rs
@@ -1,6 +1,6 @@
use hir::{AsAssocItem, AssocItem, AssocItemContainer, ItemInNs, ModuleDef, db::HirDatabase};
use ide_db::assists::AssistId;
-use syntax::{AstNode, ast};
+use syntax::{AstNode, ast, ast::syntax_factory::SyntaxFactory};
use crate::{
assist_context::{AssistContext, Assists},
@@ -52,19 +52,25 @@ pub(crate) fn qualify_method_call(acc: &mut Assists, ctx: &AssistContext<'_>) ->
cfg,
)?;
- let qualify_candidate = QualifyCandidate::ImplMethod(ctx.sema.db, call, resolved_call);
+ let qualify_candidate = QualifyCandidate::ImplMethod(ctx.sema.db, call.clone(), resolved_call);
acc.add(
AssistId::refactor_rewrite("qualify_method_call"),
format!("Qualify `{ident}` method call"),
range,
|builder| {
+ let make = SyntaxFactory::with_mappings();
+ let mut editor = builder.make_editor(call.syntax());
qualify_candidate.qualify(
- |replace_with: String| builder.replace(range, replace_with),
+ |_| {},
+ &mut editor,
+ &make,
&receiver_path,
item_in_ns,
current_edition,
- )
+ );
+ editor.add_mappings(make.finish_with_mappings());
+ builder.add_file_edits(ctx.vfs_file_id(), editor);
},
);
Some(())
diff --git a/crates/ide-assists/src/handlers/qualify_path.rs b/crates/ide-assists/src/handlers/qualify_path.rs
index 9ebeef90ba..c059f758c4 100644
--- a/crates/ide-assists/src/handlers/qualify_path.rs
+++ b/crates/ide-assists/src/handlers/qualify_path.rs
@@ -183,8 +183,7 @@ impl QualifyCandidate<'_> {
Some(args) => make.arg_list(iter::once(receiver).chain(args)),
None => make.arg_list(iter::once(receiver)),
};
- let call_path =
- make.path_from_text(&format!("{import}::{method_name}{generics}"));
+ let call_path = make.path_from_text(&format!("{import}::{method_name}{generics}"));
let call_expr = make.expr_call(make.expr_path(call_path), arg_list);
editor.replace(mcall_expr.syntax(), call_expr.syntax());
}