diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-10-08 15:45:32 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-08 15:45:32 +0200 |
| commit | 0d17de89bac0aed983298f0e6f6b93eab2c5b833 (patch) | |
| tree | b1545897f2e5b726c83ff8ee45eb9a8941df542f | |
| parent | f2dc3467f4ac64f2c5bfa999c52173bdd5e2f111 (diff) | |
| parent | 9267d9fe5b1f99f98da83a90e84de706cf8cc150 (diff) | |
| download | rust-0d17de89bac0aed983298f0e6f6b93eab2c5b833.tar.gz rust-0d17de89bac0aed983298f0e6f6b93eab2c5b833.zip | |
Rollup merge of #65176 - nnethercote:rm-query-macros, r=michaelwoerister
Remove query-related macros The query system has a few macros that only have one or two call sites, and I find they hurt readability. This PR removes them. r? @michaelwoerister
| -rw-r--r-- | src/librustc/ty/query/plumbing.rs | 45 | ||||
| -rw-r--r-- | src/librustc_macros/src/query.rs | 6 |
2 files changed, 18 insertions, 33 deletions
diff --git a/src/librustc/ty/query/plumbing.rs b/src/librustc/ty/query/plumbing.rs index 7cab8fe60ee..58133539d9a 100644 --- a/src/librustc/ty/query/plumbing.rs +++ b/src/librustc/ty/query/plumbing.rs @@ -1183,37 +1183,6 @@ pub fn force_from_dep_node(tcx: TyCtxt<'_>, dep_node: &DepNode) -> bool { return false } - macro_rules! def_id { - () => { - if let Some(def_id) = dep_node.extract_def_id(tcx) { - def_id - } else { - // Return from the whole function. - return false - } - } - }; - - macro_rules! krate { - () => { (def_id!()).krate } - }; - - macro_rules! force_ex { - ($tcx:expr, $query:ident, $key:expr) => { - { - $tcx.force_query::<crate::ty::query::queries::$query<'_>>( - $key, - DUMMY_SP, - *dep_node - ); - } - } - }; - - macro_rules! force { - ($query:ident, $key:expr) => { force_ex!(tcx, $query, $key) } - }; - rustc_dep_node_force!([dep_node, tcx] // These are inputs that are expected to be pre-allocated and that // should therefore always be red or green already. @@ -1232,7 +1201,19 @@ pub fn force_from_dep_node(tcx: TyCtxt<'_>, dep_node: &DepNode) -> bool { bug!("force_from_dep_node: encountered {:?}", dep_node) } - DepKind::Analysis => { force!(analysis, krate!()); } + DepKind::Analysis => { + let def_id = if let Some(def_id) = dep_node.extract_def_id(tcx) { + def_id + } else { + // Return from the whole function. + return false + }; + tcx.force_query::<crate::ty::query::queries::analysis<'_>>( + def_id.krate, + DUMMY_SP, + *dep_node + ); + } ); true diff --git a/src/librustc_macros/src/query.rs b/src/librustc_macros/src/query.rs index 9a68dd0f5e3..139e1b554cf 100644 --- a/src/librustc_macros/src/query.rs +++ b/src/librustc_macros/src/query.rs @@ -495,7 +495,11 @@ pub fn rustc_queries(input: TokenStream) -> TokenStream { dep_node_force_stream.extend(quote! { DepKind::#name => { if let Some(key) = RecoverKey::recover($tcx, $dep_node) { - force_ex!($tcx, #name, key); + $tcx.force_query::<crate::ty::query::queries::#name<'_>>( + key, + DUMMY_SP, + *$dep_node + ); } else { return false; } |
