@@ -266,44 +266,45 @@ pub(crate) fn clean_middle_region<'tcx>(region: ty::Region<'tcx>) -> Option<Life
266266 }
267267}
268268
269- impl<'tcx> Clean<'tcx, Option<WherePredicate>> for hir::WherePredicate<'tcx> {
270- fn clean(&self, cx: &mut DocContext<'tcx>) -> Option<WherePredicate> {
271- if !self.in_where_clause() {
272- return None;
273- }
274- Some(match *self {
275- hir::WherePredicate::BoundPredicate(ref wbp) => {
276- let bound_params = wbp
277- .bound_generic_params
278- .iter()
279- .map(|param| {
280- // Higher-ranked params must be lifetimes.
281- // Higher-ranked lifetimes can't have bounds.
282- assert_matches!(
283- param,
284- hir::GenericParam { kind: hir::GenericParamKind::Lifetime { .. }, .. }
285- );
286- Lifetime(param.name.ident().name)
287- })
288- .collect();
289- WherePredicate::BoundPredicate {
290- ty: clean_ty(wbp.bounded_ty, cx),
291- bounds: wbp.bounds.iter().filter_map(|x| clean_generic_bound(x, cx)).collect(),
292- bound_params,
293- }
269+ fn clean_where_predicate<'tcx>(
270+ predicate: &hir::WherePredicate<'tcx>,
271+ cx: &mut DocContext<'tcx>,
272+ ) -> Option<WherePredicate> {
273+ if !predicate.in_where_clause() {
274+ return None;
275+ }
276+ Some(match *predicate {
277+ hir::WherePredicate::BoundPredicate(ref wbp) => {
278+ let bound_params = wbp
279+ .bound_generic_params
280+ .iter()
281+ .map(|param| {
282+ // Higher-ranked params must be lifetimes.
283+ // Higher-ranked lifetimes can't have bounds.
284+ assert_matches!(
285+ param,
286+ hir::GenericParam { kind: hir::GenericParamKind::Lifetime { .. }, .. }
287+ );
288+ Lifetime(param.name.ident().name)
289+ })
290+ .collect();
291+ WherePredicate::BoundPredicate {
292+ ty: clean_ty(wbp.bounded_ty, cx),
293+ bounds: wbp.bounds.iter().filter_map(|x| clean_generic_bound(x, cx)).collect(),
294+ bound_params,
294295 }
296+ }
295297
296- hir::WherePredicate::RegionPredicate(ref wrp) => WherePredicate::RegionPredicate {
297- lifetime: clean_lifetime(wrp.lifetime, cx),
298- bounds: wrp.bounds.iter().filter_map(|x| clean_generic_bound(x, cx)).collect(),
299- },
298+ hir::WherePredicate::RegionPredicate(ref wrp) => WherePredicate::RegionPredicate {
299+ lifetime: clean_lifetime(wrp.lifetime, cx),
300+ bounds: wrp.bounds.iter().filter_map(|x| clean_generic_bound(x, cx)).collect(),
301+ },
300302
301- hir::WherePredicate::EqPredicate(ref wrp) => WherePredicate::EqPredicate {
302- lhs: clean_ty(wrp.lhs_ty, cx),
303- rhs: clean_ty(wrp.rhs_ty, cx).into(),
304- },
305- })
306- }
303+ hir::WherePredicate::EqPredicate(ref wrp) => WherePredicate::EqPredicate {
304+ lhs: clean_ty(wrp.lhs_ty, cx),
305+ rhs: clean_ty(wrp.rhs_ty, cx).into(),
306+ },
307+ })
307308}
308309
309310impl<'tcx> Clean<'tcx, Option<WherePredicate>> for ty::Predicate<'tcx> {
@@ -601,7 +602,11 @@ impl<'tcx> Clean<'tcx, Generics> for hir::Generics<'tcx> {
601602
602603 let mut generics = Generics {
603604 params,
604- where_predicates: self.predicates.iter().filter_map(|x| x.clean(cx)).collect(),
605+ where_predicates: self
606+ .predicates
607+ .iter()
608+ .filter_map(|x| clean_where_predicate(x, cx))
609+ .collect(),
605610 };
606611
607612 // Some duplicates are generated for ?Sized bounds between type params and where
0 commit comments