@@ -613,8 +613,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
613
613
LazySeq :: empty ( )
614
614
} ,
615
615
generics : Some ( self . encode_generics ( def_id) ) ,
616
- predicates : Some ( self . encode_predicates ( def_id) ) ,
617
- predicates_defined_on : None ,
616
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
618
617
619
618
mir : self . encode_optimized_mir ( def_id) ,
620
619
}
@@ -669,8 +668,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
669
668
LazySeq :: empty ( )
670
669
} ,
671
670
generics : Some ( self . encode_generics ( def_id) ) ,
672
- predicates : Some ( self . encode_predicates ( def_id) ) ,
673
- predicates_defined_on : None ,
671
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
674
672
675
673
mir : self . encode_optimized_mir ( def_id) ,
676
674
}
@@ -707,7 +705,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
707
705
inherent_impls : LazySeq :: empty ( ) ,
708
706
variances : LazySeq :: empty ( ) ,
709
707
generics : None ,
710
- predicates : None ,
711
708
predicates_defined_on : None ,
712
709
713
710
mir : None
@@ -748,8 +745,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
748
745
inherent_impls : LazySeq :: empty ( ) ,
749
746
variances : LazySeq :: empty ( ) ,
750
747
generics : Some ( self . encode_generics ( def_id) ) ,
751
- predicates : Some ( self . encode_predicates ( def_id) ) ,
752
- predicates_defined_on : None ,
748
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
753
749
754
750
mir : None ,
755
751
}
@@ -808,8 +804,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
808
804
LazySeq :: empty ( )
809
805
} ,
810
806
generics : Some ( self . encode_generics ( def_id) ) ,
811
- predicates : Some ( self . encode_predicates ( def_id) ) ,
812
- predicates_defined_on : None ,
807
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
813
808
814
809
mir : self . encode_optimized_mir ( def_id) ,
815
810
}
@@ -821,12 +816,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
821
816
self . lazy ( tcx. generics_of ( def_id) )
822
817
}
823
818
824
- fn encode_predicates ( & mut self , def_id : DefId ) -> Lazy < ty:: GenericPredicates < ' tcx > > {
825
- debug ! ( "IsolatedEncoder::encode_predicates({:?})" , def_id) ;
826
- let tcx = self . tcx ;
827
- self . lazy ( & tcx. predicates_of ( def_id) )
828
- }
829
-
830
819
fn encode_predicates_defined_on ( & mut self , def_id : DefId ) -> Lazy < ty:: GenericPredicates < ' tcx > > {
831
820
debug ! ( "IsolatedEncoder::encode_predicates_defined_on({:?})" , def_id) ;
832
821
let tcx = self . tcx ;
@@ -924,8 +913,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
924
913
LazySeq :: empty ( )
925
914
} ,
926
915
generics : Some ( self . encode_generics ( def_id) ) ,
927
- predicates : Some ( self . encode_predicates ( def_id) ) ,
928
- predicates_defined_on : None ,
916
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
929
917
930
918
mir : self . encode_optimized_mir ( def_id) ,
931
919
}
@@ -1023,8 +1011,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1023
1011
LazySeq :: empty ( )
1024
1012
} ,
1025
1013
generics : Some ( self . encode_generics ( def_id) ) ,
1026
- predicates : Some ( self . encode_predicates ( def_id) ) ,
1027
- predicates_defined_on : None ,
1014
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
1028
1015
1029
1016
mir : if mir { self . encode_optimized_mir ( def_id) } else { None } ,
1030
1017
}
@@ -1280,7 +1267,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1280
1267
hir:: ItemKind :: TraitAlias ( ..) => Some ( self . encode_generics ( def_id) ) ,
1281
1268
_ => None ,
1282
1269
} ,
1283
- predicates : match item. node {
1270
+ predicates_defined_on : match item. node {
1284
1271
hir:: ItemKind :: Static ( ..) |
1285
1272
hir:: ItemKind :: Const ( ..) |
1286
1273
hir:: ItemKind :: Fn ( ..) |
@@ -1290,20 +1277,9 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1290
1277
hir:: ItemKind :: Union ( ..) |
1291
1278
hir:: ItemKind :: Impl ( ..) |
1292
1279
hir:: ItemKind :: Existential ( ..) |
1293
- hir:: ItemKind :: Trait ( ..) |
1294
- hir:: ItemKind :: TraitAlias ( ..) => Some ( self . encode_predicates ( def_id) ) ,
1295
- _ => None ,
1296
- } ,
1297
-
1298
- // The only time that `predicates_defined_on` is used (on
1299
- // an external item) is for traits, during chalk lowering,
1300
- // so only encode it in that case as an efficiency
1301
- // hack. (No reason not to expand it in the future if
1302
- // necessary.)
1303
- predicates_defined_on : match item. node {
1304
1280
hir:: ItemKind :: Trait ( ..) |
1305
1281
hir:: ItemKind :: TraitAlias ( ..) => Some ( self . encode_predicates_defined_on ( def_id) ) ,
1306
- _ => None , // not *wrong* for other kinds of items, but not needed
1282
+ _ => None ,
1307
1283
} ,
1308
1284
1309
1285
mir : match item. node {
@@ -1352,7 +1328,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1352
1328
inherent_impls : LazySeq :: empty ( ) ,
1353
1329
variances : LazySeq :: empty ( ) ,
1354
1330
generics : None ,
1355
- predicates : None ,
1356
1331
predicates_defined_on : None ,
1357
1332
mir : None ,
1358
1333
}
@@ -1377,7 +1352,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1377
1352
inherent_impls : LazySeq :: empty ( ) ,
1378
1353
variances : LazySeq :: empty ( ) ,
1379
1354
generics : None ,
1380
- predicates : None ,
1381
1355
predicates_defined_on : None ,
1382
1356
1383
1357
mir : None ,
@@ -1437,7 +1411,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1437
1411
inherent_impls : LazySeq :: empty ( ) ,
1438
1412
variances : LazySeq :: empty ( ) ,
1439
1413
generics : Some ( self . encode_generics ( def_id) ) ,
1440
- predicates : None ,
1441
1414
predicates_defined_on : None ,
1442
1415
1443
1416
mir : self . encode_optimized_mir ( def_id) ,
@@ -1465,8 +1438,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1465
1438
inherent_impls : LazySeq :: empty ( ) ,
1466
1439
variances : LazySeq :: empty ( ) ,
1467
1440
generics : Some ( self . encode_generics ( def_id) ) ,
1468
- predicates : Some ( self . encode_predicates ( def_id) ) ,
1469
- predicates_defined_on : None ,
1441
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
1470
1442
1471
1443
mir : self . encode_optimized_mir ( def_id) ,
1472
1444
}
@@ -1668,8 +1640,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
1668
1640
_ => LazySeq :: empty ( ) ,
1669
1641
} ,
1670
1642
generics : Some ( self . encode_generics ( def_id) ) ,
1671
- predicates : Some ( self . encode_predicates ( def_id) ) ,
1672
- predicates_defined_on : None ,
1643
+ predicates_defined_on : Some ( self . encode_predicates_defined_on ( def_id) ) ,
1673
1644
1674
1645
mir : None ,
1675
1646
}
0 commit comments