diff options
| author | Michael Goulet <michael@errs.io> | 2025-05-31 11:48:29 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2025-06-03 20:56:52 +0000 |
| commit | cbb3a847d25f998486248a8db201773eeb489d60 (patch) | |
| tree | d5d884a4240e8107beb909fcde570a43aed16b90 /compiler/rustc_query_system/src | |
| parent | f7db329e81c4501d8f70f11e8bfcc16dd2214219 (diff) | |
| download | rust-cbb3a847d25f998486248a8db201773eeb489d60.tar.gz rust-cbb3a847d25f998486248a8db201773eeb489d60.zip | |
Ensure query keys are printed with reduced queries
Diffstat (limited to 'compiler/rustc_query_system/src')
| -rw-r--r-- | compiler/rustc_query_system/src/dep_graph/dep_node.rs | 11 | ||||
| -rw-r--r-- | compiler/rustc_query_system/src/dep_graph/mod.rs | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/compiler/rustc_query_system/src/dep_graph/dep_node.rs b/compiler/rustc_query_system/src/dep_graph/dep_node.rs index c0b3bd43e25..bdd1d5f3e88 100644 --- a/compiler/rustc_query_system/src/dep_graph/dep_node.rs +++ b/compiler/rustc_query_system/src/dep_graph/dep_node.rs @@ -178,9 +178,7 @@ pub trait DepNodeParams<Tcx: DepContext>: fmt::Debug + Sized { panic!("Not implemented. Accidentally called on anonymous node?") } - fn to_debug_str(&self, _: Tcx) -> String { - format!("{self:?}") - } + fn to_debug_str(&self, tcx: Tcx) -> String; /// This method tries to recover the query key from the given `DepNode`, /// something which is needed when forcing `DepNode`s during red-green @@ -210,8 +208,11 @@ where } #[inline(always)] - default fn to_debug_str(&self, _: Tcx) -> String { - format!("{:?}", *self) + default fn to_debug_str(&self, tcx: Tcx) -> String { + // Make sure to print dep node params with reduced queries since printing + // may themselves call queries, which may lead to (possibly untracked!) + // query cycles. + tcx.with_reduced_queries(|| format!("{self:?}")) } #[inline(always)] diff --git a/compiler/rustc_query_system/src/dep_graph/mod.rs b/compiler/rustc_query_system/src/dep_graph/mod.rs index 89d1db87809..512034a8b2f 100644 --- a/compiler/rustc_query_system/src/dep_graph/mod.rs +++ b/compiler/rustc_query_system/src/dep_graph/mod.rs @@ -88,6 +88,8 @@ pub trait DepContext: Copy { f(self, dep_node) } } + + fn with_reduced_queries<T>(self, _: impl FnOnce() -> T) -> T; } pub trait Deps: DynSync { |
