@@ -270,7 +270,7 @@ pub(crate) fn build_external_trait(cx: &mut DocContext<'_>, did: DefId) -> clean
270
270
. collect ( ) ;
271
271
272
272
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 ) ;
274
274
let generics = filter_non_trait_generics ( did, generics) ;
275
275
let ( generics, supertrait_bounds) = separate_supertrait_bounds ( generics) ;
276
276
clean:: Trait { def_id : did, generics, items : trait_items, bounds : supertrait_bounds }
@@ -282,8 +282,12 @@ pub(crate) fn build_function<'tcx>(
282
282
) -> Box < clean:: Function > {
283
283
let sig = cx. tcx . fn_sig ( def_id) . instantiate_identity ( ) ;
284
284
// 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
+ ) ;
287
291
let bound_vars = clean_bound_vars ( sig. bound_vars ( ) ) ;
288
292
289
293
// 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 {
315
319
let predicates = cx. tcx . explicit_predicates_of ( did) ;
316
320
317
321
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 ) ,
319
323
variants : cx. tcx . adt_def ( did) . variants ( ) . iter ( ) . map ( |v| clean_variant_def ( v, cx) ) . collect ( ) ,
320
324
}
321
325
}
@@ -326,7 +330,7 @@ fn build_struct(cx: &mut DocContext<'_>, did: DefId) -> clean::Struct {
326
330
327
331
clean:: Struct {
328
332
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 ) ,
330
334
fields : variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ,
331
335
}
332
336
}
@@ -335,7 +339,7 @@ fn build_union(cx: &mut DocContext<'_>, did: DefId) -> clean::Union {
335
339
let predicates = cx. tcx . explicit_predicates_of ( did) ;
336
340
let variant = cx. tcx . adt_def ( did) . non_enum_variant ( ) ;
337
341
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 ) ;
339
343
let fields = variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ;
340
344
clean:: Union { generics, fields }
341
345
}
@@ -352,7 +356,7 @@ fn build_type_alias(
352
356
353
357
Box :: new ( clean:: TypeAlias {
354
358
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 ) ,
356
360
inner_type,
357
361
item_type : None ,
358
362
} )
@@ -530,7 +534,7 @@ pub(crate) fn build_impl(
530
534
} )
531
535
. map ( |item| clean_impl_item ( item, cx) )
532
536
. collect :: < Vec < _ > > ( ) ,
533
- clean_generics ( impl_. generics , cx) ,
537
+ clean_generics ( impl_. generics , cx, did ) ,
534
538
) ,
535
539
None => (
536
540
tcx. associated_items ( did)
@@ -558,7 +562,7 @@ pub(crate) fn build_impl(
558
562
. map ( |item| clean_middle_assoc_item ( item, cx) )
559
563
. collect :: < Vec < _ > > ( ) ,
560
564
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 )
562
566
} ) ,
563
567
) ,
564
568
} ;
@@ -716,8 +720,12 @@ pub(crate) fn print_inlined_const(tcx: TyCtxt<'_>, did: DefId) -> String {
716
720
}
717
721
718
722
fn 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
+ ) ;
721
729
clean:: simplify:: move_bounds_to_generic_parameters ( & mut generics) ;
722
730
723
731
clean:: Constant {
0 commit comments