From 66b701ed3e9980c4441f963467e49c687a4afca5 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 16 Jun 2021 15:46:58 +0200 Subject: Simplify --- crates/ide_completion/src/completions.rs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'crates/ide_completion/src/completions.rs') diff --git a/crates/ide_completion/src/completions.rs b/crates/ide_completion/src/completions.rs index aef70f26a..783305005 100644 --- a/crates/ide_completion/src/completions.rs +++ b/crates/ide_completion/src/completions.rs @@ -131,9 +131,6 @@ impl Completions { func: hir::Function, local_name: Option, ) { - if ctx.expects_type() { - return; - } self.add_opt(render_fn(RenderContext::new(ctx), None, local_name, func)); } @@ -175,9 +172,6 @@ impl Completions { } pub(crate) fn add_const(&mut self, ctx: &CompletionContext, constant: hir::Const) { - if ctx.expects_type() { - return; - } self.add_opt(render_const(RenderContext::new(ctx), constant)); } @@ -209,32 +203,30 @@ impl Completions { variant: hir::Variant, local_name: Option, ) { - if ctx.expects_type() { - return; - } let item = render_variant(RenderContext::new(ctx), None, local_name, variant, None); self.add(item); } } +/// Calls the callback for each variant of the provided enum with the path to the variant. fn complete_enum_variants( acc: &mut Completions, ctx: &CompletionContext, - enum_data: hir::Enum, + enum_: hir::Enum, cb: impl Fn(&mut Completions, &CompletionContext, hir::Variant, hir::ModPath), ) { - let variants = enum_data.variants(ctx.db); + let variants = enum_.variants(ctx.db); let module = if let Some(module) = ctx.scope.module() { // Compute path from the completion site if available. module } else { // Otherwise fall back to the enum's definition site. - enum_data.module(ctx.db) + enum_.module(ctx.db) }; if let Some(impl_) = ctx.impl_def.as_ref().and_then(|impl_| ctx.sema.to_def(impl_)) { - if impl_.self_ty(ctx.db).as_adt() == Some(hir::Adt::Enum(enum_data)) { + if impl_.self_ty(ctx.db).as_adt() == Some(hir::Adt::Enum(enum_)) { for &variant in &variants { let self_path = hir::ModPath::from_segments( hir::PathKind::Plain, -- cgit v1.2.3