diff options
| author | Martin Zacho <hi@martinzacho.net> | 2025-01-06 09:04:22 +0100 |
|---|---|---|
| committer | Martin Zacho <hi@martinzacho.net> | 2025-01-06 09:43:05 +0100 |
| commit | 38e10e56198759b37595c48c43441a3cafa390a4 (patch) | |
| tree | 1b7562710d76deb2052c356ccf375c44f0003a7f /compiler/rustc_query_system/src/query/job.rs | |
| parent | 83853ccdc3ac840c26aed112f854a3264f9cb614 (diff) | |
| download | rust-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.rs | 18 |
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)); } |
