diff options
Diffstat (limited to 'crates/ide_completion/src/completions/qualified_path.rs')
-rw-r--r-- | crates/ide_completion/src/completions/qualified_path.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/ide_completion/src/completions/qualified_path.rs b/crates/ide_completion/src/completions/qualified_path.rs index c16bb215f..4aa37df91 100644 --- a/crates/ide_completion/src/completions/qualified_path.rs +++ b/crates/ide_completion/src/completions/qualified_path.rs | |||
@@ -27,6 +27,9 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
27 | if let ScopeDef::MacroDef(macro_def) = def { | 27 | if let ScopeDef::MacroDef(macro_def) = def { |
28 | acc.add_macro(ctx, Some(name.to_string()), macro_def); | 28 | acc.add_macro(ctx, Some(name.to_string()), macro_def); |
29 | } | 29 | } |
30 | if let ScopeDef::ModuleDef(hir::ModuleDef::Module(_)) = def { | ||
31 | acc.add_resolution(ctx, name.to_string(), &def); | ||
32 | } | ||
30 | } | 33 | } |
31 | } | 34 | } |
32 | return; | 35 | return; |
@@ -614,19 +617,20 @@ fn main() { let _ = crate::$0 } | |||
614 | } | 617 | } |
615 | 618 | ||
616 | #[test] | 619 | #[test] |
617 | fn completes_qualified_macros_in_impl() { | 620 | fn completes_in_assoc_item_list() { |
618 | check( | 621 | check( |
619 | r#" | 622 | r#" |
620 | #[macro_export] | 623 | #[macro_export] |
621 | macro_rules! foo { () => {} } | 624 | macro_rules! foo { () => {} } |
625 | mod bar {} | ||
622 | 626 | ||
623 | struct MyStruct {} | 627 | struct MyStruct {} |
624 | |||
625 | impl MyStruct { | 628 | impl MyStruct { |
626 | crate::$0 | 629 | crate::$0 |
627 | } | 630 | } |
628 | "#, | 631 | "#, |
629 | expect![[r##" | 632 | expect![[r##" |
633 | md bar | ||
630 | ma foo! #[macro_export] macro_rules! foo | 634 | ma foo! #[macro_export] macro_rules! foo |
631 | "##]], | 635 | "##]], |
632 | ); | 636 | ); |