Skip to content

Commit 3ca3bb3

Browse files
committed
TraitObligation -> PolyTraitObligation
1 parent 52c795a commit 3ca3bb3

File tree

4 files changed

+44
-44
lines changed

4 files changed

+44
-44
lines changed

src/librustc_infer/traits/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,15 @@ pub struct Obligation<'tcx, T> {
5353
}
5454

5555
pub type PredicateObligation<'tcx> = Obligation<'tcx, ty::Predicate<'tcx>>;
56-
pub type TraitObligation<'tcx> = Obligation<'tcx, ty::PolyTraitPredicate<'tcx>>;
56+
pub type TraitObligation<'tcx> = Obligation<'tcx, ty::TraitPredicate<'tcx>>;
57+
pub type PolyTraitObligation<'tcx> = Obligation<'tcx, ty::PolyTraitPredicate<'tcx>>;
5758

5859
// `PredicateObligation` is used a lot. Make sure it doesn't unintentionally get bigger.
5960
#[cfg(target_arch = "x86_64")]
6061
static_assert_size!(PredicateObligation<'_>, 48);
6162

6263
pub type Obligations<'tcx, O> = Vec<Obligation<'tcx, O>>;
6364
pub type PredicateObligations<'tcx> = Vec<PredicateObligation<'tcx>>;
64-
pub type TraitObligations<'tcx> = Vec<TraitObligation<'tcx>>;
6565

6666
pub type Selection<'tcx> = ImplSource<'tcx, PredicateObligation<'tcx>>;
6767

@@ -129,7 +129,7 @@ impl<'tcx> FulfillmentError<'tcx> {
129129
}
130130
}
131131

132-
impl<'tcx> TraitObligation<'tcx> {
132+
impl<'tcx> PolyTraitObligation<'tcx> {
133133
pub fn self_ty(&self) -> ty::Binder<Ty<'tcx>> {
134134
self.predicate.map_bound(|p| p.self_ty())
135135
}

src/librustc_trait_selection/traits/select/candidate_assembly.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//!
77
//! [rustc dev guide]:https://rustc-dev-guide.rust-lang.org/traits/resolution.html#candidate-assembly
88
use rustc_hir as hir;
9-
use rustc_infer::traits::{Obligation, SelectionError, TraitObligation};
9+
use rustc_infer::traits::{Obligation, PolyTraitObligation, SelectionError};
1010
use rustc_middle::ty::{self, TypeFoldable};
1111
use rustc_target::spec::abi::Abi;
1212

@@ -145,7 +145,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
145145

146146
fn assemble_candidates_from_projected_tys(
147147
&mut self,
148-
obligation: &TraitObligation<'tcx>,
148+
obligation: &PolyTraitObligation<'tcx>,
149149
candidates: &mut SelectionCandidateSet<'tcx>,
150150
) {
151151
debug!("assemble_candidates_for_projected_tys({:?})", obligation);
@@ -210,7 +210,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
210210

211211
fn assemble_generator_candidates(
212212
&mut self,
213-
obligation: &TraitObligation<'tcx>,
213+
obligation: &PolyTraitObligation<'tcx>,
214214
candidates: &mut SelectionCandidateSet<'tcx>,
215215
) -> Result<(), SelectionError<'tcx>> {
216216
if self.tcx().lang_items().gen_trait() != Some(obligation.predicate.def_id()) {
@@ -248,7 +248,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
248248
/// unified during the confirmation step.
249249
fn assemble_closure_candidates(
250250
&mut self,
251-
obligation: &TraitObligation<'tcx>,
251+
obligation: &PolyTraitObligation<'tcx>,
252252
candidates: &mut SelectionCandidateSet<'tcx>,
253253
) -> Result<(), SelectionError<'tcx>> {
254254
let kind = match self.tcx().fn_trait_kind_from_lang_item(obligation.predicate.def_id()) {
@@ -290,7 +290,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
290290
/// Implements one of the `Fn()` family for a fn pointer.
291291
fn assemble_fn_pointer_candidates(
292292
&mut self,
293-
obligation: &TraitObligation<'tcx>,
293+
obligation: &PolyTraitObligation<'tcx>,
294294
candidates: &mut SelectionCandidateSet<'tcx>,
295295
) -> Result<(), SelectionError<'tcx>> {
296296
// We provide impl of all fn traits for fn pointers.
@@ -326,7 +326,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
326326
/// Searches for impls that might apply to `obligation`.
327327
fn assemble_candidates_from_impls(
328328
&mut self,
329-
obligation: &TraitObligation<'tcx>,
329+
obligation: &PolyTraitObligation<'tcx>,
330330
candidates: &mut SelectionCandidateSet<'tcx>,
331331
) -> Result<(), SelectionError<'tcx>> {
332332
debug!("assemble_candidates_from_impls(obligation={:?})", obligation);
@@ -358,7 +358,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
358358

359359
fn assemble_candidates_from_auto_impls(
360360
&mut self,
361-
obligation: &TraitObligation<'tcx>,
361+
obligation: &PolyTraitObligation<'tcx>,
362362
candidates: &mut SelectionCandidateSet<'tcx>,
363363
) -> Result<(), SelectionError<'tcx>> {
364364
// Okay to skip binder here because the tests we do below do not involve bound regions.
@@ -426,7 +426,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
426426
/// Searches for impls that might apply to `obligation`.
427427
fn assemble_candidates_from_object_ty(
428428
&mut self,
429-
obligation: &TraitObligation<'tcx>,
429+
obligation: &PolyTraitObligation<'tcx>,
430430
candidates: &mut SelectionCandidateSet<'tcx>,
431431
) {
432432
debug!(
@@ -497,7 +497,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
497497
/// Searches for unsizing that might apply to `obligation`.
498498
fn assemble_candidates_for_unsizing(
499499
&mut self,
500-
obligation: &TraitObligation<'tcx>,
500+
obligation: &PolyTraitObligation<'tcx>,
501501
candidates: &mut SelectionCandidateSet<'tcx>,
502502
) {
503503
// We currently never consider higher-ranked obligations e.g.
@@ -579,7 +579,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
579579

580580
fn assemble_candidates_for_trait_alias(
581581
&mut self,
582-
obligation: &TraitObligation<'tcx>,
582+
obligation: &PolyTraitObligation<'tcx>,
583583
candidates: &mut SelectionCandidateSet<'tcx>,
584584
) -> Result<(), SelectionError<'tcx>> {
585585
// Okay to skip binder here because the tests we do below do not involve bound regions.

src/librustc_trait_selection/traits/select/confirmation.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use crate::traits::{
3434
ImplSourceDiscriminantKindData, ImplSourceFnPointerData, ImplSourceGeneratorData,
3535
ImplSourceObjectData, ImplSourceTraitAliasData, ImplSourceUserDefinedData,
3636
};
37-
use crate::traits::{ObjectCastObligation, PredicateObligation, TraitObligation};
37+
use crate::traits::{ObjectCastObligation, PolyTraitObligation, PredicateObligation};
3838
use crate::traits::{Obligation, ObligationCause};
3939
use crate::traits::{SelectionError, Unimplemented};
4040

@@ -47,7 +47,7 @@ use std::iter;
4747
impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
4848
pub(super) fn confirm_candidate(
4949
&mut self,
50-
obligation: &TraitObligation<'tcx>,
50+
obligation: &PolyTraitObligation<'tcx>,
5151
candidate: SelectionCandidate<'tcx>,
5252
) -> Result<Selection<'tcx>, SelectionError<'tcx>> {
5353
debug!("confirm_candidate({:?}, {:?})", obligation, candidate);
@@ -120,7 +120,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
120120
}
121121
}
122122

123-
fn confirm_projection_candidate(&mut self, obligation: &TraitObligation<'tcx>) {
123+
fn confirm_projection_candidate(&mut self, obligation: &PolyTraitObligation<'tcx>) {
124124
self.infcx.commit_unconditionally(|_| {
125125
let result = self.match_projection_obligation_against_definition_bounds(obligation);
126126
assert!(result);
@@ -129,7 +129,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
129129

130130
fn confirm_param_candidate(
131131
&mut self,
132-
obligation: &TraitObligation<'tcx>,
132+
obligation: &PolyTraitObligation<'tcx>,
133133
param: ty::PolyTraitRef<'tcx>,
134134
) -> Vec<PredicateObligation<'tcx>> {
135135
debug!("confirm_param_candidate({:?},{:?})", obligation, param);
@@ -152,7 +152,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
152152

153153
fn confirm_builtin_candidate(
154154
&mut self,
155-
obligation: &TraitObligation<'tcx>,
155+
obligation: &PolyTraitObligation<'tcx>,
156156
has_nested: bool,
157157
) -> ImplSourceBuiltinData<PredicateObligation<'tcx>> {
158158
debug!("confirm_builtin_candidate({:?}, {:?})", obligation, has_nested);
@@ -200,7 +200,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
200200
/// 2. For each where-clause `C` declared on `Foo`, `[Self => X] C` holds.
201201
fn confirm_auto_impl_candidate(
202202
&mut self,
203-
obligation: &TraitObligation<'tcx>,
203+
obligation: &PolyTraitObligation<'tcx>,
204204
trait_def_id: DefId,
205205
) -> ImplSourceAutoImplData<PredicateObligation<'tcx>> {
206206
debug!("confirm_auto_impl_candidate({:?}, {:?})", obligation, trait_def_id);
@@ -215,7 +215,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
215215
/// See `confirm_auto_impl_candidate`.
216216
fn vtable_auto_impl(
217217
&mut self,
218-
obligation: &TraitObligation<'tcx>,
218+
obligation: &PolyTraitObligation<'tcx>,
219219
trait_def_id: DefId,
220220
nested: ty::Binder<Vec<Ty<'tcx>>>,
221221
) -> ImplSourceAutoImplData<PredicateObligation<'tcx>> {
@@ -257,7 +257,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
257257

258258
fn confirm_impl_candidate(
259259
&mut self,
260-
obligation: &TraitObligation<'tcx>,
260+
obligation: &PolyTraitObligation<'tcx>,
261261
impl_def_id: DefId,
262262
) -> ImplSourceUserDefinedData<'tcx, PredicateObligation<'tcx>> {
263263
debug!("confirm_impl_candidate({:?},{:?})", obligation, impl_def_id);
@@ -318,7 +318,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
318318

319319
fn confirm_object_candidate(
320320
&mut self,
321-
obligation: &TraitObligation<'tcx>,
321+
obligation: &PolyTraitObligation<'tcx>,
322322
) -> ImplSourceObjectData<'tcx, PredicateObligation<'tcx>> {
323323
debug!("confirm_object_candidate({:?})", obligation);
324324

@@ -373,7 +373,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
373373

374374
fn confirm_fn_pointer_candidate(
375375
&mut self,
376-
obligation: &TraitObligation<'tcx>,
376+
obligation: &PolyTraitObligation<'tcx>,
377377
) -> Result<ImplSourceFnPointerData<'tcx, PredicateObligation<'tcx>>, SelectionError<'tcx>>
378378
{
379379
debug!("confirm_fn_pointer_candidate({:?})", obligation);
@@ -411,7 +411,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
411411

412412
fn confirm_trait_alias_candidate(
413413
&mut self,
414-
obligation: &TraitObligation<'tcx>,
414+
obligation: &PolyTraitObligation<'tcx>,
415415
alias_def_id: DefId,
416416
) -> ImplSourceTraitAliasData<'tcx, PredicateObligation<'tcx>> {
417417
debug!("confirm_trait_alias_candidate({:?}, {:?})", obligation, alias_def_id);
@@ -442,7 +442,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
442442

443443
fn confirm_generator_candidate(
444444
&mut self,
445-
obligation: &TraitObligation<'tcx>,
445+
obligation: &PolyTraitObligation<'tcx>,
446446
) -> Result<ImplSourceGeneratorData<'tcx, PredicateObligation<'tcx>>, SelectionError<'tcx>>
447447
{
448448
// Okay to skip binder because the substs on generator types never
@@ -485,7 +485,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
485485

486486
fn confirm_closure_candidate(
487487
&mut self,
488-
obligation: &TraitObligation<'tcx>,
488+
obligation: &PolyTraitObligation<'tcx>,
489489
) -> Result<ImplSourceClosureData<'tcx, PredicateObligation<'tcx>>, SelectionError<'tcx>> {
490490
debug!("confirm_closure_candidate({:?})", obligation);
491491

@@ -581,7 +581,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
581581

582582
fn confirm_builtin_unsize_candidate(
583583
&mut self,
584-
obligation: &TraitObligation<'tcx>,
584+
obligation: &PolyTraitObligation<'tcx>,
585585
) -> Result<ImplSourceBuiltinData<PredicateObligation<'tcx>>, SelectionError<'tcx>> {
586586
let tcx = self.tcx();
587587

src/librustc_trait_selection/traits/select/mod.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use super::Selection;
1818
use super::SelectionResult;
1919
use super::TraitQueryMode;
2020
use super::{Normalized, ProjectionCacheKey};
21-
use super::{ObligationCause, PredicateObligation, TraitObligation};
21+
use super::{ObligationCause, PolyTraitObligation, PredicateObligation};
2222
use super::{Overflow, SelectionError, Unimplemented};
2323

2424
use crate::infer::{InferCtxt, InferOk, TypeFreshener};
@@ -90,7 +90,7 @@ pub struct SelectionContext<'cx, 'tcx> {
9090

9191
// A stack that walks back up the stack frame.
9292
struct TraitObligationStack<'prev, 'tcx> {
93-
obligation: &'prev TraitObligation<'tcx>,
93+
obligation: &'prev PolyTraitObligation<'tcx>,
9494

9595
/// The trait ref from `obligation` but "freshened" with the
9696
/// selection-context's freshener. Used to check for recursion.
@@ -269,7 +269,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
269269
/// type environment by performing unification.
270270
pub fn select(
271271
&mut self,
272-
obligation: &TraitObligation<'tcx>,
272+
obligation: &PolyTraitObligation<'tcx>,
273273
) -> SelectionResult<'tcx, Selection<'tcx>> {
274274
debug!("select({:?})", obligation);
275275
debug_assert!(!obligation.predicate.has_escaping_bound_vars());
@@ -546,7 +546,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
546546
fn evaluate_trait_predicate_recursively<'o>(
547547
&mut self,
548548
previous_stack: TraitObligationStackList<'o, 'tcx>,
549-
mut obligation: TraitObligation<'tcx>,
549+
mut obligation: PolyTraitObligation<'tcx>,
550550
) -> Result<EvaluationResult, OverflowError> {
551551
debug!("evaluate_trait_predicate_recursively({:?})", obligation);
552552

@@ -1267,7 +1267,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
12671267

12681268
fn match_projection_obligation_against_definition_bounds(
12691269
&mut self,
1270-
obligation: &TraitObligation<'tcx>,
1270+
obligation: &PolyTraitObligation<'tcx>,
12711271
) -> bool {
12721272
let poly_trait_predicate = self.infcx().resolve_vars_if_possible(&obligation.predicate);
12731273
let (placeholder_trait_predicate, _) =
@@ -1326,7 +1326,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
13261326

13271327
fn match_projection(
13281328
&mut self,
1329-
obligation: &TraitObligation<'tcx>,
1329+
obligation: &PolyTraitObligation<'tcx>,
13301330
trait_bound: ty::PolyTraitRef<'tcx>,
13311331
placeholder_trait_ref: ty::TraitRef<'tcx>,
13321332
) -> bool {
@@ -1531,7 +1531,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
15311531

15321532
fn sized_conditions(
15331533
&mut self,
1534-
obligation: &TraitObligation<'tcx>,
1534+
obligation: &PolyTraitObligation<'tcx>,
15351535
) -> BuiltinImplConditions<'tcx> {
15361536
use self::BuiltinImplConditions::{Ambiguous, None, Where};
15371537

@@ -1586,7 +1586,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
15861586

15871587
fn copy_clone_conditions(
15881588
&mut self,
1589-
obligation: &TraitObligation<'tcx>,
1589+
obligation: &PolyTraitObligation<'tcx>,
15901590
) -> BuiltinImplConditions<'tcx> {
15911591
// NOTE: binder moved to (*)
15921592
let self_ty = self.infcx.shallow_resolve(obligation.predicate.skip_binder().self_ty());
@@ -1798,7 +1798,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
17981798
fn rematch_impl(
17991799
&mut self,
18001800
impl_def_id: DefId,
1801-
obligation: &TraitObligation<'tcx>,
1801+
obligation: &PolyTraitObligation<'tcx>,
18021802
) -> Normalized<'tcx, SubstsRef<'tcx>> {
18031803
match self.match_impl(impl_def_id, obligation) {
18041804
Ok(substs) => substs,
@@ -1815,7 +1815,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
18151815
fn match_impl(
18161816
&mut self,
18171817
impl_def_id: DefId,
1818-
obligation: &TraitObligation<'tcx>,
1818+
obligation: &PolyTraitObligation<'tcx>,
18191819
) -> Result<Normalized<'tcx, SubstsRef<'tcx>>, ()> {
18201820
let impl_trait_ref = self.tcx().impl_trait_ref(impl_def_id).unwrap();
18211821

@@ -1871,7 +1871,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
18711871

18721872
fn fast_reject_trait_refs(
18731873
&mut self,
1874-
obligation: &TraitObligation<'_>,
1874+
obligation: &PolyTraitObligation<'_>,
18751875
impl_trait_ref: &ty::TraitRef<'_>,
18761876
) -> bool {
18771877
// We can avoid creating type variables and doing the full
@@ -1914,7 +1914,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
19141914
/// unnormalized.
19151915
fn match_where_clause_trait_ref(
19161916
&mut self,
1917-
obligation: &TraitObligation<'tcx>,
1917+
obligation: &PolyTraitObligation<'tcx>,
19181918
where_clause_trait_ref: ty::PolyTraitRef<'tcx>,
19191919
) -> Result<Vec<PredicateObligation<'tcx>>, ()> {
19201920
self.match_poly_trait_ref(obligation, where_clause_trait_ref)
@@ -1924,7 +1924,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
19241924
/// obligation is satisfied.
19251925
fn match_poly_trait_ref(
19261926
&mut self,
1927-
obligation: &TraitObligation<'tcx>,
1927+
obligation: &PolyTraitObligation<'tcx>,
19281928
poly_trait_ref: ty::PolyTraitRef<'tcx>,
19291929
) -> Result<Vec<PredicateObligation<'tcx>>, ()> {
19301930
debug!(
@@ -1955,7 +1955,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
19551955
fn push_stack<'o>(
19561956
&mut self,
19571957
previous_stack: TraitObligationStackList<'o, 'tcx>,
1958-
obligation: &'o TraitObligation<'tcx>,
1958+
obligation: &'o PolyTraitObligation<'tcx>,
19591959
) -> TraitObligationStack<'o, 'tcx> {
19601960
let fresh_trait_ref =
19611961
obligation.predicate.to_poly_trait_ref().fold_with(&mut self.freshener);
@@ -1974,7 +1974,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
19741974

19751975
fn closure_trait_ref_unnormalized(
19761976
&mut self,
1977-
obligation: &TraitObligation<'tcx>,
1977+
obligation: &PolyTraitObligation<'tcx>,
19781978
substs: SubstsRef<'tcx>,
19791979
) -> ty::PolyTraitRef<'tcx> {
19801980
debug!("closure_trait_ref_unnormalized(obligation={:?}, substs={:?})", obligation, substs);
@@ -1999,7 +1999,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
19991999

20002000
fn generator_trait_ref_unnormalized(
20012001
&mut self,
2002-
obligation: &TraitObligation<'tcx>,
2002+
obligation: &PolyTraitObligation<'tcx>,
20032003
substs: SubstsRef<'tcx>,
20042004
) -> ty::PolyTraitRef<'tcx> {
20052005
let gen_sig = substs.as_generator().poly_sig();
@@ -2101,7 +2101,7 @@ trait TraitObligationExt<'tcx> {
21012101
) -> ObligationCause<'tcx>;
21022102
}
21032103

2104-
impl<'tcx> TraitObligationExt<'tcx> for TraitObligation<'tcx> {
2104+
impl<'tcx> TraitObligationExt<'tcx> for PolyTraitObligation<'tcx> {
21052105
#[allow(unused_comparisons)]
21062106
fn derived_cause(
21072107
&self,

0 commit comments

Comments
 (0)