@@ -272,7 +272,7 @@ pub(crate) fn build_external_trait(cx: &mut DocContext<'_>, did: DefId) -> clean
272
272
. collect ( ) ;
273
273
274
274
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 ) ;
276
276
let generics = filter_non_trait_generics ( did, generics) ;
277
277
let ( generics, supertrait_bounds) = separate_supertrait_bounds ( generics) ;
278
278
clean:: Trait { def_id : did, generics, items : trait_items, bounds : supertrait_bounds }
@@ -284,8 +284,12 @@ pub(crate) fn build_function<'tcx>(
284
284
) -> Box < clean:: Function > {
285
285
let sig = cx. tcx . fn_sig ( def_id) . instantiate_identity ( ) ;
286
286
// 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
+ ) ;
289
293
let bound_vars = clean_bound_vars ( sig. bound_vars ( ) ) ;
290
294
291
295
// 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 {
317
321
let predicates = cx. tcx . explicit_predicates_of ( did) ;
318
322
319
323
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 ) ,
321
325
variants : cx. tcx . adt_def ( did) . variants ( ) . iter ( ) . map ( |v| clean_variant_def ( v, cx) ) . collect ( ) ,
322
326
}
323
327
}
@@ -328,7 +332,7 @@ fn build_struct(cx: &mut DocContext<'_>, did: DefId) -> clean::Struct {
328
332
329
333
clean:: Struct {
330
334
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 ) ,
332
336
fields : variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ,
333
337
}
334
338
}
@@ -337,7 +341,7 @@ fn build_union(cx: &mut DocContext<'_>, did: DefId) -> clean::Union {
337
341
let predicates = cx. tcx . explicit_predicates_of ( did) ;
338
342
let variant = cx. tcx . adt_def ( did) . non_enum_variant ( ) ;
339
343
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 ) ;
341
345
let fields = variant. fields . iter ( ) . map ( |x| clean_middle_field ( x, cx) ) . collect ( ) ;
342
346
clean:: Union { generics, fields }
343
347
}
@@ -354,7 +358,7 @@ fn build_type_alias(
354
358
355
359
Box :: new ( clean:: TypeAlias {
356
360
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 ) ,
358
362
inner_type,
359
363
item_type : None ,
360
364
} )
@@ -532,7 +536,7 @@ pub(crate) fn build_impl(
532
536
} )
533
537
. map ( |item| clean_impl_item ( item, cx) )
534
538
. collect :: < Vec < _ > > ( ) ,
535
- clean_generics ( impl_. generics , cx) ,
539
+ clean_generics ( impl_. generics , cx, did ) ,
536
540
) ,
537
541
None => (
538
542
tcx. associated_items ( did)
@@ -560,7 +564,7 @@ pub(crate) fn build_impl(
560
564
. map ( |item| clean_middle_assoc_item ( item, cx) )
561
565
. collect :: < Vec < _ > > ( ) ,
562
566
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 )
564
568
} ) ,
565
569
) ,
566
570
} ;
@@ -718,8 +722,12 @@ pub(crate) fn print_inlined_const(tcx: TyCtxt<'_>, did: DefId) -> String {
718
722
}
719
723
720
724
fn 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
+ ) ;
723
731
clean:: simplify:: move_bounds_to_generic_parameters ( & mut generics) ;
724
732
725
733
clean:: Constant {
0 commit comments