]> git.lizzy.rs Git - rust.git/commitdiff
Print ConstKind::Bound the same as TyKind::Bound
authorOliver Scherer <github35764891676564198441@oli-obk.de>
Fri, 13 Mar 2020 09:48:41 +0000 (10:48 +0100)
committerOliver Scherer <github35764891676564198441@oli-obk.de>
Fri, 13 Mar 2020 09:48:41 +0000 (10:48 +0100)
src/librustc/ty/print/pretty.rs

index fdd1533e1302f05b29abf157963f4a689468da26..1dade8c0e0887980a229207c71cd5ea1044df63f 100644 (file)
@@ -533,14 +533,7 @@ fn pretty_print_type(mut self, ty: Ty<'tcx>) -> Result<Self::Type, Self::Error>
             ty::Error => p!(write("[type error]")),
             ty::Param(ref param_ty) => p!(write("{}", param_ty)),
             ty::Bound(debruijn, bound_ty) => match bound_ty.kind {
-                ty::BoundTyKind::Anon => {
-                    if debruijn == ty::INNERMOST {
-                        p!(write("^{}", bound_ty.var.index()))
-                    } else {
-                        p!(write("^{}_{}", debruijn.index(), bound_ty.var.index()))
-                    }
-                }
-
+                ty::BoundTyKind::Anon => self.pretty_print_bound_var(debruijn, bound_ty.var)?,
                 ty::BoundTyKind::Param(p) => p!(write("{}", p)),
             },
             ty::Adt(def, substs) => {
@@ -718,6 +711,18 @@ fn pretty_print_type(mut self, ty: Ty<'tcx>) -> Result<Self::Type, Self::Error>
         Ok(self)
     }
 
+    fn pretty_print_bound_var(
+        &mut self,
+        debruijn: ty::DebruijnIndex,
+        var: ty::BoundVar,
+    ) -> Result<(), Self::Error> {
+        if debruijn == ty::INNERMOST {
+            write!(self, "^{}", var.index())
+        } else {
+            write!(self, "^{}_{}", debruijn.index(), var.index())
+        }
+    }
+
     fn infer_ty_name(&self, _: ty::TyVid) -> Option<String> {
         None
     }
@@ -905,7 +910,10 @@ macro_rules! print_underscore {
                 return self.pretty_print_const_value(value, ct.ty, print_ty);
             }
 
-            ty::ConstKind::Bound(..) | ty::ConstKind::Placeholder(_) => {
+            ty::ConstKind::Bound(debruijn, bound_var) => {
+                self.pretty_print_bound_var(debruijn, bound_var)?
+            }
+            ty::ConstKind::Placeholder(_) => {
                 // fallback
                 if print_ty {
                     self = self.typed_value(