aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorKirill Bulatov <[email protected]>2020-01-27 12:42:45 +0000
committerKirill Bulatov <[email protected]>2020-01-27 12:42:45 +0000
commit9be1ab7ff948d89334a8acbc309c8235d4ab374f (patch)
treef67692bfdc8a89f3627507cbbc43d4bece823428 /crates
parent9a6b5c6183b2d7aa3d577c3fb12d519721f4a4d0 (diff)
Code review fixes
Diffstat (limited to 'crates')
-rw-r--r--crates/ra_assists/src/assists/auto_import.rs10
-rw-r--r--crates/ra_assists/src/lib.rs5
-rw-r--r--crates/ra_hir/src/lib.rs5
-rw-r--r--crates/ra_ide/src/imports_locator.rs2
4 files changed, 11 insertions, 11 deletions
diff --git a/crates/ra_assists/src/assists/auto_import.rs b/crates/ra_assists/src/assists/auto_import.rs
index 4c3793ac7..9163cc662 100644
--- a/crates/ra_assists/src/assists/auto_import.rs
+++ b/crates/ra_assists/src/assists/auto_import.rs
@@ -1,4 +1,4 @@
1use hir::{db::HirDatabase, AsName}; 1use hir::db::HirDatabase;
2use ra_syntax::{ 2use ra_syntax::{
3 ast::{self, AstNode}, 3 ast::{self, AstNode},
4 SmolStr, SyntaxElement, 4 SmolStr, SyntaxElement,
@@ -48,7 +48,7 @@ pub(crate) fn auto_import<F: ImportsLocator>(
48 return None; 48 return None;
49 } 49 }
50 50
51 let name_to_import = &find_applicable_name_ref(ctx.covering_element())?.as_name(); 51 let name_to_import = &find_applicable_name_ref(ctx.covering_element())?.syntax().to_string();
52 let proposed_imports = imports_locator 52 let proposed_imports = imports_locator
53 .find_imports(&name_to_import.to_string()) 53 .find_imports(&name_to_import.to_string())
54 .into_iter() 54 .into_iter()
@@ -64,7 +64,7 @@ pub(crate) fn auto_import<F: ImportsLocator>(
64 ctx.add_assist_group(AssistId("auto_import"), "auto import", || { 64 ctx.add_assist_group(AssistId("auto_import"), "auto import", || {
65 proposed_imports 65 proposed_imports
66 .into_iter() 66 .into_iter()
67 .map(|import| import_to_action(import, &position, &path_to_import)) 67 .map(|import| import_to_action(import, &position, &path_to_import.syntax()))
68 .collect() 68 .collect()
69 }) 69 })
70} 70}
@@ -84,12 +84,12 @@ fn find_applicable_name_ref(element: SyntaxElement) -> Option<ast::NameRef> {
84 } 84 }
85} 85}
86 86
87fn import_to_action(import: String, position: &SyntaxNode, path: &ast::Path) -> ActionBuilder { 87fn import_to_action(import: String, position: &SyntaxNode, anchor: &SyntaxNode) -> ActionBuilder {
88 let mut action_builder = ActionBuilder::default(); 88 let mut action_builder = ActionBuilder::default();
89 action_builder.label(format!("Import `{}`", &import)); 89 action_builder.label(format!("Import `{}`", &import));
90 auto_import_text_edit( 90 auto_import_text_edit(
91 position, 91 position,
92 &path.syntax().clone(), 92 anchor,
93 &[SmolStr::new(import)], 93 &[SmolStr::new(import)],
94 action_builder.text_edit_builder(), 94 action_builder.text_edit_builder(),
95 ); 95 );
diff --git a/crates/ra_assists/src/lib.rs b/crates/ra_assists/src/lib.rs
index 724bce191..625ebc4a2 100644
--- a/crates/ra_assists/src/lib.rs
+++ b/crates/ra_assists/src/lib.rs
@@ -234,6 +234,7 @@ mod helpers {
234 use crate::{test_db::TestDB, Assist, AssistCtx, ImportsLocator}; 234 use crate::{test_db::TestDB, Assist, AssistCtx, ImportsLocator};
235 use std::sync::Arc; 235 use std::sync::Arc;
236 236
237 // FIXME remove the `ModuleDefId` reexport from `ra_hir` when this gets removed.
237 pub(crate) struct TestImportsLocator { 238 pub(crate) struct TestImportsLocator {
238 db: Arc<TestDB>, 239 db: Arc<TestDB>,
239 test_file_id: FileId, 240 test_file_id: FileId,
@@ -248,13 +249,13 @@ mod helpers {
248 impl ImportsLocator for TestImportsLocator { 249 impl ImportsLocator for TestImportsLocator {
249 fn find_imports(&mut self, name_to_import: &str) -> Vec<hir::ModuleDef> { 250 fn find_imports(&mut self, name_to_import: &str) -> Vec<hir::ModuleDef> {
250 let crate_def_map = self.db.crate_def_map(self.db.test_crate()); 251 let crate_def_map = self.db.crate_def_map(self.db.test_crate());
251 let mut findings = vec![]; 252 let mut findings = Vec::new();
252 253
253 let mut module_ids_to_process = 254 let mut module_ids_to_process =
254 crate_def_map.modules_for_file(self.test_file_id).collect::<Vec<_>>(); 255 crate_def_map.modules_for_file(self.test_file_id).collect::<Vec<_>>();
255 256
256 while !module_ids_to_process.is_empty() { 257 while !module_ids_to_process.is_empty() {
257 let mut more_ids_to_process = vec![]; 258 let mut more_ids_to_process = Vec::new();
258 for local_module_id in module_ids_to_process.drain(..) { 259 for local_module_id in module_ids_to_process.drain(..) {
259 for (name, namespace_data) in 260 for (name, namespace_data) in
260 crate_def_map[local_module_id].scope.entries_without_primitives() 261 crate_def_map[local_module_id].scope.entries_without_primitives()
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs
index 2cfeaba72..9e2673d13 100644
--- a/crates/ra_hir/src/lib.rs
+++ b/crates/ra_hir/src/lib.rs
@@ -56,10 +56,9 @@ pub use hir_def::{
56 nameres::ModuleSource, 56 nameres::ModuleSource,
57 path::{ModPath, Path, PathKind}, 57 path::{ModPath, Path, PathKind},
58 type_ref::Mutability, 58 type_ref::Mutability,
59 ModuleDefId, 59 ModuleDefId, // FIXME this is exposed and should be used for implementing the `TestImportsLocator` in `ra_assists` only, should be removed later along with the trait and the implementation.
60}; 60};
61pub use hir_expand::{ 61pub use hir_expand::{
62 name::{AsName, Name}, 62 name::Name, HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId, MacroFile, Origin,
63 HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId, MacroFile, Origin,
64}; 63};
65pub use hir_ty::{display::HirDisplay, CallableDef}; 64pub use hir_ty::{display::HirDisplay, CallableDef};
diff --git a/crates/ra_ide/src/imports_locator.rs b/crates/ra_ide/src/imports_locator.rs
index b2fc48159..48b014c7d 100644
--- a/crates/ra_ide/src/imports_locator.rs
+++ b/crates/ra_ide/src/imports_locator.rs
@@ -41,7 +41,7 @@ impl<'a> ImportsLocatorIde<'a> {
41 } 41 }
42} 42}
43 43
44impl<'a> ImportsLocator for ImportsLocatorIde<'a> { 44impl ImportsLocator for ImportsLocatorIde<'_> {
45 fn find_imports(&mut self, name_to_import: &str) -> Vec<ModuleDef> { 45 fn find_imports(&mut self, name_to_import: &str) -> Vec<ModuleDef> {
46 let _p = profile("search_for_imports"); 46 let _p = profile("search_for_imports");
47 let db = self.source_binder.db; 47 let db = self.source_binder.db;