Skip to content

Commit d1191bf

Browse files
committed
rustc_metadata: remove predicates_of and rely on predicates_defined_on alone.
1 parent ae3703b commit d1191bf

File tree

4 files changed

+10
-49
lines changed

4 files changed

+10
-49
lines changed

src/librustc_metadata/cstore_impl.rs

-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ provide! { <'tcx> tcx, def_id, other, cdata,
9494
generics_of => {
9595
tcx.alloc_generics(cdata.get_generics(def_id.index, tcx.sess))
9696
}
97-
predicates_of => { Lrc::new(cdata.get_predicates(def_id.index, tcx)) }
9897
predicates_defined_on => { Lrc::new(cdata.get_predicates_defined_on(def_id.index, tcx)) }
9998
super_predicates_of => { Lrc::new(cdata.get_super_predicates(def_id.index, tcx)) }
10099
trait_def => {

src/librustc_metadata/decoder.rs

-7
Original file line numberDiff line numberDiff line change
@@ -617,13 +617,6 @@ impl<'a, 'tcx> CrateMetadata {
617617
tcx.alloc_adt_def(did, kind, variants, repr)
618618
}
619619

620-
pub fn get_predicates(&self,
621-
item_id: DefIndex,
622-
tcx: TyCtxt<'a, 'tcx, 'tcx>)
623-
-> ty::GenericPredicates<'tcx> {
624-
self.entry(item_id).predicates.unwrap().decode((self, tcx))
625-
}
626-
627620
pub fn get_predicates_defined_on(&self,
628621
item_id: DefIndex,
629622
tcx: TyCtxt<'a, 'tcx, 'tcx>)

src/librustc_metadata/encoder.rs

+10-39
Original file line numberDiff line numberDiff line change
@@ -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
}

src/librustc_metadata/schema.rs

-2
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,6 @@ pub struct Entry<'tcx> {
265265
pub inherent_impls: LazySeq<DefIndex>,
266266
pub variances: LazySeq<ty::Variance>,
267267
pub generics: Option<Lazy<ty::Generics>>,
268-
pub predicates: Option<Lazy<ty::GenericPredicates<'tcx>>>,
269268
pub predicates_defined_on: Option<Lazy<ty::GenericPredicates<'tcx>>>,
270269

271270
pub mir: Option<Lazy<mir::Mir<'tcx>>>,
@@ -283,7 +282,6 @@ impl_stable_hash_for!(struct Entry<'tcx> {
283282
inherent_impls,
284283
variances,
285284
generics,
286-
predicates,
287285
predicates_defined_on,
288286
mir
289287
});

0 commit comments

Comments
 (0)