Skip to content

Commit 4038010

Browse files
Get rid of PredicateObligations
1 parent 0c96061 commit 4038010

File tree

10 files changed

+20
-26
lines changed

10 files changed

+20
-26
lines changed

compiler/rustc_borrowck/src/type_check/relate_tys.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use rustc_errors::ErrorGuaranteed;
33
use rustc_infer::infer::relate::{ObligationEmittingRelation, StructurallyRelateAliases};
44
use rustc_infer::infer::relate::{Relate, RelateResult, TypeRelation};
55
use rustc_infer::infer::NllRegionVariableOrigin;
6-
use rustc_infer::traits::{Obligation, PredicateObligations};
6+
use rustc_infer::traits::{Obligation, PredicateObligation};
77
use rustc_middle::mir::ConstraintCategory;
88
use rustc_middle::span_bug;
99
use rustc_middle::traits::query::NoSolution;
@@ -560,7 +560,7 @@ impl<'bccx, 'tcx> ObligationEmittingRelation<'tcx> for NllTypeRelating<'_, 'bccx
560560
);
561561
}
562562

563-
fn register_obligations(&mut self, obligations: PredicateObligations<'tcx>) {
563+
fn register_obligations(&mut self, obligations: Vec<PredicateObligation<'tcx>>) {
564564
let _: Result<_, ErrorGuaranteed> = self.type_checker.fully_perform_op(
565565
self.locations,
566566
self.category,

compiler/rustc_hir_typeck/src/coercion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ fn simple<'tcx>(kind: Adjust<'tcx>) -> impl FnOnce(Ty<'tcx>) -> Vec<Adjustment<'
113113
fn success<'tcx>(
114114
adj: Vec<Adjustment<'tcx>>,
115115
target: Ty<'tcx>,
116-
obligations: traits::PredicateObligations<'tcx>,
116+
obligations: Vec<traits::PredicateObligation<'tcx>>,
117117
) -> CoerceResult<'tcx> {
118118
Ok(InferOk { value: (adj, target), obligations })
119119
}

compiler/rustc_infer/src/infer/mod.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ pub use SubregionOrigin::*;
99
pub use ValuePairs::*;
1010

1111
use crate::infer::relate::{CombineFields, RelateResult};
12-
use crate::traits::{
13-
self, ObligationCause, ObligationInspector, PredicateObligations, TraitEngine,
14-
};
12+
use crate::traits::{self, ObligationCause, ObligationInspector, PredicateObligation, TraitEngine};
1513
use error_reporting::TypeErrCtxt;
1614
use free_regions::RegionRelations;
1715
use lexical_region_resolve::LexicalRegionResolutions;
@@ -68,7 +66,7 @@ pub mod type_variable;
6866
#[derive(Debug)]
6967
pub struct InferOk<'tcx, T> {
7068
pub value: T,
71-
pub obligations: PredicateObligations<'tcx>,
69+
pub obligations: Vec<PredicateObligation<'tcx>>,
7270
}
7371
pub type InferResult<'tcx, T> = Result<InferOk<'tcx, T>, TypeError<'tcx>>;
7472

@@ -748,7 +746,7 @@ impl<'tcx, T> InferOk<'tcx, T> {
748746
}
749747

750748
impl<'tcx> InferOk<'tcx, ()> {
751-
pub fn into_obligations(self) -> PredicateObligations<'tcx> {
749+
pub fn into_obligations(self) -> Vec<PredicateObligation<'tcx>> {
752750
self.obligations
753751
}
754752
}

compiler/rustc_infer/src/infer/relate/combine.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use super::StructurallyRelateAliases;
2525
use super::{RelateResult, TypeRelation};
2626
use crate::infer::relate;
2727
use crate::infer::{DefineOpaqueTypes, InferCtxt, TypeTrace};
28-
use crate::traits::{Obligation, PredicateObligations};
28+
use crate::traits::{Obligation, PredicateObligation};
2929
use rustc_middle::bug;
3030
use rustc_middle::infer::unify_key::EffectVarValue;
3131
use rustc_middle::ty::error::{ExpectedFound, TypeError};
@@ -38,7 +38,7 @@ pub struct CombineFields<'infcx, 'tcx> {
3838
pub infcx: &'infcx InferCtxt<'tcx>,
3939
pub trace: TypeTrace<'tcx>,
4040
pub param_env: ty::ParamEnv<'tcx>,
41-
pub obligations: PredicateObligations<'tcx>,
41+
pub obligations: Vec<PredicateObligation<'tcx>>,
4242
pub define_opaque_types: DefineOpaqueTypes,
4343
}
4444

@@ -290,7 +290,7 @@ impl<'infcx, 'tcx> CombineFields<'infcx, 'tcx> {
290290
Glb::new(self)
291291
}
292292

293-
pub fn register_obligations(&mut self, obligations: PredicateObligations<'tcx>) {
293+
pub fn register_obligations(&mut self, obligations: Vec<PredicateObligation<'tcx>>) {
294294
self.obligations.extend(obligations);
295295
}
296296

@@ -315,7 +315,7 @@ pub trait ObligationEmittingRelation<'tcx>: TypeRelation<TyCtxt<'tcx>> {
315315
fn structurally_relate_aliases(&self) -> StructurallyRelateAliases;
316316

317317
/// Register obligations that must hold in order for this relation to hold
318-
fn register_obligations(&mut self, obligations: PredicateObligations<'tcx>);
318+
fn register_obligations(&mut self, obligations: Vec<PredicateObligation<'tcx>>);
319319

320320
/// Register predicates that must hold in order for this relation to hold. Uses
321321
/// a default obligation cause, [`ObligationEmittingRelation::register_obligations`] should

compiler/rustc_infer/src/infer/relate/glb.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use super::combine::{CombineFields, ObligationEmittingRelation};
88
use super::lattice::{self, LatticeDir};
99
use super::StructurallyRelateAliases;
1010
use crate::infer::{DefineOpaqueTypes, InferCtxt, SubregionOrigin};
11-
use crate::traits::{ObligationCause, PredicateObligations};
11+
use crate::traits::{ObligationCause, PredicateObligation};
1212

1313
/// "Greatest lower bound" (common subtype)
1414
pub struct Glb<'combine, 'infcx, 'tcx> {
@@ -147,7 +147,7 @@ impl<'tcx> ObligationEmittingRelation<'tcx> for Glb<'_, '_, 'tcx> {
147147
self.fields.register_predicates(obligations);
148148
}
149149

150-
fn register_obligations(&mut self, obligations: PredicateObligations<'tcx>) {
150+
fn register_obligations(&mut self, obligations: Vec<PredicateObligation<'tcx>>) {
151151
self.fields.register_obligations(obligations);
152152
}
153153

compiler/rustc_infer/src/infer/relate/lub.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use super::combine::{CombineFields, ObligationEmittingRelation};
44
use super::lattice::{self, LatticeDir};
55
use super::StructurallyRelateAliases;
66
use crate::infer::{DefineOpaqueTypes, InferCtxt, SubregionOrigin};
7-
use crate::traits::{ObligationCause, PredicateObligations};
7+
use crate::traits::{ObligationCause, PredicateObligation};
88

99
use super::{Relate, RelateResult, TypeRelation};
1010
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt};
@@ -147,7 +147,7 @@ impl<'tcx> ObligationEmittingRelation<'tcx> for Lub<'_, '_, 'tcx> {
147147
self.fields.register_predicates(obligations);
148148
}
149149

150-
fn register_obligations(&mut self, obligations: PredicateObligations<'tcx>) {
150+
fn register_obligations(&mut self, obligations: Vec<PredicateObligation<'tcx>>) {
151151
self.fields.register_obligations(obligations)
152152
}
153153

compiler/rustc_infer/src/infer/relate/type_relating.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::combine::CombineFields;
22
use crate::infer::BoundRegionConversionTime::HigherRankedType;
33
use crate::infer::{DefineOpaqueTypes, SubregionOrigin};
4-
use crate::traits::{Obligation, PredicateObligations};
4+
use crate::traits::{Obligation, PredicateObligation};
55

66
use super::{
77
relate_args_invariantly, relate_args_with_variances, ObligationEmittingRelation, Relate,
@@ -318,7 +318,7 @@ impl<'tcx> ObligationEmittingRelation<'tcx> for TypeRelating<'_, '_, 'tcx> {
318318
self.fields.register_predicates(obligations);
319319
}
320320

321-
fn register_obligations(&mut self, obligations: PredicateObligations<'tcx>) {
321+
fn register_obligations(&mut self, obligations: Vec<PredicateObligation<'tcx>>) {
322322
self.fields.register_obligations(obligations);
323323
}
324324

compiler/rustc_infer/src/traits/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,6 @@ impl<'tcx> PolyTraitObligation<'tcx> {
114114
#[cfg(target_pointer_width = "64")]
115115
rustc_data_structures::static_assert_size!(PredicateObligation<'_>, 48);
116116

117-
pub type PredicateObligations<'tcx> = Vec<PredicateObligation<'tcx>>;
118-
119117
pub type Selection<'tcx> = ImplSource<'tcx, PredicateObligation<'tcx>>;
120118

121119
/// A callback that can be provided to `inspect_typeck`. Invoked on evaluation

compiler/rustc_trait_selection/src/traits/coherence.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ use crate::traits::select::IntercrateAmbiguityCause;
1212
use crate::traits::NormalizeExt;
1313
use crate::traits::SkipLeakCheck;
1414
use crate::traits::{util, FulfillmentErrorCode};
15-
use crate::traits::{
16-
Obligation, ObligationCause, PredicateObligation, PredicateObligations, SelectionContext,
17-
};
15+
use crate::traits::{Obligation, ObligationCause, PredicateObligation, SelectionContext};
1816
use rustc_data_structures::fx::FxIndexSet;
1917
use rustc_errors::{Diag, EmissionGuarantee};
2018
use rustc_hir::def::DefKind;
@@ -305,7 +303,7 @@ fn equate_impl_headers<'tcx>(
305303
param_env: ty::ParamEnv<'tcx>,
306304
impl1: &ty::ImplHeader<'tcx>,
307305
impl2: &ty::ImplHeader<'tcx>,
308-
) -> Option<PredicateObligations<'tcx>> {
306+
) -> Option<Vec<PredicateObligation<'tcx>>> {
309307
let result =
310308
match (impl1.trait_ref, impl2.trait_ref) {
311309
(Some(impl1_ref), Some(impl2_ref)) => infcx

compiler/rustc_trait_selection/src/traits/query/type_op/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::infer::{InferCtxt, InferOk};
55
use crate::traits::{ObligationCause, ObligationCtxt};
66
use rustc_errors::ErrorGuaranteed;
77
use rustc_infer::infer::canonical::Certainty;
8-
use rustc_infer::traits::PredicateObligations;
8+
use rustc_infer::traits::PredicateObligation;
99
use rustc_middle::traits::query::NoSolution;
1010
use rustc_middle::ty::fold::TypeFoldable;
1111
use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
@@ -103,7 +103,7 @@ pub trait QueryTypeOp<'tcx>: fmt::Debug + Copy + TypeFoldable<TyCtxt<'tcx>> + 't
103103
(
104104
Self::QueryResponse,
105105
Option<Canonical<'tcx, ParamEnvAnd<'tcx, Self>>>,
106-
PredicateObligations<'tcx>,
106+
Vec<PredicateObligation<'tcx>>,
107107
Certainty,
108108
),
109109
NoSolution,

0 commit comments

Comments
 (0)