about summary refs log tree commit diff
path: root/src/librustc_infer
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-07-06 20:44:16 +0000
committerbors <bors@rust-lang.org>2020-07-06 20:44:16 +0000
commit8981dbbc36f1575b0a417b6849767bde29e7c6b4 (patch)
treefdbb360930dc941571b61dea4f7e245fdd2abd53 /src/librustc_infer
parent0c03aee8b81185d65b5821518661c30ecdb42de5 (diff)
parent8512d2efdef2c41aa529f44941f4c1f0e5fdd7de (diff)
downloadrust-8981dbbc36f1575b0a417b6849767bde29e7c6b4.tar.gz
rust-8981dbbc36f1575b0a417b6849767bde29e7c6b4.zip
Auto merge of #73978 - Mark-Simulacrum:shrink-paramenv, r=nnethercote
Shrink ParamEnv to 16 bytes

r? @nnethercote

x.py check passes but I haven't tried running perf or tests
Diffstat (limited to 'src/librustc_infer')
-rw-r--r--src/librustc_infer/infer/outlives/mod.rs2
-rw-r--r--src/librustc_infer/infer/outlives/verify.rs2
-rw-r--r--src/librustc_infer/traits/mod.rs2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/librustc_infer/infer/outlives/mod.rs b/src/librustc_infer/infer/outlives/mod.rs
index fd3b38e9d67..541a2f18045 100644
--- a/src/librustc_infer/infer/outlives/mod.rs
+++ b/src/librustc_infer/infer/outlives/mod.rs
@@ -11,7 +11,7 @@ pub fn explicit_outlives_bounds<'tcx>(
     param_env: ty::ParamEnv<'tcx>,
 ) -> impl Iterator<Item = OutlivesBound<'tcx>> + 'tcx {
     debug!("explicit_outlives_bounds()");
-    param_env.caller_bounds.into_iter().filter_map(move |predicate| match predicate.kind() {
+    param_env.caller_bounds().into_iter().filter_map(move |predicate| match predicate.kind() {
         ty::PredicateKind::Projection(..)
         | ty::PredicateKind::Trait(..)
         | ty::PredicateKind::Subtype(..)
diff --git a/src/librustc_infer/infer/outlives/verify.rs b/src/librustc_infer/infer/outlives/verify.rs
index 383979f8640..8f20b5743df 100644
--- a/src/librustc_infer/infer/outlives/verify.rs
+++ b/src/librustc_infer/infer/outlives/verify.rs
@@ -221,7 +221,7 @@ impl<'cx, 'tcx> VerifyBoundCx<'cx, 'tcx> {
         // dubious for projections, but it will work for simple cases
         // like `T` and `T::Item`. It may not work as well for things
         // like `<T as Foo<'a>>::Item`.
-        let c_b = self.param_env.caller_bounds;
+        let c_b = self.param_env.caller_bounds();
         let param_bounds = self.collect_outlives_from_predicate_list(&compare_ty, c_b.into_iter());
 
         // Next, collect regions we scraped from the well-formedness
diff --git a/src/librustc_infer/traits/mod.rs b/src/librustc_infer/traits/mod.rs
index 8cd1eb9957b..7e7c8588ffb 100644
--- a/src/librustc_infer/traits/mod.rs
+++ b/src/librustc_infer/traits/mod.rs
@@ -57,7 +57,7 @@ pub type TraitObligation<'tcx> = Obligation<'tcx, ty::PolyTraitPredicate<'tcx>>;
 
 // `PredicateObligation` is used a lot. Make sure it doesn't unintentionally get bigger.
 #[cfg(target_arch = "x86_64")]
-static_assert_size!(PredicateObligation<'_>, 48);
+static_assert_size!(PredicateObligation<'_>, 40);
 
 pub type Obligations<'tcx, O> = Vec<Obligation<'tcx, O>>;
 pub type PredicateObligations<'tcx> = Vec<PredicateObligation<'tcx>>;