From db48b934544705498dcd3e00527138b48feff3d6 Mon Sep 17 00:00:00 2001 From: Lukas Markeffsky <@> Date: Thu, 7 Mar 2024 13:20:56 +0100 Subject: [PATCH] improve debug logging --- .../src/infer/relate/higher_ranked.rs | 2 +- .../traits/error_reporting/type_err_ctxt_ext.rs | 17 +++-------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/compiler/rustc_infer/src/infer/relate/higher_ranked.rs b/compiler/rustc_infer/src/infer/relate/higher_ranked.rs index f30e366c198..cc0f00254ff 100644 --- a/compiler/rustc_infer/src/infer/relate/higher_ranked.rs +++ b/compiler/rustc_infer/src/infer/relate/higher_ranked.rs @@ -77,7 +77,7 @@ pub fn enter_forall(&self, forall: ty::Binder<'tcx, T>, f: impl FnOnce(T) // that name placeholders created in this function. Nested goals from type relations can // also contain placeholders created by this function. let value = self.enter_forall_and_leak_universe(forall); - debug!("?value"); + debug!(?value); f(value) } diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/type_err_ctxt_ext.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/type_err_ctxt_ext.rs index c2059230bfc..5346d2dbd62 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/type_err_ctxt_ext.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/type_err_ctxt_ext.rs @@ -1419,6 +1419,7 @@ fn can_match_projection( // returns if `cond` not occurring implies that `error` does not occur - i.e., that // `error` occurring implies that `cond` occurs. + #[instrument(level = "debug", skip(self), ret)] fn error_implies(&self, cond: ty::Predicate<'tcx>, error: ty::Predicate<'tcx>) -> bool { if cond == error { return true; @@ -1428,25 +1429,13 @@ fn error_implies(&self, cond: ty::Predicate<'tcx>, error: ty::Predicate<'tcx>) - self.enter_forall(error, |error| { elaborate(self.tcx, std::iter::once(cond)) .filter_map(|implied| implied.to_opt_poly_trait_pred()) - .any(|implied| { - let is_implied = self.can_match_trait(error, implied); - if is_implied { - debug!("error_implies: {:?} -> {:?} -> {:?}", cond, error, implied); - } - is_implied - }) + .any(|implied| self.can_match_trait(error, implied)) }) } else if let Some(error) = error.to_opt_poly_projection_pred() { self.enter_forall(error, |error| { elaborate(self.tcx, std::iter::once(cond)) .filter_map(|implied| implied.to_opt_poly_projection_pred()) - .any(|implied| { - let is_implied = self.can_match_projection(error, implied); - if is_implied { - debug!("error_implies: {:?} -> {:?} -> {:?}", cond, error, implied); - } - is_implied - }) + .any(|implied| self.can_match_projection(error, implied)) }) } else { false