shrink ty::PredicateKind
again
This commit is contained in:
parent
283e0e670b
commit
bc0156bace
12 changed files with 68 additions and 22 deletions
|
@ -1105,3 +1105,28 @@ impl<'tcx> TypeFoldable<'tcx> for ty::Unevaluated<'tcx> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'tcx> TypeFoldable<'tcx> for ty::Unevaluated<'tcx, ()> {
|
||||
fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self {
|
||||
ty::Unevaluated {
|
||||
def: self.def,
|
||||
substs_: Some(self.substs(folder.tcx()).fold_with(folder)),
|
||||
promoted: self.promoted,
|
||||
}
|
||||
}
|
||||
|
||||
fn visit_with<V: TypeVisitor<'tcx>>(&self, visitor: &mut V) -> ControlFlow<V::BreakTy> {
|
||||
visitor.visit_unevaluated_const(self.expand())
|
||||
}
|
||||
|
||||
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, visitor: &mut V) -> ControlFlow<V::BreakTy> {
|
||||
if let Some(tcx) = visitor.tcx_for_anon_const_substs() {
|
||||
self.substs(tcx).visit_with(visitor)
|
||||
} else if let Some(substs) = self.substs_ {
|
||||
substs.visit_with(visitor)
|
||||
} else {
|
||||
debug!("ignoring default substs of `{:?}`", self.def);
|
||||
ControlFlow::CONTINUE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue