@@ -613,8 +613,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
613613 LazySeq :: empty ( )
614614 } ,
615615 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) ) ,
618617
619618 mir : self . encode_optimized_mir ( def_id) ,
620619 }
@@ -669,8 +668,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
669668 LazySeq :: empty ( )
670669 } ,
671670 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) ) ,
674672
675673 mir : self . encode_optimized_mir ( def_id) ,
676674 }
@@ -707,7 +705,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
707705 inherent_impls : LazySeq :: empty ( ) ,
708706 variances : LazySeq :: empty ( ) ,
709707 generics : None ,
710- predicates : None ,
711708 predicates_defined_on : None ,
712709
713710 mir : None
@@ -748,8 +745,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
748745 inherent_impls : LazySeq :: empty ( ) ,
749746 variances : LazySeq :: empty ( ) ,
750747 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) ) ,
753749
754750 mir : None ,
755751 }
@@ -808,8 +804,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
808804 LazySeq :: empty ( )
809805 } ,
810806 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) ) ,
813808
814809 mir : self . encode_optimized_mir ( def_id) ,
815810 }
@@ -821,12 +816,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
821816 self . lazy ( tcx. generics_of ( def_id) )
822817 }
823818
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-
830819 fn encode_predicates_defined_on ( & mut self , def_id : DefId ) -> Lazy < ty:: GenericPredicates < ' tcx > > {
831820 debug ! ( "IsolatedEncoder::encode_predicates_defined_on({:?})" , def_id) ;
832821 let tcx = self . tcx ;
@@ -924,8 +913,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
924913 LazySeq :: empty ( )
925914 } ,
926915 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) ) ,
929917
930918 mir : self . encode_optimized_mir ( def_id) ,
931919 }
@@ -1023,8 +1011,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
10231011 LazySeq :: empty ( )
10241012 } ,
10251013 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) ) ,
10281015
10291016 mir : if mir { self . encode_optimized_mir ( def_id) } else { None } ,
10301017 }
@@ -1280,7 +1267,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
12801267 hir:: ItemKind :: TraitAlias ( ..) => Some ( self . encode_generics ( def_id) ) ,
12811268 _ => None ,
12821269 } ,
1283- predicates : match item. node {
1270+ predicates_defined_on : match item. node {
12841271 hir:: ItemKind :: Static ( ..) |
12851272 hir:: ItemKind :: Const ( ..) |
12861273 hir:: ItemKind :: Fn ( ..) |
@@ -1290,20 +1277,9 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
12901277 hir:: ItemKind :: Union ( ..) |
12911278 hir:: ItemKind :: Impl ( ..) |
12921279 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 {
13041280 hir:: ItemKind :: Trait ( ..) |
13051281 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 ,
13071283 } ,
13081284
13091285 mir : match item. node {
@@ -1352,7 +1328,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
13521328 inherent_impls : LazySeq :: empty ( ) ,
13531329 variances : LazySeq :: empty ( ) ,
13541330 generics : None ,
1355- predicates : None ,
13561331 predicates_defined_on : None ,
13571332 mir : None ,
13581333 }
@@ -1377,7 +1352,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
13771352 inherent_impls : LazySeq :: empty ( ) ,
13781353 variances : LazySeq :: empty ( ) ,
13791354 generics : None ,
1380- predicates : None ,
13811355 predicates_defined_on : None ,
13821356
13831357 mir : None ,
@@ -1437,7 +1411,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
14371411 inherent_impls : LazySeq :: empty ( ) ,
14381412 variances : LazySeq :: empty ( ) ,
14391413 generics : Some ( self . encode_generics ( def_id) ) ,
1440- predicates : None ,
14411414 predicates_defined_on : None ,
14421415
14431416 mir : self . encode_optimized_mir ( def_id) ,
@@ -1465,8 +1438,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
14651438 inherent_impls : LazySeq :: empty ( ) ,
14661439 variances : LazySeq :: empty ( ) ,
14671440 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) ) ,
14701442
14711443 mir : self . encode_optimized_mir ( def_id) ,
14721444 }
@@ -1668,8 +1640,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
16681640 _ => LazySeq :: empty ( ) ,
16691641 } ,
16701642 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) ) ,
16731644
16741645 mir : None ,
16751646 }
0 commit comments