1
Fork 0

Unsupported query error now specifies if its unsupported for local or external crate

This commit is contained in:
Sarthak Singh 2022-11-21 20:15:07 +05:30
parent 1dda298ad3
commit 1767f9f9bf
2 changed files with 6 additions and 4 deletions

View file

@ -276,13 +276,16 @@ macro_rules! define_callbacks {
impl Default for Providers { impl Default for Providers {
fn default() -> Self { fn default() -> Self {
use crate::query::Key;
Providers { Providers {
$($name: |_, key| bug!( $($name: |_, key| bug!(
"`tcx.{}({:?})` is not supported for external or local crate;\n "`tcx.{}({:?})` is not supported for {} crate;\n
hint: Queries can be either made to the local crate, or the external crate. This error means you tried to use it for one that's not supported (likely the local crate).\n hint: Queries can be either made to the local crate, or the external crate. This error means you tried to use it for one that's not supported.\n
If that's not the case, {} was likely never assigned to a provider function.\n", If that's not the case, {} was likely never assigned to a provider function.\n",
stringify!($name), stringify!($name),
key, key,
if key.query_crate_is_local() { "local" } else { "external" },
stringify!($name), stringify!($name),
),)* ),)*
} }

View file

@ -20,6 +20,7 @@ extern crate rustc_middle;
use rustc_data_structures::sync::AtomicU64; use rustc_data_structures::sync::AtomicU64;
use rustc_middle::arena::Arena; use rustc_middle::arena::Arena;
use rustc_middle::dep_graph::{self, DepKindStruct}; use rustc_middle::dep_graph::{self, DepKindStruct};
use rustc_middle::query::Key;
use rustc_middle::ty::query::{query_keys, query_storage, query_stored, query_values}; use rustc_middle::ty::query::{query_keys, query_storage, query_stored, query_values};
use rustc_middle::ty::query::{ExternProviders, Providers, QueryEngine}; use rustc_middle::ty::query::{ExternProviders, Providers, QueryEngine};
use rustc_middle::ty::TyCtxt; use rustc_middle::ty::TyCtxt;
@ -32,8 +33,6 @@ use rustc_query_system::query::*;
#[cfg(parallel_compiler)] #[cfg(parallel_compiler)]
pub use rustc_query_system::query::{deadlock, QueryContext}; pub use rustc_query_system::query::{deadlock, QueryContext};
use rustc_middle::query::Key;
pub use rustc_query_system::query::QueryConfig; pub use rustc_query_system::query::QueryConfig;
pub(crate) use rustc_query_system::query::QueryVTable; pub(crate) use rustc_query_system::query::QueryVTable;