Skip to content

Commit a238d12

Browse files
remove Clean trait implementation for ty::Predicate
1 parent 61c0b12 commit a238d12

File tree

2 files changed

+23
-22
lines changed

2 files changed

+23
-22
lines changed

src/librustdoc/clean/auto_trait.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ where
474474
let mut ty_to_fn: FxHashMap<Type, (Option<PolyTrait>, Option<Type>)> = Default::default();
475475

476476
for p in clean_where_predicates {
477-
let (orig_p, p) = (p, p.clean(self.cx));
477+
let (orig_p, p) = (p, clean_predicate(p, self.cx));
478478
if p.is_none() {
479479
continue;
480480
}

src/librustdoc/clean/mod.rs

+22-21
Original file line numberDiff line numberDiff line change
@@ -307,26 +307,27 @@ fn clean_where_predicate<'tcx>(
307307
})
308308
}
309309

310-
impl<'tcx> Clean<'tcx, Option<WherePredicate>> for ty::Predicate<'tcx> {
311-
fn clean(&self, cx: &mut DocContext<'tcx>) -> Option<WherePredicate> {
312-
let bound_predicate = self.kind();
313-
match bound_predicate.skip_binder() {
314-
ty::PredicateKind::Trait(pred) => {
315-
clean_poly_trait_predicate(bound_predicate.rebind(pred), cx)
316-
}
317-
ty::PredicateKind::RegionOutlives(pred) => clean_region_outlives_predicate(pred),
318-
ty::PredicateKind::TypeOutlives(pred) => clean_type_outlives_predicate(pred, cx),
319-
ty::PredicateKind::Projection(pred) => Some(clean_projection_predicate(pred, cx)),
320-
ty::PredicateKind::ConstEvaluatable(..) => None,
321-
ty::PredicateKind::WellFormed(..) => None,
322-
323-
ty::PredicateKind::Subtype(..)
324-
| ty::PredicateKind::Coerce(..)
325-
| ty::PredicateKind::ObjectSafe(..)
326-
| ty::PredicateKind::ClosureKind(..)
327-
| ty::PredicateKind::ConstEquate(..)
328-
| ty::PredicateKind::TypeWellFormedFromEnv(..) => panic!("not user writable"),
310+
pub(crate) fn clean_predicate<'tcx>(
311+
predicate: ty::Predicate<'tcx>,
312+
cx: &mut DocContext<'tcx>,
313+
) -> Option<WherePredicate> {
314+
let bound_predicate = predicate.kind();
315+
match bound_predicate.skip_binder() {
316+
ty::PredicateKind::Trait(pred) => {
317+
clean_poly_trait_predicate(bound_predicate.rebind(pred), cx)
329318
}
319+
ty::PredicateKind::RegionOutlives(pred) => clean_region_outlives_predicate(pred),
320+
ty::PredicateKind::TypeOutlives(pred) => clean_type_outlives_predicate(pred, cx),
321+
ty::PredicateKind::Projection(pred) => Some(clean_projection_predicate(pred, cx)),
322+
ty::PredicateKind::ConstEvaluatable(..) => None,
323+
ty::PredicateKind::WellFormed(..) => None,
324+
325+
ty::PredicateKind::Subtype(..)
326+
| ty::PredicateKind::Coerce(..)
327+
| ty::PredicateKind::ObjectSafe(..)
328+
| ty::PredicateKind::ClosureKind(..)
329+
| ty::PredicateKind::ConstEquate(..)
330+
| ty::PredicateKind::TypeWellFormedFromEnv(..) => panic!("not user writable"),
330331
}
331332
}
332333

@@ -707,7 +708,7 @@ fn clean_ty_generics<'tcx>(
707708

708709
if let Some(param_idx) = param_idx {
709710
if let Some(b) = impl_trait.get_mut(&param_idx.into()) {
710-
let p: WherePredicate = p.clean(cx)?;
711+
let p: WherePredicate = clean_predicate(*p, cx)?;
711712

712713
b.extend(
713714
p.get_bounds()
@@ -764,7 +765,7 @@ fn clean_ty_generics<'tcx>(
764765
// Now that `cx.impl_trait_bounds` is populated, we can process
765766
// remaining predicates which could contain `impl Trait`.
766767
let mut where_predicates =
767-
where_predicates.into_iter().flat_map(|p| p.clean(cx)).collect::<Vec<_>>();
768+
where_predicates.into_iter().flat_map(|p| clean_predicate(*p, cx)).collect::<Vec<_>>();
768769

769770
// Type parameters have a Sized bound by default unless removed with
770771
// ?Sized. Scan through the predicates and mark any type parameter with

0 commit comments

Comments
 (0)