From 91a0e09d3e328dc0eaacf3de733beb0c0347c665 Mon Sep 17 00:00:00 2001 From: Zalathar Date: Wed, 21 Jan 2026 18:09:51 +1100 Subject: [PATCH 1/2] Derive `Default` for `QueryArenas` --- compiler/rustc_middle/src/query/plumbing.rs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/compiler/rustc_middle/src/query/plumbing.rs b/compiler/rustc_middle/src/query/plumbing.rs index df333e68add1a..be7a459d4bb1b 100644 --- a/compiler/rustc_middle/src/query/plumbing.rs +++ b/compiler/rustc_middle/src/query/plumbing.rs @@ -342,6 +342,7 @@ macro_rules! define_callbacks { })* } + #[derive(Default)] pub struct QueryArenas<'tcx> { $($(#[$attr])* pub $name: query_if_arena!([$($modifiers)*] (TypedArena<<$V as $crate::query::arena_cached::ArenaCached<'tcx>>::Allocated>) @@ -349,17 +350,6 @@ macro_rules! define_callbacks { ),)* } - impl Default for QueryArenas<'_> { - fn default() -> Self { - Self { - $($name: query_if_arena!([$($modifiers)*] - (Default::default()) - () - ),)* - } - } - } - #[derive(Default)] pub struct QueryCaches<'tcx> { $($(#[$attr])* pub $name: queries::$name::Storage<'tcx>,)* From 2495e5834bd166fc5b2fab99f3bcae7ca96fbcd8 Mon Sep 17 00:00:00 2001 From: Zalathar Date: Wed, 21 Jan 2026 18:10:53 +1100 Subject: [PATCH 2/2] Add some comments to `QueryArenas` --- compiler/rustc_middle/src/query/plumbing.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/compiler/rustc_middle/src/query/plumbing.rs b/compiler/rustc_middle/src/query/plumbing.rs index be7a459d4bb1b..16121c38d1a9b 100644 --- a/compiler/rustc_middle/src/query/plumbing.rs +++ b/compiler/rustc_middle/src/query/plumbing.rs @@ -342,12 +342,18 @@ macro_rules! define_callbacks { })* } + /// Holds per-query arenas for queries with the `arena_cache` modifier. #[derive(Default)] pub struct QueryArenas<'tcx> { - $($(#[$attr])* pub $name: query_if_arena!([$($modifiers)*] - (TypedArena<<$V as $crate::query::arena_cached::ArenaCached<'tcx>>::Allocated>) - () - ),)* + $( + $(#[$attr])* + pub $name: query_if_arena!([$($modifiers)*] + // Use the `ArenaCached` helper trait to determine the arena's value type. + (TypedArena<<$V as $crate::query::arena_cached::ArenaCached<'tcx>>::Allocated>) + // No arena for this query, so the field type is `()`. + () + ), + )* } #[derive(Default)]