Skip to content

Commit

Permalink
Auto merge of #119048 - aliemjay:perf-register-pred, r=compiler-errors
Browse files Browse the repository at this point in the history
don't fold ParamEnv in register_predicate_obligation

\>5% perf gain for diesel!
  • Loading branch information
bors committed Dec 17, 2023
2 parents d14e52b + e0df93b commit 4283aea
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions compiler/rustc_trait_selection/src/traits/fulfill.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,13 @@ impl<'tcx> TraitEngine<'tcx> for FulfillmentContext<'tcx> {
fn register_predicate_obligation(
&mut self,
infcx: &InferCtxt<'tcx>,
obligation: PredicateObligation<'tcx>,
mut obligation: PredicateObligation<'tcx>,
) {
assert_eq!(self.usable_in_snapshot, infcx.num_open_snapshots());
// this helps to reduce duplicate errors, as well as making
// debug output much nicer to read and so on.
let obligation = infcx.resolve_vars_if_possible(obligation);
debug_assert!(!obligation.param_env.has_non_region_infer());
obligation.predicate = infcx.resolve_vars_if_possible(obligation.predicate);

debug!(?obligation, "register_predicate_obligation");

Expand Down

0 comments on commit 4283aea

Please sign in to comment.