Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/render/function.rs')
| -rw-r--r-- | crates/ide_completion/src/render/function.rs | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/crates/ide_completion/src/render/function.rs b/crates/ide_completion/src/render/function.rs index 6a46de4229..7df13988ad 100644 --- a/crates/ide_completion/src/render/function.rs +++ b/crates/ide_completion/src/render/function.rs @@ -8,7 +8,7 @@ use syntax::SmolStr; use crate::{ context::{CompletionContext, PathCompletionCtx, PathKind}, - item::{Builder, CompletionItem, CompletionItemKind, CompletionRelevance, ImportEdit}, + item::{Builder, CompletionItem, CompletionItemKind, CompletionRelevance}, patterns::ImmediateLocation, render::{compute_exact_name_match, compute_ref_match, compute_type_match, RenderContext}, }; @@ -20,23 +20,21 @@ enum FuncKind { pub(crate) fn render_fn( ctx: RenderContext<'_>, - import_to_add: Option<ImportEdit>, local_name: Option<hir::Name>, func: hir::Function, ) -> CompletionItem { let _p = profile::span("render_fn"); - render(ctx, local_name, func, FuncKind::Function, import_to_add) + render(ctx, local_name, func, FuncKind::Function) } pub(crate) fn render_method( ctx: RenderContext<'_>, - import_to_add: Option<ImportEdit>, receiver: Option<hir::Name>, local_name: Option<hir::Name>, func: hir::Function, ) -> CompletionItem { let _p = profile::span("render_method"); - render(ctx, local_name, func, FuncKind::Method(receiver), import_to_add) + render(ctx, local_name, func, FuncKind::Method(receiver)) } fn render( @@ -44,7 +42,6 @@ fn render( local_name: Option<hir::Name>, func: hir::Function, func_kind: FuncKind, - import_to_add: Option<ImportEdit>, ) -> CompletionItem { let db = completion.db; @@ -98,17 +95,18 @@ fn render( _ => (), } - if import_to_add.is_none() { - if let Some(actm) = func.as_assoc_item(db) { - if let Some(trt) = actm.containing_trait_or_trait_impl(db) { - item.trait_name(trt.name(db).to_smol_str()); + match ctx.import_to_add { + Some(import_to_add) => { + item.add_import(import_to_add); + } + None => { + if let Some(actm) = func.as_assoc_item(db) { + if let Some(trt) = actm.containing_trait_or_trait_impl(db) { + item.trait_name(trt.name(db).to_smol_str()); + } } } } - - if let Some(import_to_add) = import_to_add { - item.add_import(import_to_add); - } item.build() } |