diff --git a/crates/hir_def/src/type_ref.rs b/crates/hir_def/src/type_ref.rs index dcc43c1fad..01aca8f1de 100644 --- a/crates/hir_def/src/type_ref.rs +++ b/crates/hir_def/src/type_ref.rs @@ -241,7 +241,9 @@ impl TypeRef { fn go(type_ref: &TypeRef, f: &mut impl FnMut(&TypeRef)) { f(type_ref); match type_ref { - TypeRef::Fn(types, _) => types.iter().for_each(|t| go(&t.1, f)), + TypeRef::Fn(params, _) => { + params.iter().for_each(|(_, param_type)| go(¶m_type, f)) + } TypeRef::Tuple(types) => types.iter().for_each(|t| go(t, f)), TypeRef::RawPtr(type_ref, _) | TypeRef::Reference(type_ref, ..) diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs index 4b077c2c8a..377821b376 100644 --- a/crates/hir_ty/src/display.rs +++ b/crates/hir_ty/src/display.rs @@ -1103,9 +1103,10 @@ impl HirDisplay for TypeRef { write!(f, "{}: ", name)?; param_type.hir_fmt(f)?; } - None => write!(f, " : {:?}", param_type)?, + None => param_type.hir_fmt(f)?, }; + // Last index contains the return type so we stop writing commas on the second-to-last index if index != parameters.len() - 2 { write!(f, ", ")?; } diff --git a/crates/hir_ty/src/lower.rs b/crates/hir_ty/src/lower.rs index 4873693e8c..a140dd4057 100644 --- a/crates/hir_ty/src/lower.rs +++ b/crates/hir_ty/src/lower.rs @@ -201,7 +201,7 @@ impl<'a> TyLoweringContext<'a> { TypeRef::Placeholder => TyKind::Error.intern(Interner), TypeRef::Fn(params, is_varargs) => { let substs = self.with_shifted_in(DebruijnIndex::ONE, |ctx| { - Substitution::from_iter(Interner, params.iter().map(|tr| ctx.lower_ty(&tr.1))) + Substitution::from_iter(Interner, params.iter().map(|(_, tr)| ctx.lower_ty(tr))) }); TyKind::Function(FnPointer { num_binders: 0, // FIXME lower `for<'a> fn()` correctly