@@ -327,7 +327,9 @@ impl<'tcx> Clean<'tcx, Option<WherePredicate>> for ty::Predicate<'tcx> {
327327 fn clean(&self, cx: &mut DocContext<'tcx>) -> Option<WherePredicate> {
328328 let bound_predicate = self.kind();
329329 match bound_predicate.skip_binder() {
330- ty::PredicateKind::Trait(pred) => bound_predicate.rebind(pred).clean(cx),
330+ ty::PredicateKind::Trait(pred) => {
331+ clean_poly_trait_predicate(bound_predicate.rebind(pred), cx)
332+ }
331333 ty::PredicateKind::RegionOutlives(pred) => clean_region_outlives_predicate(pred, cx),
332334 ty::PredicateKind::TypeOutlives(pred) => clean_type_outlives_predicate(pred, cx),
333335 ty::PredicateKind::Projection(pred) => Some(clean_projection_predicate(pred, cx)),
@@ -344,22 +346,23 @@ impl<'tcx> Clean<'tcx, Option<WherePredicate>> for ty::Predicate<'tcx> {
344346 }
345347}
346348
347- impl<'tcx> Clean<'tcx, Option<WherePredicate>> for ty::PolyTraitPredicate<'tcx> {
348- fn clean(&self, cx: &mut DocContext<'tcx>) -> Option<WherePredicate> {
349- // `T: ~const Destruct` is hidden because `T: Destruct` is a no-op.
350- if self.skip_binder().constness == ty::BoundConstness::ConstIfConst
351- && Some(self.skip_binder().def_id()) == cx.tcx.lang_items().destruct_trait()
352- {
353- return None;
354- }
355-
356- let poly_trait_ref = self.map_bound(|pred| pred.trait_ref);
357- Some(WherePredicate::BoundPredicate {
358- ty: clean_middle_ty(poly_trait_ref.skip_binder().self_ty(), cx, None),
359- bounds: vec![poly_trait_ref.clean(cx)],
360- bound_params: Vec::new(),
361- })
349+ fn clean_poly_trait_predicate<'tcx>(
350+ pred: ty::PolyTraitPredicate<'tcx>,
351+ cx: &mut DocContext<'tcx>,
352+ ) -> Option<WherePredicate> {
353+ // `T: ~const Destruct` is hidden because `T: Destruct` is a no-op.
354+ if pred.skip_binder().constness == ty::BoundConstness::ConstIfConst
355+ && Some(pred.skip_binder().def_id()) == cx.tcx.lang_items().destruct_trait()
356+ {
357+ return None;
362358 }
359+
360+ let poly_trait_ref = pred.map_bound(|pred| pred.trait_ref);
361+ Some(WherePredicate::BoundPredicate {
362+ ty: clean_middle_ty(poly_trait_ref.skip_binder().self_ty(), cx, None),
363+ bounds: vec![poly_trait_ref.clean(cx)],
364+ bound_params: Vec::new(),
365+ })
363366}
364367
365368fn clean_region_outlives_predicate<'tcx>(
0 commit comments