diff options
| author | Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com> | 2023-12-17 14:07:13 +0000 |
|---|---|---|
| committer | Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com> | 2023-12-17 17:24:04 +0000 |
| commit | e0df93b07e79d22cf56536a63c57d3b11748d569 (patch) | |
| tree | e8b939a4b644e0a005dc81edd57236c36fd635c7 | |
| parent | 604f185fae9a4b0edf7e28f616a0f53880f8f074 (diff) | |
| download | rust-e0df93b07e79d22cf56536a63c57d3b11748d569.tar.gz rust-e0df93b07e79d22cf56536a63c57d3b11748d569.zip | |
don't fold ParamEnv in register_predicate_obligation
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/fulfill.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/fulfill.rs b/compiler/rustc_trait_selection/src/traits/fulfill.rs index 9cbddd2bb2b..045d7e444b6 100644 --- a/compiler/rustc_trait_selection/src/traits/fulfill.rs +++ b/compiler/rustc_trait_selection/src/traits/fulfill.rs @@ -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"); |
