aboutsummaryrefslogtreecommitdiff
path: root/crates/assists/src/handlers/auto_import.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/assists/src/handlers/auto_import.rs')
-rw-r--r--crates/assists/src/handlers/auto_import.rs33
1 files changed, 31 insertions, 2 deletions
diff --git a/crates/assists/src/handlers/auto_import.rs b/crates/assists/src/handlers/auto_import.rs
index 5a1b5a4ac..fa524ffd9 100644
--- a/crates/assists/src/handlers/auto_import.rs
+++ b/crates/assists/src/handlers/auto_import.rs
@@ -192,10 +192,10 @@ impl AutoImportAssets {
192 }) 192 })
193 .filter_map(|candidate| match candidate { 193 .filter_map(|candidate| match candidate {
194 Either::Left(module_def) => { 194 Either::Left(module_def) => {
195 self.module_with_name_to_import.find_use_path(db, module_def) 195 self.module_with_name_to_import.find_use_path_prefixed(db, module_def)
196 } 196 }
197 Either::Right(macro_def) => { 197 Either::Right(macro_def) => {
198 self.module_with_name_to_import.find_use_path(db, macro_def) 198 self.module_with_name_to_import.find_use_path_prefixed(db, macro_def)
199 } 199 }
200 }) 200 })
201 .filter(|use_path| !use_path.segments.is_empty()) 201 .filter(|use_path| !use_path.segments.is_empty())
@@ -287,6 +287,35 @@ mod tests {
287 use crate::tests::{check_assist, check_assist_not_applicable, check_assist_target}; 287 use crate::tests::{check_assist, check_assist_not_applicable, check_assist_target};
288 288
289 #[test] 289 #[test]
290 fn applicable_when_found_an_import_partial() {
291 check_assist(
292 auto_import,
293 r"
294 mod std {
295 pub mod fmt {
296 pub struct Formatter;
297 }
298 }
299
300 use std::fmt;
301
302 <|>Formatter
303 ",
304 r"
305 mod std {
306 pub mod fmt {
307 pub struct Formatter;
308 }
309 }
310
311 use std::fmt::{self, Formatter};
312
313 Formatter
314 ",
315 );
316 }
317
318 #[test]
290 fn applicable_when_found_an_import() { 319 fn applicable_when_found_an_import() {
291 check_assist( 320 check_assist(
292 auto_import, 321 auto_import,