aboutsummaryrefslogtreecommitdiff
path: root/crates/ide_completion/src/completions/qualified_path.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ide_completion/src/completions/qualified_path.rs')
-rw-r--r--crates/ide_completion/src/completions/qualified_path.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/crates/ide_completion/src/completions/qualified_path.rs b/crates/ide_completion/src/completions/qualified_path.rs
index 0597879ac..da3385bdc 100644
--- a/crates/ide_completion/src/completions/qualified_path.rs
+++ b/crates/ide_completion/src/completions/qualified_path.rs
@@ -65,9 +65,11 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
65 // Don't suggest attribute macros and derives. 65 // Don't suggest attribute macros and derives.
66 hir::ScopeDef::MacroDef(mac) => mac.is_fn_like(), 66 hir::ScopeDef::MacroDef(mac) => mac.is_fn_like(),
67 // no values in type places 67 // no values in type places
68 hir::ScopeDef::ModuleDef(hir::ModuleDef::Function(_)) 68 hir::ScopeDef::ModuleDef(
69 | hir::ScopeDef::ModuleDef(hir::ModuleDef::Variant(_)) 69 hir::ModuleDef::Function(_)
70 | hir::ScopeDef::ModuleDef(hir::ModuleDef::Static(_)) 70 | hir::ModuleDef::Variant(_)
71 | hir::ModuleDef::Static(_),
72 )
71 | hir::ScopeDef::Local(_) => !ctx.expects_type(), 73 | hir::ScopeDef::Local(_) => !ctx.expects_type(),
72 // unless its a constant in a generic arg list position 74 // unless its a constant in a generic arg list position
73 hir::ScopeDef::ModuleDef(hir::ModuleDef::Const(_)) => { 75 hir::ScopeDef::ModuleDef(hir::ModuleDef::Const(_)) => {
@@ -81,9 +83,13 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
81 } 83 }
82 } 84 }
83 } 85 }
84 hir::PathResolution::Def(def @ hir::ModuleDef::Adt(_)) 86 hir::PathResolution::Def(
85 | hir::PathResolution::Def(def @ hir::ModuleDef::TypeAlias(_)) 87 def
86 | hir::PathResolution::Def(def @ hir::ModuleDef::BuiltinType(_)) => { 88 @
89 (hir::ModuleDef::Adt(_)
90 | hir::ModuleDef::TypeAlias(_)
91 | hir::ModuleDef::BuiltinType(_)),
92 ) => {
87 if let hir::ModuleDef::Adt(hir::Adt::Enum(e)) = def { 93 if let hir::ModuleDef::Adt(hir::Adt::Enum(e)) = def {
88 add_enum_variants(acc, ctx, e); 94 add_enum_variants(acc, ctx, e);
89 } 95 }