@@ -524,7 +524,11 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
524
524
525
525
ty : Some ( self . encode_item_type ( def_id) ) ,
526
526
inherent_impls : LazySeq :: empty ( ) ,
527
- variances : LazySeq :: empty ( ) ,
527
+ variances : if variant. ctor_kind == CtorKind :: Fn {
528
+ self . encode_variances_of ( def_id)
529
+ } else {
530
+ LazySeq :: empty ( )
531
+ } ,
528
532
generics : Some ( self . encode_generics ( def_id) ) ,
529
533
predicates : Some ( self . encode_predicates ( def_id) ) ,
530
534
@@ -652,7 +656,11 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
652
656
653
657
ty : Some ( self . encode_item_type ( def_id) ) ,
654
658
inherent_impls : LazySeq :: empty ( ) ,
655
- variances : LazySeq :: empty ( ) ,
659
+ variances : if variant. ctor_kind == CtorKind :: Fn {
660
+ self . encode_variances_of ( def_id)
661
+ } else {
662
+ LazySeq :: empty ( )
663
+ } ,
656
664
generics : Some ( self . encode_generics ( def_id) ) ,
657
665
predicates : Some ( self . encode_predicates ( def_id) ) ,
658
666
@@ -744,7 +752,11 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
744
752
}
745
753
} ,
746
754
inherent_impls : LazySeq :: empty ( ) ,
747
- variances : LazySeq :: empty ( ) ,
755
+ variances : if trait_item. kind == ty:: AssociatedKind :: Method {
756
+ self . encode_variances_of ( def_id)
757
+ } else {
758
+ LazySeq :: empty ( )
759
+ } ,
748
760
generics : Some ( self . encode_generics ( def_id) ) ,
749
761
predicates : Some ( self . encode_predicates ( def_id) ) ,
750
762
@@ -821,7 +833,11 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
821
833
822
834
ty : Some ( self . encode_item_type ( def_id) ) ,
823
835
inherent_impls : LazySeq :: empty ( ) ,
824
- variances : LazySeq :: empty ( ) ,
836
+ variances : if impl_item. kind == ty:: AssociatedKind :: Method {
837
+ self . encode_variances_of ( def_id)
838
+ } else {
839
+ LazySeq :: empty ( )
840
+ } ,
825
841
generics : Some ( self . encode_generics ( def_id) ) ,
826
842
predicates : Some ( self . encode_predicates ( def_id) ) ,
827
843
@@ -1055,7 +1071,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1055
1071
hir:: ItemEnum ( ..) |
1056
1072
hir:: ItemStruct ( ..) |
1057
1073
hir:: ItemUnion ( ..) |
1058
- hir:: ItemTrait ( ..) => self . encode_variances_of ( def_id) ,
1074
+ hir:: ItemFn ( ..) => self . encode_variances_of ( def_id) ,
1059
1075
_ => LazySeq :: empty ( ) ,
1060
1076
} ,
1061
1077
generics : match item. node {
@@ -1400,7 +1416,10 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1400
1416
1401
1417
ty : Some ( self . encode_item_type ( def_id) ) ,
1402
1418
inherent_impls : LazySeq :: empty ( ) ,
1403
- variances : LazySeq :: empty ( ) ,
1419
+ variances : match nitem. node {
1420
+ hir:: ForeignItemFn ( ..) => self . encode_variances_of ( def_id) ,
1421
+ _ => LazySeq :: empty ( ) ,
1422
+ } ,
1404
1423
generics : Some ( self . encode_generics ( def_id) ) ,
1405
1424
predicates : Some ( self . encode_predicates ( def_id) ) ,
1406
1425
0 commit comments