diff options
author | Kirill Bulatov <[email protected]> | 2020-02-02 12:06:51 +0000 |
---|---|---|
committer | Kirill Bulatov <[email protected]> | 2020-02-02 12:06:51 +0000 |
commit | 6dae5cbb1190cde6a20aa1758c7d87e84933378e (patch) | |
tree | a2ff09d550a6c8e057d4340d63b5c957fa134590 /crates/ra_assists/src/assists/add_import.rs | |
parent | a9669a5505939c28fd97e53e1bbb1571c2408cf1 (diff) |
Require ModPath for importing
Diffstat (limited to 'crates/ra_assists/src/assists/add_import.rs')
-rw-r--r-- | crates/ra_assists/src/assists/add_import.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/crates/ra_assists/src/assists/add_import.rs b/crates/ra_assists/src/assists/add_import.rs index bf6cfe865..96a494c93 100644 --- a/crates/ra_assists/src/assists/add_import.rs +++ b/crates/ra_assists/src/assists/add_import.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use hir::{self, db::HirDatabase}; | 1 | use hir::{self, db::HirDatabase, ModPath}; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | ast::{self, NameOwner}, | 3 | ast::{self, NameOwner}, |
4 | AstNode, Direction, SmolStr, | 4 | AstNode, Direction, SmolStr, |
@@ -21,9 +21,10 @@ pub fn auto_import_text_edit( | |||
21 | // The statement to use as anchor (last resort) | 21 | // The statement to use as anchor (last resort) |
22 | anchor: &SyntaxNode, | 22 | anchor: &SyntaxNode, |
23 | // The path to import as a sequence of strings | 23 | // The path to import as a sequence of strings |
24 | target: &[SmolStr], | 24 | path_to_import: &ModPath, |
25 | edit: &mut TextEditBuilder, | 25 | edit: &mut TextEditBuilder, |
26 | ) { | 26 | ) { |
27 | let target = path_to_import.to_string().split("::").map(SmolStr::new).collect::<Vec<_>>(); | ||
27 | let container = position.ancestors().find_map(|n| { | 28 | let container = position.ancestors().find_map(|n| { |
28 | if let Some(module) = ast::Module::cast(n.clone()) { | 29 | if let Some(module) = ast::Module::cast(n.clone()) { |
29 | return module.item_list().map(|it| it.syntax().clone()); | 30 | return module.item_list().map(|it| it.syntax().clone()); |
@@ -32,8 +33,8 @@ pub fn auto_import_text_edit( | |||
32 | }); | 33 | }); |
33 | 34 | ||
34 | if let Some(container) = container { | 35 | if let Some(container) = container { |
35 | let action = best_action_for_target(container, anchor.clone(), target); | 36 | let action = best_action_for_target(container, anchor.clone(), &target); |
36 | make_assist(&action, target, edit); | 37 | make_assist(&action, &target, edit); |
37 | } | 38 | } |
38 | } | 39 | } |
39 | 40 | ||