From 1999d065b7c113097701fecdf9643ba64db7ff3c Mon Sep 17 00:00:00 2001 From: Lukas Markeffsky <@> Date: Thu, 19 Sep 2024 15:56:24 +0200 Subject: [PATCH] skip normalizing param env if it is already normalized --- compiler/rustc_trait_selection/src/traits/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/rustc_trait_selection/src/traits/mod.rs b/compiler/rustc_trait_selection/src/traits/mod.rs index c82eaa5143d..538e23f4449 100644 --- a/compiler/rustc_trait_selection/src/traits/mod.rs +++ b/compiler/rustc_trait_selection/src/traits/mod.rs @@ -409,6 +409,9 @@ fn fold_const(&mut self, c: ty::Const<'tcx>) -> ty::Const<'tcx> { debug!("normalize_param_env_or_error: elaborated-predicates={:?}", predicates); let elaborated_env = ty::ParamEnv::new(tcx.mk_clauses(&predicates), unnormalized_env.reveal()); + if !normalize::needs_normalization(&elaborated_env, unnormalized_env.reveal()) { + return elaborated_env; + } // HACK: we are trying to normalize the param-env inside *itself*. The problem is that // normalization expects its param-env to be already normalized, which means we have