Skip to content

Commit 81c6166

Browse files
committed
Introduce query_storage.
1 parent 0b0f90f commit 81c6166

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

compiler/rustc_middle/src/ty/query/mod.rs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,18 @@ macro_rules! query_helper_param_ty {
133133
($K:ty) => { $K };
134134
}
135135

136+
macro_rules! query_storage {
137+
([][$K:ty, $V:ty]) => {
138+
<DefaultCacheSelector as CacheSelector<$K, $V>>::Cache
139+
};
140+
([storage($ty:ty) $($rest:tt)*][$K:ty, $V:ty]) => {
141+
<$ty as CacheSelector<$K, $V>>::Cache
142+
};
143+
([$other:ident $(($($other_args:tt)*))* $(, $($modifiers:tt)*)*][$($args:tt)*]) => {
144+
query_storage!([$($($modifiers)*)*][$($args)*])
145+
};
146+
}
147+
136148
macro_rules! define_callbacks {
137149
(<$tcx:tt>
138150
$($(#[$attr:meta])*
@@ -157,13 +169,16 @@ macro_rules! define_callbacks {
157169
$(pub type $name<$tcx> = $V;)*
158170
}
159171
#[allow(nonstandard_style, unused_lifetimes)]
172+
pub mod query_storage {
173+
use super::*;
174+
175+
$(pub type $name<$tcx> = query_storage!([$($modifiers)*][$($K)*, $V]);)*
176+
}
177+
#[allow(nonstandard_style, unused_lifetimes)]
160178
pub mod query_stored {
161179
use super::*;
162180

163-
$(pub type $name<$tcx> = <
164-
query_storage!([$($modifiers)*][$($K)*, $V])
165-
as QueryStorage
166-
>::Stored;)*
181+
$(pub type $name<$tcx> = <query_storage::$name<$tcx> as QueryStorage>::Stored;)*
167182
}
168183

169184
impl TyCtxtEnsure<$tcx> {

compiler/rustc_middle/src/ty/query/plumbing.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -407,18 +407,6 @@ macro_rules! is_eval_always {
407407
};
408408
}
409409

410-
macro_rules! query_storage {
411-
([][$K:ty, $V:ty]) => {
412-
<DefaultCacheSelector as CacheSelector<$K, $V>>::Cache
413-
};
414-
([storage($ty:ty) $($rest:tt)*][$K:ty, $V:ty]) => {
415-
<$ty as CacheSelector<$K, $V>>::Cache
416-
};
417-
([$other:ident $(($($other_args:tt)*))* $(, $($modifiers:tt)*)*][$($args:tt)*]) => {
418-
query_storage!([$($($modifiers)*)*][$($args)*])
419-
};
420-
}
421-
422410
macro_rules! hash_result {
423411
([][$hcx:expr, $result:expr]) => {{
424412
dep_graph::hash_result($hcx, &$result)
@@ -520,7 +508,7 @@ macro_rules! define_queries {
520508
const EVAL_ALWAYS: bool = is_eval_always!([$($modifiers)*]);
521509
const DEP_KIND: dep_graph::DepKind = dep_graph::DepKind::$name;
522510

523-
type Cache = query_storage!([$($modifiers)*][$($K)*, $V]);
511+
type Cache = query_storage::$name<$tcx>;
524512

525513
#[inline(always)]
526514
fn query_state<'a>(tcx: QueryCtxt<$tcx>) -> &'a QueryState<crate::dep_graph::DepKind, Query<$tcx>, Self::Cache> {

0 commit comments

Comments
 (0)