From d5f0f58e6330efd8200f93a6904caafc600a904e Mon Sep 17 00:00:00 2001 From: Josh Mcguigan Date: Fri, 12 Mar 2021 13:46:40 -0800 Subject: add params_display and ty_display --- crates/ide_completion/src/render/function.rs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'crates/ide_completion/src/render') diff --git a/crates/ide_completion/src/render/function.rs b/crates/ide_completion/src/render/function.rs index e154d6302..b6b67e7a7 100644 --- a/crates/ide_completion/src/render/function.rs +++ b/crates/ide_completion/src/render/function.rs @@ -60,7 +60,19 @@ impl<'a> FunctionRender<'a> { } fn detail(&self) -> String { - let params = if let Some(self_param) = self.func.self_param(self.ctx.db()) { + let ret_ty = self.func.ret_type(self.ctx.db()); + let ret = if ret_ty.is_unit() { + // Omit the return type if it is the unit type + String::new() + } else { + format!(" {}", self.ty_display()) + }; + + format!("fn({}){}", self.params_display(), ret) + } + + fn params_display(&self) -> String { + if let Some(self_param) = self.func.self_param(self.ctx.db()) { let params = self .func .assoc_fn_params(self.ctx.db()) @@ -77,17 +89,13 @@ impl<'a> FunctionRender<'a> { .map(|p| p.ty().display(self.ctx.db()).to_string()) .join(", "); params - }; + } + } + fn ty_display(&self) -> String { let ret_ty = self.func.ret_type(self.ctx.db()); - let ret = if ret_ty.is_unit() { - // Omit the `-> ()` for unit return types - String::new() - } else { - format!(" -> {}", ret_ty.display(self.ctx.db())) - }; - format!("fn({}){}", params, ret) + format!("-> {}", ret_ty.display(self.ctx.db())) } fn add_arg(&self, arg: &str, ty: &Type) -> String { -- cgit v1.2.3