about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2023-09-22 16:38:31 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2023-09-22 20:15:34 +0000
commit4ed4913e67cab329bd3cca92dff1cf558cc3575e (patch)
tree2c31d05631e4440dbf2d3cf1a329cceea01ab813 /src
parent2ba911c8329a4a8b6697cc6a25c02f0f06d58d8d (diff)
downloadrust-4ed4913e67cab329bd3cca92dff1cf558cc3575e.tar.gz
rust-4ed4913e67cab329bd3cca92dff1cf558cc3575e.zip
Merge `ExternProviders` into the general `Providers` struct
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/core.rs2
-rw-r--r--src/tools/miri/src/bin/miri.rs15
2 files changed, 9 insertions, 8 deletions
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs
index 7cd25ef444b..3e6066c78fb 100644
--- a/src/librustdoc/core.rs
+++ b/src/librustdoc/core.rs
@@ -263,7 +263,7 @@ pub(crate) fn create_config(
         lint_caps,
         parse_sess_created: None,
         register_lints: Some(Box::new(crate::lint::register_lints)),
-        override_queries: Some(|_sess, providers, _external_providers| {
+        override_queries: Some(|_sess, providers| {
             // We do not register late module lints, so this only runs `MissingDoc`.
             // Most lints will require typechecking, so just don't run them.
             providers.lint_mod = |tcx, module_def_id| late_lint_mod(tcx, module_def_id, MissingDoc);
diff --git a/src/tools/miri/src/bin/miri.rs b/src/tools/miri/src/bin/miri.rs
index 1e9219d4bb2..50f09584475 100644
--- a/src/tools/miri/src/bin/miri.rs
+++ b/src/tools/miri/src/bin/miri.rs
@@ -28,7 +28,8 @@ use rustc_middle::{
     middle::exported_symbols::{
         ExportedSymbol, SymbolExportInfo, SymbolExportKind, SymbolExportLevel,
     },
-    query::{ExternProviders, LocalCrate},
+    query::{LocalCrate},
+    util::Providers,
     ty::TyCtxt,
 };
 use rustc_session::config::{CrateType, ErrorOutputType, OptLevel};
@@ -43,11 +44,11 @@ struct MiriCompilerCalls {
 
 impl rustc_driver::Callbacks for MiriCompilerCalls {
     fn config(&mut self, config: &mut Config) {
-        config.override_queries = Some(|_, _, external_providers| {
-            external_providers.used_crate_source = |tcx, cnum| {
-                let mut providers = ExternProviders::default();
-                rustc_metadata::provide_extern(&mut providers);
-                let mut crate_source = (providers.used_crate_source)(tcx, cnum);
+        config.override_queries = Some(|_, providers| {
+            providers.extern_queries.used_crate_source = |tcx, cnum| {
+                let mut providers = Providers::default();
+                rustc_metadata::provide(&mut providers);
+                let mut crate_source = (providers.extern_queries.used_crate_source)(tcx, cnum);
                 // HACK: rustc will emit "crate ... required to be available in rlib format, but
                 // was not found in this form" errors once we use `tcx.dependency_formats()` if
                 // there's no rlib provided, so setting a dummy path here to workaround those errors.
@@ -125,7 +126,7 @@ impl rustc_driver::Callbacks for MiriBeRustCompilerCalls {
         if config.opts.prints.is_empty() && self.target_crate {
             // Queries overridden here affect the data stored in `rmeta` files of dependencies,
             // which will be used later in non-`MIRI_BE_RUSTC` mode.
-            config.override_queries = Some(|_, local_providers, _| {
+            config.override_queries = Some(|_, local_providers| {
                 // `exported_symbols` and `reachable_non_generics` provided by rustc always returns
                 // an empty result if `tcx.sess.opts.output_types.should_codegen()` is false.
                 local_providers.exported_symbols = |tcx, LocalCrate| {