about summary refs log tree commit diff
path: root/compiler/rustc_macros/src/query.rs
diff options
context:
space:
mode:
authorJoshua Nelson <jnelson@cloudflare.com>2022-09-05 06:43:11 -0500
committerJoshua Nelson <jnelson@cloudflare.com>2022-09-09 20:21:59 -0500
commit9273782d559a342beb2443018f2f8fc873f53b79 (patch)
tree1d32bc06daadfe64c198eb165f0f743e45d90be8 /compiler/rustc_macros/src/query.rs
parent7208bdee33460b9915e6b389b236d231d2ca3ffc (diff)
downloadrust-9273782d559a342beb2443018f2f8fc873f53b79.tar.gz
rust-9273782d559a342beb2443018f2f8fc873f53b79.zip
Move `TRY_LOAD_FROM_DISK` out of `rustc_queries` to `rustc_query_impl`
We want to refer to `crate::plumbing::try_load_from_disk` in the const, but hard-coding it in
rustc_queries, where we don't yet know the crate this macro will be called in, seems kind of hacky.
Do it in query_impl instead.
Diffstat (limited to 'compiler/rustc_macros/src/query.rs')
-rw-r--r--compiler/rustc_macros/src/query.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/compiler/rustc_macros/src/query.rs b/compiler/rustc_macros/src/query.rs
index 55d23ba1c67..742ae964f5c 100644
--- a/compiler/rustc_macros/src/query.rs
+++ b/compiler/rustc_macros/src/query.rs
@@ -253,9 +253,6 @@ fn add_query_description_impl(query: &Query, impls: &mut proc_macro2::TokenStrea
             fn cache_on_disk(#tcx: TyCtxt<'tcx>, #key: &Self::Key) -> bool {
                 #expr
             }
-
-            const TRY_LOAD_FROM_DISK: Option<fn(QueryCtxt<'tcx>, SerializedDepNodeIndex) -> Option<Self::Value>>
-                = Some(crate::plumbing::try_load_from_disk::<Self::Value>);
         }
     } else {
         quote! {
@@ -263,8 +260,6 @@ fn add_query_description_impl(query: &Query, impls: &mut proc_macro2::TokenStrea
             fn cache_on_disk(_: TyCtxt<'tcx>, _: &Self::Key) -> bool {
                 false
             }
-
-            const TRY_LOAD_FROM_DISK: Option<fn(QueryCtxt<'tcx>, SerializedDepNodeIndex) -> Option<Self::Value>> = None;
         }
     };
 
@@ -333,6 +328,10 @@ pub fn rustc_queries(input: TokenStream) -> TokenStream {
             remap_env_constness,
         );
 
+        if modifiers.cache.is_some() {
+            attributes.push(quote! { (cache) });
+        }
+
         // This uses the span of the query definition for the commas,
         // which can be important if we later encounter any ambiguity
         // errors with any of the numerous macro_rules! macros that