From 78f3b0627cf4a5d34aaf63c7b5a2e1b744a11b14 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 22 Nov 2019 17:10:51 +0300 Subject: Move FunctionData to hir_def --- crates/ra_ide_api/src/completion/complete_dot.rs | 3 +-- crates/ra_ide_api/src/completion/complete_path.rs | 6 ++---- crates/ra_ide_api/src/completion/presentation.rs | 15 +++++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'crates/ra_ide_api/src/completion') diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index 4e2c497e1..5a3f9b5f6 100644 --- a/crates/ra_ide_api/src/completion/complete_dot.rs +++ b/crates/ra_ide_api/src/completion/complete_dot.rs @@ -59,8 +59,7 @@ fn complete_fields(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty) fn complete_methods(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty) { let mut seen_methods = FxHashSet::default(); ctx.analyzer.iterate_method_candidates(ctx.db, receiver, None, |_ty, func| { - let data = func.data(ctx.db); - if data.has_self_param() && seen_methods.insert(data.name().clone()) { + if func.has_self_param(ctx.db) && seen_methods.insert(func.name(ctx.db)) { acc.add_function(ctx, func); } None::<()> diff --git a/crates/ra_ide_api/src/completion/complete_path.rs b/crates/ra_ide_api/src/completion/complete_path.rs index 5d974cf6d..802c7701a 100644 --- a/crates/ra_ide_api/src/completion/complete_path.rs +++ b/crates/ra_ide_api/src/completion/complete_path.rs @@ -53,8 +53,7 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { ctx.analyzer.iterate_path_candidates(ctx.db, ty.clone(), None, |_ty, item| { match item { hir::AssocItem::Function(func) => { - let data = func.data(ctx.db); - if !data.has_self_param() { + if !func.has_self_param(ctx.db) { acc.add_function(ctx, func); } } @@ -80,8 +79,7 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { for item in t.items(ctx.db) { match item { hir::AssocItem::Function(func) => { - let data = func.data(ctx.db); - if !data.has_self_param() { + if !func.has_self_param(ctx.db) { acc.add_function(ctx, func); } } diff --git a/crates/ra_ide_api/src/completion/presentation.rs b/crates/ra_ide_api/src/completion/presentation.rs index bd464d193..50fdb0043 100644 --- a/crates/ra_ide_api/src/completion/presentation.rs +++ b/crates/ra_ide_api/src/completion/presentation.rs @@ -199,14 +199,17 @@ impl Completions { name: Option, func: hir::Function, ) { - let data = func.data(ctx.db); - let name = name.unwrap_or_else(|| data.name().to_string()); + let func_name = func.name(ctx.db); + let has_self_param = func.has_self_param(ctx.db); + let params = func.params(ctx.db); + + let name = name.unwrap_or_else(|| func_name.to_string()); let ast_node = func.source(ctx.db).value; let detail = function_label(&ast_node); let mut builder = CompletionItem::new(CompletionKind::Reference, ctx.source_range(), name.clone()) - .kind(if data.has_self_param() { + .kind(if has_self_param { CompletionItemKind::Method } else { CompletionItemKind::Function @@ -222,10 +225,10 @@ impl Completions { { tested_by!(inserts_parens_for_function_calls); let (snippet, label) = - if data.params().is_empty() || data.has_self_param() && data.params().len() == 1 { - (format!("{}()$0", data.name()), format!("{}()", name)) + if params.is_empty() || has_self_param && params.len() == 1 { + (format!("{}()$0", func_name), format!("{}()", name)) } else { - (format!("{}($0)", data.name()), format!("{}(…)", name)) + (format!("{}($0)", func_name), format!("{}(…)", name)) }; builder = builder.lookup_by(name).label(label).insert_snippet(snippet); } -- cgit v1.2.3