about summary refs log tree commit diff
path: root/compiler/rustc_query_system/src/query/job.rs
diff options
context:
space:
mode:
authorMartin Zacho <hi@martinzacho.net>2025-01-06 09:04:22 +0100
committerMartin Zacho <hi@martinzacho.net>2025-01-06 09:43:05 +0100
commit38e10e56198759b37595c48c43441a3cafa390a4 (patch)
tree1b7562710d76deb2052c356ccf375c44f0003a7f /compiler/rustc_query_system/src/query/job.rs
parent83853ccdc3ac840c26aed112f854a3264f9cb614 (diff)
downloadrust-38e10e56198759b37595c48c43441a3cafa390a4.tar.gz
rust-38e10e56198759b37595c48c43441a3cafa390a4.zip
improve diagnostics for const eval query overflow
Diffstat (limited to 'compiler/rustc_query_system/src/query/job.rs')
-rw-r--r--compiler/rustc_query_system/src/query/job.rs18
1 files changed, 8 insertions, 10 deletions
diff --git a/compiler/rustc_query_system/src/query/job.rs b/compiler/rustc_query_system/src/query/job.rs
index 2a7d759ab35..95fa63c11f6 100644
--- a/compiler/rustc_query_system/src/query/job.rs
+++ b/compiler/rustc_query_system/src/query/job.rs
@@ -15,7 +15,7 @@ use rustc_span::{DUMMY_SP, Span};
 use crate::dep_graph::DepContext;
 use crate::error::CycleStack;
 use crate::query::plumbing::CycleError;
-use crate::query::{DepKind, QueryContext, QueryStackFrame};
+use crate::query::{QueryContext, QueryStackFrame};
 
 /// Represents a span and a query key.
 #[derive(Clone, Debug)]
@@ -136,18 +136,16 @@ impl QueryJobId {
 
     #[cold]
     #[inline(never)]
-    pub fn try_find_layout_root(
-        &self,
-        query_map: QueryMap,
-        layout_of_kind: DepKind,
-    ) -> Option<(QueryJobInfo, usize)> {
-        let mut last_layout = None;
-        let mut current_id = Some(*self);
-        let mut depth = 0;
+    pub fn try_find_dep_kind_root(&self, query_map: QueryMap) -> Option<(QueryJobInfo, usize)> {
+        let mut depth = 1;
+        let info = query_map.get(&self).unwrap();
+        let dep_kind = info.query.dep_kind;
+        let mut current_id = info.job.parent;
+        let mut last_layout = Some((info.clone(), depth));
 
         while let Some(id) = current_id {
             let info = query_map.get(&id).unwrap();
-            if info.query.dep_kind == layout_of_kind {
+            if info.query.dep_kind == dep_kind {
                 depth += 1;
                 last_layout = Some((info.clone(), depth));
             }