diff options
| author | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2022-11-18 14:10:36 +0000 |
|---|---|---|
| committer | Santiago Pastorino <spastorino@gmail.com> | 2022-11-25 00:04:52 -0300 |
| commit | 08afabddac12adc114a8f963f1a10c47f3b3b2d9 (patch) | |
| tree | 047eed200085356cfbd40c94d3c8c90337e12759 /compiler/rustc_trait_selection/src/traits/auto_trait.rs | |
| parent | 65a6e22668c32c81dbe6a996a7012270c01eb114 (diff) | |
| download | rust-08afabddac12adc114a8f963f1a10c47f3b3b2d9.tar.gz rust-08afabddac12adc114a8f963f1a10c47f3b3b2d9.zip | |
get rid of to_poly_trait_predicate
Diffstat (limited to 'compiler/rustc_trait_selection/src/traits/auto_trait.rs')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/auto_trait.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/auto_trait.rs b/compiler/rustc_trait_selection/src/traits/auto_trait.rs index 78af187cd8f..66f80e92eb7 100644 --- a/compiler/rustc_trait_selection/src/traits/auto_trait.rs +++ b/compiler/rustc_trait_selection/src/traits/auto_trait.rs @@ -10,7 +10,7 @@ use crate::traits::project::ProjectAndUnifyResult; use rustc_middle::mir::interpret::ErrorHandled; use rustc_middle::ty::fold::{TypeFolder, TypeSuperFoldable}; use rustc_middle::ty::visit::TypeVisitable; -use rustc_middle::ty::{PolyTraitRef, Region, RegionVid}; +use rustc_middle::ty::{ImplPolarity, Region, RegionVid}; use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexSet}; @@ -88,19 +88,22 @@ impl<'tcx> AutoTraitFinder<'tcx> { let trait_ref = tcx.mk_trait_ref(trait_did, [ty]); - let trait_pred = ty::Binder::dummy(trait_ref); - let infcx = tcx.infer_ctxt().build(); let mut selcx = SelectionContext::new(&infcx); - for f in [ - PolyTraitRef::to_poly_trait_predicate, - PolyTraitRef::to_poly_trait_predicate_negative_polarity, - ] { + for polarity in [true, false] { let result = selcx.select(&Obligation::new( tcx, ObligationCause::dummy(), orig_env, - f(&trait_pred), + ty::Binder::dummy(ty::TraitPredicate { + trait_ref, + constness: ty::BoundConstness::NotConst, + polarity: if polarity { + ImplPolarity::Positive + } else { + ImplPolarity::Negative + }, + }), )); if let Ok(Some(ImplSource::UserDefined(_))) = result { debug!( |
