From 399ab40dbd9f3bca72f589feefbf5bf1bcacf778 Mon Sep 17 00:00:00 2001 From: b-naber Date: Fri, 10 Dec 2021 17:31:40 +0100 Subject: [PATCH] get rid of normalize_generic_arg... queries --- compiler/rustc_middle/src/query/mod.rs | 21 ------------------- .../src/ty/normalize_erasing_regions.rs | 9 ++++++-- .../src/normalize_erasing_regions.rs | 20 ++---------------- 3 files changed, 9 insertions(+), 41 deletions(-) diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs index 58f584d65d5..78e33544655 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -1658,27 +1658,6 @@ remap_env_constness } - // FIXME: Implement `normalize_generic_arg_after_erasing_regions` and - // `normalize_mir_const_after_erasing_regions` in terms of - // `try_normalize_generic_arg_after_erasing_regions` and - // `try_normalize_mir_const_after_erasing_regions`, respectively. - - /// Do not call this query directly: invoke `normalize_erasing_regions` instead. - query normalize_generic_arg_after_erasing_regions( - goal: ParamEnvAnd<'tcx, GenericArg<'tcx>> - ) -> GenericArg<'tcx> { - desc { "normalizing `{}`", goal.value } - remap_env_constness - } - - /// Do not call this query directly: invoke `normalize_erasing_regions` instead. - query normalize_mir_const_after_erasing_regions( - goal: ParamEnvAnd<'tcx, mir::ConstantKind<'tcx>> - ) -> mir::ConstantKind<'tcx> { - desc { "normalizing `{}`", goal.value } - remap_env_constness - } - /// Do not call this query directly: invoke `try_normalize_erasing_regions` instead. query try_normalize_generic_arg_after_erasing_regions( goal: ParamEnvAnd<'tcx, GenericArg<'tcx>> diff --git a/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs b/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs index c472d4a5a4d..312093b4f88 100644 --- a/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs +++ b/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs @@ -176,7 +176,10 @@ fn normalize_generic_arg_after_erasing_regions( let arg = self.param_env.and(arg); debug!(?arg); - self.tcx.normalize_generic_arg_after_erasing_regions(arg) + self.tcx.try_normalize_generic_arg_after_erasing_regions(arg).unwrap_or_else(|_| bug!( + "Failed to normalize {:?}, maybe try to call `try_normalize_erasing_regions` instead", + arg.value + )) } } @@ -197,7 +200,9 @@ fn fold_const(&mut self, c: &'tcx ty::Const<'tcx>) -> &'tcx ty::Const<'tcx> { fn fold_mir_const(&mut self, c: mir::ConstantKind<'tcx>) -> mir::ConstantKind<'tcx> { // FIXME: This *probably* needs canonicalization too! let arg = self.param_env.and(c); - self.tcx.normalize_mir_const_after_erasing_regions(arg) + self.tcx + .try_normalize_mir_const_after_erasing_regions(arg) + .unwrap_or_else(|_| bug!("failed to normalize {:?}", c)) } } diff --git a/compiler/rustc_traits/src/normalize_erasing_regions.rs b/compiler/rustc_traits/src/normalize_erasing_regions.rs index f7d1ebed7d7..87530cf9961 100644 --- a/compiler/rustc_traits/src/normalize_erasing_regions.rs +++ b/compiler/rustc_traits/src/normalize_erasing_regions.rs @@ -8,30 +8,14 @@ crate fn provide(p: &mut Providers) { *p = Providers { - normalize_generic_arg_after_erasing_regions: |tcx, goal| { - debug!("normalize_generic_arg_after_erasing_regions(goal={:#?})", goal); + try_normalize_generic_arg_after_erasing_regions: |tcx, goal| { + debug!("try_normalize_generic_arg_after_erasing_regions(goal={:#?}", goal); tcx.sess .perf_stats .normalize_generic_arg_after_erasing_regions .fetch_add(1, Ordering::Relaxed); - let (param_env, goal) = goal.into_parts(); - tcx.try_normalize_erasing_regions(param_env, goal).unwrap_or_else(|_| bug!( - "Failed to normalize {:?}, maybe try to call `try_normalize_erasing_regions` instead", - goal - )) - }, - normalize_mir_const_after_erasing_regions: |tcx, goal| { - let (param_env, goal) = goal.into_parts(); - tcx.try_normalize_erasing_regions(param_env, goal).unwrap_or_else(|_| bug!( - "Failed to normalize {:?}, maybe try to call `try_normalize_erasing_regions` instead", - goal - )) - }, - try_normalize_generic_arg_after_erasing_regions: |tcx, goal| { - debug!("try_normalize_generic_arg_after_erasing_regions(goal={:#?}", goal); - try_normalize_after_erasing_regions(tcx, goal) }, try_normalize_mir_const_after_erasing_regions: |tcx, goal| {