@@ -270,7 +270,7 @@ pub(crate) fn build_external_trait(cx: &mut DocContext<'_>, did: DefId) -> clean
270270 . collect ( ) ;
271271
272272 let predicates = cx. tcx . predicates_of ( did) ;
273- let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ;
273+ let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ;
274274 let generics = filter_non_trait_generics ( did, generics) ;
275275 let ( generics, supertrait_bounds) = separate_supertrait_bounds ( generics) ;
276276 clean:: Trait { def_id : did, generics, items : trait_items, bounds : supertrait_bounds }
@@ -282,8 +282,12 @@ pub(crate) fn build_function<'tcx>(
282282) -> Box < clean:: Function > {
283283 let sig = cx. tcx . fn_sig ( def_id) . instantiate_identity ( ) ;
284284 // The generics need to be cleaned before the signature.
285- let mut generics =
286- clean_ty_generics ( cx, cx. tcx . generics_of ( def_id) , cx. tcx . explicit_predicates_of ( def_id) ) ;
285+ let mut generics = clean_ty_generics (
286+ cx,
287+ cx. tcx . generics_of ( def_id) ,
288+ cx. tcx . explicit_predicates_of ( def_id) ,
289+ def_id,
290+ ) ;
287291 let bound_vars = clean_bound_vars ( sig. bound_vars ( ) ) ;
288292
289293 // At the time of writing early & late-bound params are stored separately in rustc,
@@ -315,7 +319,7 @@ fn build_enum(cx: &mut DocContext<'_>, did: DefId) -> clean::Enum {
315319 let predicates = cx. tcx . explicit_predicates_of ( did) ;
316320
317321 clean:: Enum {
318- generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ,
322+ generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ,
319323 variants : cx. tcx . adt_def ( did) . variants ( ) . iter ( ) . map ( |v| clean_variant_def ( v, cx) ) . collect ( ) ,
320324 }
321325}
@@ -326,7 +330,7 @@ fn build_struct(cx: &mut DocContext<'_>, did: DefId) -> clean::Struct {
326330
327331 clean:: Struct {
328332 ctor_kind : variant. ctor_kind ( ) ,
329- generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ,
333+ generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ,
330334 fields : variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ,
331335 }
332336}
@@ -335,7 +339,7 @@ fn build_union(cx: &mut DocContext<'_>, did: DefId) -> clean::Union {
335339 let predicates = cx. tcx . explicit_predicates_of ( did) ;
336340 let variant = cx. tcx . adt_def ( did) . non_enum_variant ( ) ;
337341
338- let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ;
342+ let generics = clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ;
339343 let fields = variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ;
340344 clean:: Union { generics, fields }
341345}
@@ -352,7 +356,7 @@ fn build_type_alias(
352356
353357 Box :: new ( clean:: TypeAlias {
354358 type_,
355- generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates) ,
359+ generics : clean_ty_generics ( cx, cx. tcx . generics_of ( did) , predicates, did ) ,
356360 inner_type,
357361 item_type : None ,
358362 } )
@@ -530,7 +534,7 @@ pub(crate) fn build_impl(
530534 } )
531535 . map ( |item| clean_impl_item ( item, cx) )
532536 . collect :: < Vec < _ > > ( ) ,
533- clean_generics ( impl_. generics , cx) ,
537+ clean_generics ( impl_. generics , cx, did ) ,
534538 ) ,
535539 None => (
536540 tcx. associated_items ( did)
@@ -558,7 +562,7 @@ pub(crate) fn build_impl(
558562 . map ( |item| clean_middle_assoc_item ( item, cx) )
559563 . collect :: < Vec < _ > > ( ) ,
560564 clean:: enter_impl_trait ( cx, |cx| {
561- clean_ty_generics ( cx, tcx. generics_of ( did) , predicates)
565+ clean_ty_generics ( cx, tcx. generics_of ( did) , predicates, did )
562566 } ) ,
563567 ) ,
564568 } ;
@@ -716,8 +720,12 @@ pub(crate) fn print_inlined_const(tcx: TyCtxt<'_>, did: DefId) -> String {
716720}
717721
718722fn build_const ( cx : & mut DocContext < ' _ > , def_id : DefId ) -> clean:: Constant {
719- let mut generics =
720- clean_ty_generics ( cx, cx. tcx . generics_of ( def_id) , cx. tcx . explicit_predicates_of ( def_id) ) ;
723+ let mut generics = clean_ty_generics (
724+ cx,
725+ cx. tcx . generics_of ( def_id) ,
726+ cx. tcx . explicit_predicates_of ( def_id) ,
727+ def_id,
728+ ) ;
721729 clean:: simplify:: move_bounds_to_generic_parameters ( & mut generics) ;
722730
723731 clean:: Constant {
0 commit comments