From f4153f46ede355520f2aaa7f8c6fe3c306cb0edf Mon Sep 17 00:00:00 2001 From: Young-Flash Date: Sun, 9 Jun 2024 12:00:43 +0800 Subject: [PATCH] internal: better print style for hir --- .../crates/hir-def/src/body/pretty.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/tools/rust-analyzer/crates/hir-def/src/body/pretty.rs b/src/tools/rust-analyzer/crates/hir-def/src/body/pretty.rs index cbb5ca887f49..9aff712f4ce5 100644 --- a/src/tools/rust-analyzer/crates/hir-def/src/body/pretty.rs +++ b/src/tools/rust-analyzer/crates/hir-def/src/body/pretty.rs @@ -48,22 +48,36 @@ pub(super) fn print_body_hir(db: &dyn DefDatabase, body: &Body, owner: DefWithBo let mut p = Printer { db, body, buf: header, indent_level: 0, needs_indent: false }; if let DefWithBodyId::FunctionId(it) = owner { p.buf.push('('); - let params = &db.function_data(it).params; - let mut params = params.iter(); + let function_data = &db.function_data(it); + let (mut params, ret_type) = (function_data.params.iter(), &function_data.ret_type); if let Some(self_param) = body.self_param { p.print_binding(self_param); p.buf.push(':'); + p.buf.push(' '); if let Some(ty) = params.next() { p.print_type_ref(ty); + p.buf.push(','); + p.buf.push(' '); } } body.params.iter().zip(params).for_each(|(¶m, ty)| { p.print_pat(param); p.buf.push(':'); + p.buf.push(' '); p.print_type_ref(ty); + p.buf.push(','); + p.buf.push(' '); }); + // remove the last ", " in param list + p.buf.truncate(p.buf.len() - 2); p.buf.push(')'); p.buf.push(' '); + // return type + p.buf.push('-'); + p.buf.push('>'); + p.buf.push(' '); + p.print_type_ref(ret_type); + p.buf.push(' '); } p.print_expr(body.body_expr); if matches!(owner, DefWithBodyId::StaticId(_) | DefWithBodyId::ConstId(_)) {