diff options
| author | bors <bors@rust-lang.org> | 2023-01-16 05:55:59 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-01-16 05:55:59 +0000 |
| commit | d12412c90fbd974b1cf886e42a95c850d9ee45a1 (patch) | |
| tree | 2ae804c5b1324bbd5085a23c247be985a7eff861 /compiler/rustc_trait_selection/src/traits/select/confirmation.rs | |
| parent | 41edaac716dde55b6a9d83ae4da0fba354ae5ba8 (diff) | |
| parent | 90df86f474e9214fe3337181db8e88b9b785e6fe (diff) | |
| download | rust-d12412c90fbd974b1cf886e42a95c850d9ee45a1.tar.gz rust-d12412c90fbd974b1cf886e42a95c850d9ee45a1.zip | |
Auto merge of #106395 - compiler-errors:rework-predicates, r=eholk
Rework some `predicates_of`/`{Generic,Instantiated}Predicates` code
1. Make `instantiate_own` return an iterator, since it's a bit more efficient and easier to work with
2. Remove `bound_{explicit,}_predicates_of` -- these `bound_` methods in particular were a bit awkward to work with since `ty::GenericPredicates` *already* acts kinda like an `EarlyBinder` with its own `instantiate_*` methods, and had only a few call sites anyways.
3. Implement `IntoIterator` for `InstantiatedPredicates`, since it's *very* commonly being `zip`'d together.
Diffstat (limited to 'compiler/rustc_trait_selection/src/traits/select/confirmation.rs')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/select/confirmation.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/select/confirmation.rs b/compiler/rustc_trait_selection/src/traits/select/confirmation.rs index a41d10f1043..d4ac461690c 100644 --- a/compiler/rustc_trait_selection/src/traits/select/confirmation.rs +++ b/compiler/rustc_trait_selection/src/traits/select/confirmation.rs @@ -185,9 +185,8 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> { })?); if let ty::Alias(ty::Projection, ..) = placeholder_self_ty.kind() { - let predicates = tcx.predicates_of(def_id).instantiate_own(tcx, substs).predicates; - debug!(?predicates, "projection predicates"); - for predicate in predicates { + let predicates = tcx.predicates_of(def_id).instantiate_own(tcx, substs); + for (predicate, _) in predicates { let normalized = normalize_with_depth_to( self, obligation.param_env, |
