From bd51f174ed6b6e1e668207cb5999e46189dcfaa3 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 27 Mar 2022 03:01:34 +0200 Subject: [PATCH] Remove SelectionContext::allow_negative_impls field --- .../src/traits/auto_trait.rs | 4 ++-- .../src/traits/select/mod.rs | 24 ------------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/compiler/rustc_trait_selection/src/traits/auto_trait.rs b/compiler/rustc_trait_selection/src/traits/auto_trait.rs index 6f6f21aa788..ee9983ee8b8 100644 --- a/compiler/rustc_trait_selection/src/traits/auto_trait.rs +++ b/compiler/rustc_trait_selection/src/traits/auto_trait.rs @@ -87,7 +87,7 @@ pub fn find_auto_trait_generics( let trait_pred = ty::Binder::dummy(trait_ref); let bail_out = tcx.infer_ctxt().enter(|infcx| { - let mut selcx = SelectionContext::with_negative(&infcx, true); + let mut selcx = SelectionContext::new(&infcx); let result = selcx.select(&Obligation::new( ObligationCause::dummy(), orig_env, @@ -295,7 +295,7 @@ fn evaluate_predicates( fresh_preds.insert(self.clean_pred(infcx, predicate)); } - let mut select = SelectionContext::with_negative(&infcx, true); + let mut select = SelectionContext::new(&infcx); let mut already_visited = FxHashSet::default(); let mut predicates = VecDeque::new(); diff --git a/compiler/rustc_trait_selection/src/traits/select/mod.rs b/compiler/rustc_trait_selection/src/traits/select/mod.rs index 4704d841012..72d156067a1 100644 --- a/compiler/rustc_trait_selection/src/traits/select/mod.rs +++ b/compiler/rustc_trait_selection/src/traits/select/mod.rs @@ -119,11 +119,6 @@ pub struct SelectionContext<'cx, 'tcx> { intercrate_ambiguity_causes: Option>, - /// Controls whether or not to filter out negative impls when selecting. - /// This is used in librustdoc to distinguish between the lack of an impl - /// and a negative impl - allow_negative_impls: bool, - /// The mode that trait queries run in, which informs our error handling /// policy. In essence, canonicalized queries need their errors propagated /// rather than immediately reported because we do not have accurate spans. @@ -215,7 +210,6 @@ pub fn new(infcx: &'cx InferCtxt<'cx, 'tcx>) -> SelectionContext<'cx, 'tcx> { freshener: infcx.freshener_keep_static(), intercrate: false, intercrate_ambiguity_causes: None, - allow_negative_impls: false, query_mode: TraitQueryMode::Standard, } } @@ -226,22 +220,6 @@ pub fn intercrate(infcx: &'cx InferCtxt<'cx, 'tcx>) -> SelectionContext<'cx, 'tc freshener: infcx.freshener_keep_static(), intercrate: true, intercrate_ambiguity_causes: None, - allow_negative_impls: false, - query_mode: TraitQueryMode::Standard, - } - } - - pub fn with_negative( - infcx: &'cx InferCtxt<'cx, 'tcx>, - allow_negative_impls: bool, - ) -> SelectionContext<'cx, 'tcx> { - debug!(?allow_negative_impls, "with_negative"); - SelectionContext { - infcx, - freshener: infcx.freshener_keep_static(), - intercrate: false, - intercrate_ambiguity_causes: None, - allow_negative_impls, query_mode: TraitQueryMode::Standard, } } @@ -256,7 +234,6 @@ pub fn with_query_mode( freshener: infcx.freshener_keep_static(), intercrate: false, intercrate_ambiguity_causes: None, - allow_negative_impls: false, query_mode, } } @@ -1192,7 +1169,6 @@ fn filter_impls( if let ImplCandidate(def_id) = candidate { if ty::ImplPolarity::Reservation == tcx.impl_polarity(def_id) || obligation.polarity() == tcx.impl_polarity(def_id) - || self.allow_negative_impls { result.push(candidate); } -- 2.44.0