diff options
| author | Joshua Nelson <jnelson@cloudflare.com> | 2022-09-05 06:43:11 -0500 |
|---|---|---|
| committer | Joshua Nelson <jnelson@cloudflare.com> | 2022-09-09 20:21:59 -0500 |
| commit | 9273782d559a342beb2443018f2f8fc873f53b79 (patch) | |
| tree | 1d32bc06daadfe64c198eb165f0f743e45d90be8 /compiler/rustc_macros/src/query.rs | |
| parent | 7208bdee33460b9915e6b389b236d231d2ca3ffc (diff) | |
| download | rust-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.rs | 9 |
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 |
