Show enum variant on Self qualified paths

This commit is contained in:
Lukas Wirth 2020-12-20 11:36:33 +01:00
parent f3125555a8
commit 943e4faceb

View file

@ -118,6 +118,12 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
_ => return,
};
if let Some(Adt::Enum(e)) = ty.as_adt() {
for variant in e.variants(ctx.db) {
acc.add_enum_variant(ctx, variant, None);
}
}
let traits_in_scope = ctx.scope.traits_in_scope();
let mut seen = FxHashSet::default();
ty.iterate_path_candidates(ctx.db, krate, &traits_in_scope, None, |_ty, item| {
@ -752,4 +758,27 @@ fn main() {
"#]],
);
}
#[test]
fn completes_self_enum() {
check(
r#"
enum Foo {
Bar,
Baz,
}
impl Foo {
fn foo(self) {
Self::<|>
}
}
"#,
expect![[r#"
ev Bar ()
ev Baz ()
me foo() fn foo(self)
"#]],
);
}
}