]> git.lizzy.rs Git - rust.git/blobdiff - crates/hir_ty/src/display.rs
re-added FIXME
[rust.git] / crates / hir_ty / src / display.rs
index ad330d6261c361031d1c02affedf171abe911cab..2ee4f5cf41bf351508ab8bf3143c1bd1f4bde481 100644 (file)
@@ -340,7 +340,7 @@ fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
         if f.should_truncate() {
             return write!(f, "{}", TYPE_HINT_TRUNCATION);
         }
-        
+
         match self.kind(Interner) {
             TyKind::Never => write!(f, "!")?,
             TyKind::Str => write!(f, "str")?,
@@ -1095,17 +1095,17 @@ fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
                 write!(f, "]")?;
             }
             TypeRef::Fn(parameters, is_varargs) => {
+                // FIXME: Function pointer qualifiers.
                 write!(f, "fn(")?;
                 for index in 0..parameters.len() - 1 {
-                    let (param_name,param_type) = &parameters[index];
-                    match param_name {
-                        Some(name) => {
-                            write!(f, "{}: ", name)?;
-                            param_type.hir_fmt(f)?;
-                        },
-                        None => write!(f, " : {:?}", param_type)?,
-                    };
+                    let (param_name, param_type) = &parameters[index];
+                    if let Some(name) = param_name {
+                        write!(f, "{}: ", name)?;
+                    }
 
+                    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, ", ")?;
                     }
@@ -1114,12 +1114,13 @@ fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
                     write!(f, "{}...", if parameters.len() == 1 { "" } else { ", " })?;
                 }
                 write!(f, ")")?;
-                let ret_ty = &parameters.last().unwrap().1;
-                match ret_ty {
-                    TypeRef::Tuple(tup) if tup.is_empty() => {}
-                    _ => {
-                        write!(f, " -> ")?;
-                        ret_ty.hir_fmt(f)?;
+                if let Some((_, ret_ty)) = &parameters.last() {
+                    match ret_ty {
+                        TypeRef::Tuple(tup) if tup.is_empty() => {}
+                        _ => {
+                            write!(f, " -> ")?;
+                            ret_ty.hir_fmt(f)?;
+                        }
                     }
                 }
             }