From 4429f0916cef234bf83327c020becd3c66e5834b Mon Sep 17 00:00:00 2001 From: Zalathar Date: Tue, 3 Feb 2026 20:41:37 +1100 Subject: [PATCH] Rename trait `DepNodeParams` to `DepNodeKey` --- .../src/dep_graph/dep_node_key.rs | 20 +++++++++---------- compiler/rustc_middle/src/query/inner.rs | 4 ++-- compiler/rustc_query_impl/src/plumbing.rs | 2 +- .../src/dep_graph/dep_node.rs | 19 ++++++++++-------- .../rustc_query_system/src/dep_graph/mod.rs | 2 +- .../src/query/dispatcher.rs | 4 ++-- .../rustc_query_system/src/query/plumbing.rs | 2 +- compiler/rustc_span/src/def_id.rs | 2 +- 8 files changed, 29 insertions(+), 26 deletions(-) diff --git a/compiler/rustc_middle/src/dep_graph/dep_node_key.rs b/compiler/rustc_middle/src/dep_graph/dep_node_key.rs index 7574fc7e4a7b..e2fcd82c896a 100644 --- a/compiler/rustc_middle/src/dep_graph/dep_node_key.rs +++ b/compiler/rustc_middle/src/dep_graph/dep_node_key.rs @@ -2,12 +2,12 @@ use rustc_data_structures::fingerprint::Fingerprint; use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE, LocalDefId, LocalModDefId, ModDefId}; use rustc_hir::definitions::DefPathHash; use rustc_hir::{HirId, ItemLocalId, OwnerId}; -use rustc_query_system::dep_graph::{DepContext, DepNode, DepNodeParams, FingerprintStyle}; +use rustc_query_system::dep_graph::{DepContext, DepNode, DepNodeKey, FingerprintStyle}; use crate::dep_graph::DepNodeExt; use crate::ty::TyCtxt; -impl<'tcx> DepNodeParams> for () { +impl<'tcx> DepNodeKey> for () { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::Unit @@ -24,7 +24,7 @@ impl<'tcx> DepNodeParams> for () { } } -impl<'tcx> DepNodeParams> for DefId { +impl<'tcx> DepNodeKey> for DefId { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::DefPathHash @@ -46,7 +46,7 @@ impl<'tcx> DepNodeParams> for DefId { } } -impl<'tcx> DepNodeParams> for LocalDefId { +impl<'tcx> DepNodeKey> for LocalDefId { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::DefPathHash @@ -68,7 +68,7 @@ impl<'tcx> DepNodeParams> for LocalDefId { } } -impl<'tcx> DepNodeParams> for OwnerId { +impl<'tcx> DepNodeKey> for OwnerId { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::DefPathHash @@ -90,7 +90,7 @@ impl<'tcx> DepNodeParams> for OwnerId { } } -impl<'tcx> DepNodeParams> for CrateNum { +impl<'tcx> DepNodeKey> for CrateNum { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::DefPathHash @@ -113,7 +113,7 @@ impl<'tcx> DepNodeParams> for CrateNum { } } -impl<'tcx> DepNodeParams> for (DefId, DefId) { +impl<'tcx> DepNodeKey> for (DefId, DefId) { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::Opaque @@ -140,7 +140,7 @@ impl<'tcx> DepNodeParams> for (DefId, DefId) { } } -impl<'tcx> DepNodeParams> for HirId { +impl<'tcx> DepNodeKey> for HirId { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::HirId @@ -183,7 +183,7 @@ impl<'tcx> DepNodeParams> for HirId { } } -impl<'tcx> DepNodeParams> for ModDefId { +impl<'tcx> DepNodeKey> for ModDefId { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::DefPathHash @@ -205,7 +205,7 @@ impl<'tcx> DepNodeParams> for ModDefId { } } -impl<'tcx> DepNodeParams> for LocalModDefId { +impl<'tcx> DepNodeKey> for LocalModDefId { #[inline(always)] fn fingerprint_style() -> FingerprintStyle { FingerprintStyle::DefPathHash diff --git a/compiler/rustc_middle/src/query/inner.rs b/compiler/rustc_middle/src/query/inner.rs index bc0b34b67f12..32fe0737ec12 100644 --- a/compiler/rustc_middle/src/query/inner.rs +++ b/compiler/rustc_middle/src/query/inner.rs @@ -1,7 +1,7 @@ //! Helper functions that serve as the immediate implementation of //! `tcx.$query(..)` and its variations. -use rustc_query_system::dep_graph::{DepKind, DepNodeParams}; +use rustc_query_system::dep_graph::{DepKind, DepNodeKey}; use rustc_query_system::query::{QueryCache, QueryMode, try_get_cached}; use rustc_span::{DUMMY_SP, ErrorGuaranteed, Span}; @@ -86,7 +86,7 @@ pub(crate) fn query_feed<'tcx, Cache>( value: Cache::Value, ) where Cache: QueryCache, - Cache::Key: DepNodeParams>, + Cache::Key: DepNodeKey>, { let format_value = query_vtable.format_value; diff --git a/compiler/rustc_query_impl/src/plumbing.rs b/compiler/rustc_query_impl/src/plumbing.rs index d1721f1f455f..a7fde9e3ca9a 100644 --- a/compiler/rustc_query_impl/src/plumbing.rs +++ b/compiler/rustc_query_impl/src/plumbing.rs @@ -24,7 +24,7 @@ use rustc_middle::ty::codec::TyEncoder; use rustc_middle::ty::print::with_reduced_queries; use rustc_middle::ty::tls::{self, ImplicitCtxt}; use rustc_middle::ty::{self, TyCtxt}; -use rustc_query_system::dep_graph::{DepNodeParams, FingerprintStyle, HasDepContext}; +use rustc_query_system::dep_graph::{DepNodeKey, FingerprintStyle, HasDepContext}; use rustc_query_system::ich::StableHashingContext; use rustc_query_system::query::{ QueryCache, QueryContext, QueryDispatcher, QueryJobId, QueryMap, QuerySideEffect, 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 b9d35bc5a937..e18483d0b435 100644 --- a/compiler/rustc_query_system/src/dep_graph/dep_node.rs +++ b/compiler/rustc_query_system/src/dep_graph/dep_node.rs @@ -124,7 +124,7 @@ impl DepNode { pub fn construct(tcx: Tcx, kind: DepKind, arg: &Key) -> DepNode where Tcx: super::DepContext, - Key: DepNodeParams, + Key: DepNodeKey, { let hash = arg.to_fingerprint(tcx); let dep_node = DepNode { kind, hash: hash.into() }; @@ -167,13 +167,15 @@ impl fmt::Debug for DepNode { } } -pub trait DepNodeParams: fmt::Debug + Sized { +/// Trait for query keys as seen by dependency-node tracking. +pub trait DepNodeKey: fmt::Debug + Sized { fn fingerprint_style() -> FingerprintStyle; - /// This method turns the parameters of a DepNodeConstructor into an opaque - /// Fingerprint to be used in DepNode. - /// Not all DepNodeParams support being turned into a Fingerprint (they - /// don't need to if the corresponding DepNode is anonymous). + /// This method turns a query key into an opaque `Fingerprint` to be used + /// in `DepNode`. + /// + /// Not all `DepNodeKey` impls support being turned into a `Fingerprint` + /// (they don't need to if the corresponding `DepNode` is anonymous). fn to_fingerprint(&self, _: Tcx) -> Fingerprint { panic!("Not implemented. Accidentally called on anonymous node?") } @@ -189,7 +191,8 @@ pub trait DepNodeParams: fmt::Debug + Sized { fn recover(tcx: Tcx, dep_node: &DepNode) -> Option; } -impl DepNodeParams for T +// Blanket impl of `DepNodeKey`, which is specialized by other impls elsewhere. +impl DepNodeKey for T where T: for<'a> HashStable> + fmt::Debug, { @@ -239,7 +242,7 @@ pub struct DepKindVTable { /// Indicates whether and how the query key can be recovered from its hashed fingerprint. /// - /// The [`DepNodeParams`] trait determines the fingerprint style for each key type. + /// The [`DepNodeKey`] trait determines the fingerprint style for each key type. pub fingerprint_style: FingerprintStyle, /// The red/green evaluation system will try to mark a specific DepNode in the diff --git a/compiler/rustc_query_system/src/dep_graph/mod.rs b/compiler/rustc_query_system/src/dep_graph/mod.rs index c3ac1c7bc2d5..f2cb01d5e9b4 100644 --- a/compiler/rustc_query_system/src/dep_graph/mod.rs +++ b/compiler/rustc_query_system/src/dep_graph/mod.rs @@ -7,7 +7,7 @@ mod serialized; use std::panic; -pub use dep_node::{DepKind, DepKindVTable, DepNode, DepNodeParams, WorkProductId}; +pub use dep_node::{DepKind, DepKindVTable, DepNode, DepNodeKey, WorkProductId}; pub(crate) use graph::DepGraphData; pub use graph::{DepGraph, DepNodeIndex, TaskDepsRef, WorkProduct, WorkProductMap, hash_result}; pub use query::DepGraphQuery; diff --git a/compiler/rustc_query_system/src/query/dispatcher.rs b/compiler/rustc_query_system/src/query/dispatcher.rs index bcd3d0322d07..840b09024ffa 100644 --- a/compiler/rustc_query_system/src/query/dispatcher.rs +++ b/compiler/rustc_query_system/src/query/dispatcher.rs @@ -5,7 +5,7 @@ use rustc_data_structures::fingerprint::Fingerprint; use rustc_span::ErrorGuaranteed; use super::QueryStackFrameExtra; -use crate::dep_graph::{DepKind, DepNode, DepNodeParams, HasDepContext, SerializedDepNodeIndex}; +use crate::dep_graph::{DepKind, DepNode, DepNodeKey, HasDepContext, SerializedDepNodeIndex}; use crate::ich::StableHashingContext; use crate::query::caches::QueryCache; use crate::query::{CycleError, CycleErrorHandling, DepNodeIndex, QueryContext, QueryState}; @@ -33,7 +33,7 @@ pub trait QueryDispatcher<'tcx>: Copy + 'tcx { // `Key` and `Value` are `Copy` instead of `Clone` to ensure copying them stays cheap, // but it isn't necessary. - type Key: DepNodeParams> + Eq + Hash + Copy + Debug; + type Key: DepNodeKey> + Eq + Hash + Copy + Debug; type Value: Copy; type Cache: QueryCache; diff --git a/compiler/rustc_query_system/src/query/plumbing.rs b/compiler/rustc_query_system/src/query/plumbing.rs index fcd2e80a4fdc..32c4f6e1c847 100644 --- a/compiler/rustc_query_system/src/query/plumbing.rs +++ b/compiler/rustc_query_system/src/query/plumbing.rs @@ -18,7 +18,7 @@ use tracing::instrument; use super::{QueryDispatcher, QueryStackDeferred, QueryStackFrameExtra}; use crate::dep_graph::{ - DepContext, DepGraphData, DepNode, DepNodeIndex, DepNodeParams, HasDepContext, + DepContext, DepGraphData, DepNode, DepNodeIndex, DepNodeKey, HasDepContext, }; use crate::ich::StableHashingContext; use crate::query::caches::QueryCache; diff --git a/compiler/rustc_span/src/def_id.rs b/compiler/rustc_span/src/def_id.rs index a0ccf8d7e798..82d455ab54f0 100644 --- a/compiler/rustc_span/src/def_id.rs +++ b/compiler/rustc_span/src/def_id.rs @@ -540,7 +540,7 @@ macro_rules! typed_def_id { } // N.B.: when adding new typed `DefId`s update the corresponding trait impls in -// `rustc_middle::dep_graph::def_node` for `DepNodeParams`. +// `rustc_middle::dep_graph::dep_node_key` for `DepNodeKey`. typed_def_id! { ModDefId, LocalModDefId } impl LocalModDefId {