Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/replace_qualified_name_with_use.rs')
-rw-r--r--crates/ide-assists/src/handlers/replace_qualified_name_with_use.rs23
1 files changed, 12 insertions, 11 deletions
diff --git a/crates/ide-assists/src/handlers/replace_qualified_name_with_use.rs b/crates/ide-assists/src/handlers/replace_qualified_name_with_use.rs
index eebe93f005..92fd119184 100644
--- a/crates/ide-assists/src/handlers/replace_qualified_name_with_use.rs
+++ b/crates/ide-assists/src/handlers/replace_qualified_name_with_use.rs
@@ -1,11 +1,11 @@
use hir::{AsAssocItem, ModuleDef, PathResolution};
use ide_db::{
- helpers::mod_path_to_ast,
- imports::insert_use::{ImportScope, insert_use},
+ helpers::mod_path_to_ast_with_factory,
+ imports::insert_use::{ImportScope, insert_use_with_editor},
};
use syntax::{
AstNode, Edition, SyntaxNode,
- ast::{self, HasGenericArgs, make},
+ ast::{self, HasGenericArgs},
match_ast,
syntax_editor::SyntaxEditor,
};
@@ -75,7 +75,7 @@ pub(crate) fn replace_qualified_name_with_use(
let scope_node = scope.as_syntax_node();
let editor = builder.make_editor(scope_node);
shorten_paths(&editor, scope_node, &original_path);
- builder.add_file_edits(ctx.vfs_file_id(), editor);
+ let make = editor.make();
let path = drop_generic_args(&original_path);
let edition = ctx
.sema
@@ -83,13 +83,14 @@ pub(crate) fn replace_qualified_name_with_use(
.map(|semantics_scope| semantics_scope.krate().edition(ctx.db()))
.unwrap_or(Edition::CURRENT);
// stick the found import in front of the to be replaced path
- let path =
- match path_to_qualifier.and_then(|it| mod_path_to_ast(&it, edition).qualifier()) {
- Some(qualifier) => make::path_concat(qualifier, path),
- None => path,
- };
- let scope = builder.make_import_scope_mut(scope);
- insert_use(&scope, path, &ctx.config.insert_use);
+ let path = match path_to_qualifier
+ .and_then(|it| mod_path_to_ast_with_factory(make, &it, edition).qualifier())
+ {
+ Some(qualifier) => make.path_concat(qualifier, path),
+ None => path,
+ };
+ insert_use_with_editor(&scope, path, &ctx.config.insert_use, &editor);
+ builder.add_file_edits(ctx.vfs_file_id(), editor);
},
)
}