Print ConstKind::Bound the same as TyKind::Bound
This commit is contained in:
parent
6e73a14234
commit
306df94ed3
1 changed files with 17 additions and 9 deletions
|
@ -533,14 +533,7 @@ pub trait PrettyPrinter<'tcx>:
|
|||
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 @@ pub trait PrettyPrinter<'tcx>:
|
|||
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 @@ pub trait PrettyPrinter<'tcx>:
|
|||
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(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue