diff options
| author | bors <bors@rust-lang.org> | 2021-12-12 22:15:32 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-12-12 22:15:32 +0000 |
| commit | 22f8bde876f2fa9c5c4e95be1bce29cc271f2b51 (patch) | |
| tree | 780b4d0cada258ab3536c7bacbaf99dbf7980359 /compiler/rustc_query_impl/src | |
| parent | 6bda5b331cfe7e04e1fe348c58a928fc2b650f4f (diff) | |
| parent | ffc9082d97cf88ac4d8f72bca0382b2499a0184d (diff) | |
| download | rust-22f8bde876f2fa9c5c4e95be1bce29cc271f2b51.tar.gz rust-22f8bde876f2fa9c5c4e95be1bce29cc271f2b51.zip | |
Auto merge of #91549 - fee1-dead:const_env, r=spastorino
Eliminate ConstnessAnd again Closes #91489. Closes #89432. Reverts #91491. Reverts #89450. r? `@spastorino`
Diffstat (limited to 'compiler/rustc_query_impl/src')
| -rw-r--r-- | compiler/rustc_query_impl/src/plumbing.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/compiler/rustc_query_impl/src/plumbing.rs b/compiler/rustc_query_impl/src/plumbing.rs index 81a36e0d59e..2854ba5158b 100644 --- a/compiler/rustc_query_impl/src/plumbing.rs +++ b/compiler/rustc_query_impl/src/plumbing.rs @@ -231,6 +231,16 @@ macro_rules! get_provider { }; } +macro_rules! opt_remap_env_constness { + ([][$name:ident]) => {}; + ([(remap_env_constness) $($rest:tt)*][$name:ident]) => { + let $name = $name.without_const(); + }; + ([$other:tt $($modifiers:tt)*][$name:ident]) => { + opt_remap_env_constness!([$($modifiers)*][$name]) + }; +} + macro_rules! define_queries { (<$tcx:tt> $($(#[$attr:meta])* @@ -247,6 +257,7 @@ macro_rules! define_queries { // Create an eponymous constructor for each query. $(#[allow(nonstandard_style)] $(#[$attr])* pub fn $name<$tcx>(tcx: QueryCtxt<$tcx>, key: query_keys::$name<$tcx>) -> QueryStackFrame { + opt_remap_env_constness!([$($modifiers)*][key]); let kind = dep_graph::DepKind::$name; let name = stringify!($name); // Disable visible paths printing for performance reasons. @@ -521,6 +532,7 @@ macro_rules! define_queries_struct { lookup: QueryLookup, mode: QueryMode, ) -> Option<query_stored::$name<$tcx>> { + opt_remap_env_constness!([$($modifiers)*][key]); let qcx = QueryCtxt { tcx, queries: self }; get_query::<queries::$name<$tcx>, _>(qcx, span, key, lookup, mode) })* |
