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.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/crates/ide-completion/src/render/function.rs b/crates/ide-completion/src/render/function.rs
index e013fe4cb7..2fe517fa8c 100644
--- a/crates/ide-completion/src/render/function.rs
+++ b/crates/ide-completion/src/render/function.rs
@@ -320,7 +320,9 @@ fn detail(ctx: &CompletionContext<'_>, func: hir::Function) -> String {
format_to!(detail, "unsafe ");
}
- format_to!(detail, "fn({})", params_display(ctx, func));
+ detail.push_str("fn(");
+ params_display(ctx, &mut detail, func);
+ detail.push(')');
if !ret_ty.is_unit() {
format_to!(detail, " -> {}", ret_ty.display(ctx.db, ctx.display_target));
}
@@ -342,31 +344,29 @@ fn detail_full(ctx: &CompletionContext<'_>, func: hir::Function) -> String {
detail
}
-fn params_display(ctx: &CompletionContext<'_>, func: hir::Function) -> String {
- let mut params = if let Some(self_param) = func.self_param(ctx.db) {
+fn params_display(ctx: &CompletionContext<'_>, detail: &mut String, func: hir::Function) {
+ if let Some(self_param) = func.self_param(ctx.db) {
+ format_to!(detail, "{}", self_param.display(ctx.db, ctx.display_target));
let assoc_fn_params = func.assoc_fn_params(ctx.db);
let params = assoc_fn_params
.iter()
.skip(1) // skip the self param because we are manually handling that
.map(|p| p.ty().display(ctx.db, ctx.display_target));
- format!(
- "{}{}",
- self_param.display(ctx.db, ctx.display_target),
- params.format_with("", |display, f| {
- f(&", ")?;
- f(&display)
- })
- )
+ for param in params {
+ format_to!(detail, ", {}", param);
+ }
} else {
let assoc_fn_params = func.assoc_fn_params(ctx.db);
- assoc_fn_params.iter().map(|p| p.ty().display(ctx.db, ctx.display_target)).join(", ")
- };
+ format_to!(
+ detail,
+ "{}",
+ assoc_fn_params.iter().map(|p| p.ty().display(ctx.db, ctx.display_target)).format(", ")
+ );
+ }
if func.is_varargs(ctx.db) {
- params.push_str(", ...");
+ detail.push_str(", ...");
}
-
- params
}
fn params(