@@ -272,7 +272,7 @@ pub(crate) fn build_external_trait(cx: &mut DocContext<'_>, did: DefId) -> clean
272272 . collect ( ) ;
273273
274274 let predicates = cx. tcx . predicates_of ( did) ;
275- let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ;
275+ let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ;
276276 let generics = filter_non_trait_generics ( did, generics) ;
277277 let ( generics, supertrait_bounds) = separate_supertrait_bounds ( generics) ;
278278 clean:: Trait { def_id : did, generics, items : trait_items, bounds : supertrait_bounds }
@@ -284,8 +284,12 @@ pub(crate) fn build_function<'tcx>(
284284) -> Box < clean:: Function > {
285285 let sig = cx. tcx . fn_sig ( def_id) . instantiate_identity ( ) ;
286286 // The generics need to be cleaned before the signature.
287- let mut generics =
288- clean_ty_generics ( cx, cx. tcx . generics_of ( def_id) , cx. tcx . explicit_predicates_of ( def_id) ) ;
287+ let mut generics = clean_ty_generics (
288+ cx,
289+ cx. tcx . generics_of ( def_id) ,
290+ cx. tcx . explicit_predicates_of ( def_id) ,
291+ def_id,
292+ ) ;
289293 let bound_vars = clean_bound_vars ( sig. bound_vars ( ) ) ;
290294
291295 // At the time of writing early & late-bound params are stored separately in rustc,
@@ -317,7 +321,7 @@ fn build_enum(cx: &mut DocContext<'_>, did: DefId) -> clean::Enum {
317321 let predicates = cx. tcx . explicit_predicates_of ( did) ;
318322
319323 clean:: Enum {
320- generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ,
324+ generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ,
321325 variants : cx. tcx . adt_def ( did) . variants ( ) . iter ( ) . map ( |v| clean_variant_def ( v, cx) ) . collect ( ) ,
322326 }
323327}
@@ -328,7 +332,7 @@ fn build_struct(cx: &mut DocContext<'_>, did: DefId) -> clean::Struct {
328332
329333 clean:: Struct {
330334 ctor_kind : variant. ctor_kind ( ) ,
331- generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ,
335+ generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ,
332336 fields : variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ,
333337 }
334338}
@@ -337,7 +341,7 @@ fn build_union(cx: &mut DocContext<'_>, did: DefId) -> clean::Union {
337341 let predicates = cx. tcx . explicit_predicates_of ( did) ;
338342 let variant = cx. tcx . adt_def ( did) . non_enum_variant ( ) ;
339343
340- let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ;
344+ let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ;
341345 let fields = variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ;
342346 clean:: Union { generics, fields }
343347}
@@ -354,7 +358,7 @@ fn build_type_alias(
354358
355359 Box :: new ( clean:: TypeAlias {
356360 type_,
357- generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ,
361+ generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ,
358362 inner_type,
359363 item_type : None ,
360364 } )
@@ -532,7 +536,7 @@ pub(crate) fn build_impl(
532536 } )
533537 . map ( |item| clean_impl_item ( item, cx) )
534538 . collect :: < Vec < _ > > ( ) ,
535- clean_generics ( impl_. generics , cx) ,
539+ clean_generics ( impl_. generics , cx, did ) ,
536540 ) ,
537541 None => (
538542 tcx. associated_items ( did)
@@ -560,7 +564,7 @@ pub(crate) fn build_impl(
560564 . map ( |item| clean_middle_assoc_item ( item, cx) )
561565 . collect :: < Vec < _ > > ( ) ,
562566 clean:: enter_impl_trait ( cx, |cx| {
563- clean_ty_generics ( cx, tcx. generics_of ( did) , predicates)
567+ clean_ty_generics ( cx, tcx. generics_of ( did) , predicates, did )
564568 } ) ,
565569 ) ,
566570 } ;
@@ -718,8 +722,12 @@ pub(crate) fn print_inlined_const(tcx: TyCtxt<'_>, did: DefId) -> String {
718722}
719723
720724fn build_const ( cx : & mut DocContext < ' _ > , def_id : DefId ) -> clean:: Constant {
721- let mut generics =
722- clean_ty_generics ( cx, cx. tcx . generics_of ( def_id) , cx. tcx . explicit_predicates_of ( def_id) ) ;
725+ let mut generics = clean_ty_generics (
726+ cx,
727+ cx. tcx . generics_of ( def_id) ,
728+ cx. tcx . explicit_predicates_of ( def_id) ,
729+ def_id,
730+ ) ;
723731 clean:: simplify:: move_bounds_to_generic_parameters ( & mut generics) ;
724732
725733 clean:: Constant {
0 commit comments