]> git.lizzy.rs Git - rust.git/blobdiff - crates/hir_ty/src/display.rs
Merge #11461
[rust.git] / crates / hir_ty / src / display.rs
index bca628a5c8864d6fb3f1bce939fe6504db0201ee..0e75ddeabcdff4c028b85c44bc50570da71478a5 100644 (file)
@@ -239,7 +239,6 @@ impl<'a, T> fmt::Display for HirDisplayWrapper<'a, T>
     T: HirDisplay,
 {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        println!("formatting..");
         match self.t.hir_fmt(&mut HirFormatter {
             db: self.db,
             fmt: f,
@@ -342,9 +341,6 @@ fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
             return write!(f, "{}", TYPE_HINT_TRUNCATION);
         }
 
-        let interner_kind = self.kind(Interner);
-        println!("interner kind: {interner_kind:?}");
-
         match self.kind(Interner) {
             TyKind::Never => write!(f, "!")?,
             TyKind::Str => write!(f, "str")?,
@@ -1099,31 +1095,31 @@ 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) => {
+                if let Some(((_, return_type), function_parameters)) = parameters.split_last() {
+                    for index in 0..function_parameters.len() {
+                        let (param_name, param_type) = &function_parameters[index];
+                        if let Some(name) = param_name {
                             write!(f, "{}: ", name)?;
-                            param_type.hir_fmt(f)?;
-                        },
-                        None => write!(f, " : {:?}", param_type)?,
-                    };
+                        }
 
-                    if index != parameters.len() - 2 {
-                        write!(f, ", ")?;
+                        param_type.hir_fmt(f)?;
+
+                        if index != function_parameters.len() - 1 {
+                            write!(f, ", ")?;
+                        }
                     }
-                }
-                if *is_varargs {
-                    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 *is_varargs {
+                        write!(f, "{}...", if parameters.len() == 1 { "" } else { ", " })?;
+                    }
+                    write!(f, ")")?;
+                    match &return_type {
+                        TypeRef::Tuple(tup) if tup.is_empty() => {}
+                        _ => {
+                            write!(f, " -> ")?;
+                            return_type.hir_fmt(f)?;
+                        }
                     }
                 }
             }