Skip to content

Commit 943e4fa

Browse files
committed
Show enum variant on Self qualified paths
1 parent f312555 commit 943e4fa

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

crates/completion/src/completions/qualified_path.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,12 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
118118
_ => return,
119119
};
120120

121+
if let Some(Adt::Enum(e)) = ty.as_adt() {
122+
for variant in e.variants(ctx.db) {
123+
acc.add_enum_variant(ctx, variant, None);
124+
}
125+
}
126+
121127
let traits_in_scope = ctx.scope.traits_in_scope();
122128
let mut seen = FxHashSet::default();
123129
ty.iterate_path_candidates(ctx.db, krate, &traits_in_scope, None, |_ty, item| {
@@ -752,4 +758,27 @@ fn main() {
752758
"#]],
753759
);
754760
}
761+
762+
#[test]
763+
fn completes_self_enum() {
764+
check(
765+
r#"
766+
enum Foo {
767+
Bar,
768+
Baz,
769+
}
770+
771+
impl Foo {
772+
fn foo(self) {
773+
Self::<|>
774+
}
775+
}
776+
"#,
777+
expect![[r#"
778+
ev Bar ()
779+
ev Baz ()
780+
me foo(…) fn foo(self)
781+
"#]],
782+
);
783+
}
755784
}

0 commit comments

Comments
 (0)