diff options
Diffstat (limited to 'crates/ra_ide_api/src/completion')
-rw-r--r-- | crates/ra_ide_api/src/completion/complete_path.rs | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_path.rs b/crates/ra_ide_api/src/completion/complete_path.rs index 4723a65a6..6a55670d1 100644 --- a/crates/ra_ide_api/src/completion/complete_path.rs +++ b/crates/ra_ide_api/src/completion/complete_path.rs | |||
@@ -21,14 +21,20 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) -> C | |||
21 | .add_to(acc) | 21 | .add_to(acc) |
22 | }); | 22 | }); |
23 | } | 23 | } |
24 | hir::Def::Enum(e) => e | 24 | hir::Def::Enum(e) => { |
25 | .variants(ctx.db)? | 25 | e.variants(ctx.db)? |
26 | .into_iter() | 26 | .unwrap_or(vec![]) |
27 | .for_each(|(name, _variant)| { | 27 | .into_iter() |
28 | CompletionItem::new(CompletionKind::Reference, name.to_string()) | 28 | .for_each(|variant| { |
29 | .kind(CompletionItemKind::EnumVariant) | 29 | let variant_name = variant.name(ctx.db); |
30 | .add_to(acc) | 30 | |
31 | }), | 31 | if let Ok(Some(name)) = variant_name { |
32 | CompletionItem::new(CompletionKind::Reference, name.to_string()) | ||
33 | .kind(CompletionItemKind::EnumVariant) | ||
34 | .add_to(acc) | ||
35 | } | ||
36 | }) | ||
37 | } | ||
32 | _ => return Ok(()), | 38 | _ => return Ok(()), |
33 | }; | 39 | }; |
34 | Ok(()) | 40 | Ok(()) |