diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-12-01 04:49:32 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-01 04:49:32 +0100 |
| commit | bed4c09d21aceb440ee61091b68dd653da32b45b (patch) | |
| tree | feada823fc5b16040da2f7aba36cda434f0b2fa4 /src | |
| parent | 3db3f156f11cd16fe07a0b90c26740737e29be60 (diff) | |
| parent | 7f20198632bc2079d4deb4c213ec4876c47ec5d2 (diff) | |
| download | rust-bed4c09d21aceb440ee61091b68dd653da32b45b.tar.gz rust-bed4c09d21aceb440ee61091b68dd653da32b45b.zip | |
Rollup merge of #66896 - RalfJung:queries, r=Zoxc
pass Queries to compiler callbacks https://github.com/rust-lang/rust/pull/66791 made it impossible to access the tcx in the callbacks; this should fix that. r? @Zoxc
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_driver/lib.rs | 26 | ||||
| -rw-r--r-- | src/librustc_interface/lib.rs | 1 |
2 files changed, 20 insertions, 7 deletions
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index 8b04d3d46d0..93f4e73ccc3 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -41,7 +41,7 @@ use rustc::util::common::{set_time_depth, time, print_time_passes_entry, ErrorRe use rustc_metadata::locator; use rustc_codegen_utils::codegen_backend::CodegenBackend; use errors::{PResult, registry::Registry}; -use rustc_interface::interface; +use rustc_interface::{interface, Queries}; use rustc_interface::util::get_codegen_sysroot; use rustc_data_structures::sync::SeqCst; use rustc_feature::{find_gated_cfg, UnstableFeatures}; @@ -98,17 +98,29 @@ pub trait Callbacks { fn config(&mut self, _config: &mut interface::Config) {} /// Called after parsing. Return value instructs the compiler whether to /// continue the compilation afterwards (defaults to `Compilation::Continue`) - fn after_parsing(&mut self, _compiler: &interface::Compiler) -> Compilation { + fn after_parsing<'tcx>( + &mut self, + _compiler: &interface::Compiler, + _queries: &'tcx Queries<'tcx>, + ) -> Compilation { Compilation::Continue } /// Called after expansion. Return value instructs the compiler whether to /// continue the compilation afterwards (defaults to `Compilation::Continue`) - fn after_expansion(&mut self, _compiler: &interface::Compiler) -> Compilation { + fn after_expansion<'tcx>( + &mut self, + _compiler: &interface::Compiler, + _queries: &'tcx Queries<'tcx>, + ) -> Compilation { Compilation::Continue } /// Called after analysis. Return value instructs the compiler whether to /// continue the compilation afterwards (defaults to `Compilation::Continue`) - fn after_analysis(&mut self, _compiler: &interface::Compiler) -> Compilation { + fn after_analysis<'tcx>( + &mut self, + _compiler: &interface::Compiler, + _queries: &'tcx Queries<'tcx>, + ) -> Compilation { Compilation::Continue } } @@ -312,7 +324,7 @@ pub fn run_compiler( return early_exit(); } - if callbacks.after_parsing(compiler) == Compilation::Stop { + if callbacks.after_parsing(compiler, queries) == Compilation::Stop { return early_exit(); } @@ -333,7 +345,7 @@ pub fn run_compiler( } queries.expansion()?; - if callbacks.after_expansion(compiler) == Compilation::Stop { + if callbacks.after_expansion(compiler, queries) == Compilation::Stop { return early_exit(); } @@ -382,7 +394,7 @@ pub fn run_compiler( queries.global_ctxt()?.peek_mut().enter(|tcx| tcx.analysis(LOCAL_CRATE))?; - if callbacks.after_analysis(compiler) == Compilation::Stop { + if callbacks.after_analysis(compiler, queries) == Compilation::Stop { return early_exit(); } diff --git a/src/librustc_interface/lib.rs b/src/librustc_interface/lib.rs index 53baf6556fb..76af4342f5c 100644 --- a/src/librustc_interface/lib.rs +++ b/src/librustc_interface/lib.rs @@ -18,6 +18,7 @@ pub mod util; mod proc_macro_decls; pub use interface::{run_compiler, Config}; +pub use queries::Queries; #[cfg(test)] mod tests; |
