parameters.split_last()

This commit is contained in:
Jeroen Vannevel 2022-02-21 10:29:38 +00:00
parent d1fc208c9c
commit 9c6542f209
No known key found for this signature in database
GPG key ID: 78EF5F52F38C49BD

View file

@ -1097,16 +1097,16 @@ impl HirDisplay for TypeRef {
TypeRef::Fn(parameters, is_varargs) => { TypeRef::Fn(parameters, is_varargs) => {
// FIXME: Function pointer qualifiers. // FIXME: Function pointer qualifiers.
write!(f, "fn(")?; write!(f, "fn(")?;
for index in 0..parameters.len() - 1 { if let Some(((_, return_type), function_parameters)) = parameters.split_last() {
let (param_name, param_type) = &parameters[index]; for index in 0..function_parameters.len() {
let (param_name, param_type) = &function_parameters[index];
if let Some(name) = param_name { if let Some(name) = param_name {
write!(f, "{}: ", name)?; write!(f, "{}: ", name)?;
} }
param_type.hir_fmt(f)?; param_type.hir_fmt(f)?;
// Last index contains the return type so we stop writing commas on the second-to-last index if index != function_parameters.len() - 1 {
if index != parameters.len() - 2 {
write!(f, ", ")?; write!(f, ", ")?;
} }
} }
@ -1114,12 +1114,11 @@ impl HirDisplay for TypeRef {
write!(f, "{}...", if parameters.len() == 1 { "" } else { ", " })?; write!(f, "{}...", if parameters.len() == 1 { "" } else { ", " })?;
} }
write!(f, ")")?; write!(f, ")")?;
if let Some((_, ret_ty)) = &parameters.last() { match &return_type {
match ret_ty {
TypeRef::Tuple(tup) if tup.is_empty() => {} TypeRef::Tuple(tup) if tup.is_empty() => {}
_ => { _ => {
write!(f, " -> ")?; write!(f, " -> ")?;
ret_ty.hir_fmt(f)?; return_type.hir_fmt(f)?;
} }
} }
} }