From 4b42a6d90b850eb697a56bddb9e3239d7e5c72fb Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Sun, 17 Jan 2021 14:57:07 +0100 Subject: [PATCH] Introduce query_stored module. --- .../rustc_middle/src/ty/query/plumbing.rs | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/compiler/rustc_middle/src/ty/query/plumbing.rs b/compiler/rustc_middle/src/ty/query/plumbing.rs index f6370452e80b..7a46bad0c1fd 100644 --- a/compiler/rustc_middle/src/ty/query/plumbing.rs +++ b/compiler/rustc_middle/src/ty/query/plumbing.rs @@ -342,14 +342,20 @@ macro_rules! define_queries { $(pub type $name<$tcx> = $V;)* } + #[allow(nonstandard_style, unused_lifetimes)] + pub mod query_stored { + use super::*; + + $(pub type $name<$tcx> = < + query_storage!([$($modifiers)*][$($K)*, $V]) + as QueryStorage + >::Stored;)* + } $(impl<$tcx> QueryConfig for queries::$name<$tcx> { type Key = $($K)*; type Value = $V; - type Stored = < - query_storage!([$($modifiers)*][$($K)*, $V]) - as QueryStorage - >::Stored; + type Stored = query_stored::$name<$tcx>; const NAME: &'static str = stringify!($name); } @@ -442,8 +448,7 @@ macro_rules! define_queries { $($(#[$attr])* #[inline(always)] #[must_use] - pub fn $name(self, key: query_helper_param_ty!($($K)*)) - -> as QueryConfig>::Stored + pub fn $name(self, key: query_helper_param_ty!($($K)*)) -> query_stored::$name<$tcx> { self.at(DUMMY_SP).$name(key.into_query_param()) })* @@ -481,8 +486,7 @@ macro_rules! define_queries { impl TyCtxtAt<$tcx> { $($(#[$attr])* #[inline(always)] - pub fn $name(self, key: query_helper_param_ty!($($K)*)) - -> as QueryConfig>::Stored + pub fn $name(self, key: query_helper_param_ty!($($K)*)) -> query_stored::$name<$tcx> { get_query::, _>(self.tcx, self.span, key.into_query_param(), QueryMode::Get).unwrap() })*