1
Fork 0

Remove RunCompiler

It has become nothing other than a wrapper around run_compiler.
This commit is contained in:
bjorn3 2025-01-22 14:13:14 +00:00
parent 974db1a6e4
commit a77776cc1d
9 changed files with 16 additions and 32 deletions

View file

@ -207,23 +207,7 @@ pub fn diagnostics_registry() -> Registry {
} }
/// This is the primary entry point for rustc. /// This is the primary entry point for rustc.
pub struct RunCompiler<'a> { pub fn run_compiler(at_args: &[String], callbacks: &mut (dyn Callbacks + Send)) {
at_args: &'a [String],
callbacks: &'a mut (dyn Callbacks + Send),
}
impl<'a> RunCompiler<'a> {
pub fn new(at_args: &'a [String], callbacks: &'a mut (dyn Callbacks + Send)) -> Self {
Self { at_args, callbacks }
}
/// Parse args and run the compiler.
pub fn run(self) {
run_compiler(self.at_args, self.callbacks);
}
}
fn run_compiler(at_args: &[String], callbacks: &mut (dyn Callbacks + Send)) {
let mut default_early_dcx = EarlyDiagCtxt::new(ErrorOutputType::default()); let mut default_early_dcx = EarlyDiagCtxt::new(ErrorOutputType::default());
// Throw away the first argument, the name of the binary. // Throw away the first argument, the name of the binary.
@ -1516,7 +1500,7 @@ pub fn main() -> ! {
install_ctrlc_handler(); install_ctrlc_handler();
let exit_code = catch_with_exit_code(|| { let exit_code = catch_with_exit_code(|| {
RunCompiler::new(&args::raw_args(&early_dcx)?, &mut callbacks).run(); run_compiler(&args::raw_args(&early_dcx)?, &mut callbacks);
Ok(()) Ok(())
}); });

View file

@ -316,7 +316,7 @@ macro_rules! optional {
#[doc(hidden)] #[doc(hidden)]
macro_rules! run_driver { macro_rules! run_driver {
($args:expr, $callback:expr $(, $with_tcx:ident)?) => {{ ($args:expr, $callback:expr $(, $with_tcx:ident)?) => {{
use rustc_driver::{Callbacks, Compilation, RunCompiler}; use rustc_driver::{Callbacks, Compilation, run_compiler};
use rustc_middle::ty::TyCtxt; use rustc_middle::ty::TyCtxt;
use rustc_interface::interface; use rustc_interface::interface;
use stable_mir::CompilerError; use stable_mir::CompilerError;
@ -347,7 +347,7 @@ macro_rules! run_driver {
/// Runs the compiler against given target and tests it with `test_function` /// Runs the compiler against given target and tests it with `test_function`
pub fn run(&mut self) -> Result<C, CompilerError<B>> { pub fn run(&mut self) -> Result<C, CompilerError<B>> {
let compiler_result = rustc_driver::catch_fatal_errors(|| -> interface::Result::<()> { let compiler_result = rustc_driver::catch_fatal_errors(|| -> interface::Result::<()> {
RunCompiler::new(&self.args.clone(), self).run(); run_compiler(&self.args.clone(), self);
Ok(()) Ok(())
}); });
match (compiler_result, self.result.take()) { match (compiler_result, self.result.take()) {

View file

@ -18,7 +18,7 @@ use std::path::Path;
use rustc_ast_pretty::pprust::item_to_string; use rustc_ast_pretty::pprust::item_to_string;
use rustc_data_structures::sync::Lrc; use rustc_data_structures::sync::Lrc;
use rustc_driver::{Compilation, RunCompiler}; use rustc_driver::{Compilation, run_compiler};
use rustc_interface::interface::{Compiler, Config}; use rustc_interface::interface::{Compiler, Config};
use rustc_middle::ty::TyCtxt; use rustc_middle::ty::TyCtxt;
@ -87,5 +87,5 @@ impl rustc_driver::Callbacks for MyCallbacks {
} }
fn main() { fn main() {
RunCompiler::new(&["main.rs".to_string()], &mut MyCallbacks).run(); run_compiler(&["main.rs".to_string()], &mut MyCallbacks);
} }

View file

@ -18,7 +18,7 @@ use std::path::Path;
use rustc_ast_pretty::pprust::item_to_string; use rustc_ast_pretty::pprust::item_to_string;
use rustc_data_structures::sync::Lrc; use rustc_data_structures::sync::Lrc;
use rustc_driver::{Compilation, RunCompiler}; use rustc_driver::{Compilation, run_compiler};
use rustc_interface::interface::{Compiler, Config}; use rustc_interface::interface::{Compiler, Config};
use rustc_middle::ty::TyCtxt; use rustc_middle::ty::TyCtxt;
@ -94,5 +94,5 @@ impl rustc_driver::Callbacks for MyCallbacks {
} }
fn main() { fn main() {
RunCompiler::new(&["main.rs".to_string()], &mut MyCallbacks).run(); run_compiler(&["main.rs".to_string()], &mut MyCallbacks);
} }

View file

@ -6,7 +6,7 @@ The [`rustc_driver`] is essentially `rustc`'s `main` function.
It acts as the glue for running the various phases of the compiler in the correct order, It acts as the glue for running the various phases of the compiler in the correct order,
using the interface defined in the [`rustc_interface`] crate. Where possible, using [`rustc_driver`] rather than [`rustc_interface`] is recommended. using the interface defined in the [`rustc_interface`] crate. Where possible, using [`rustc_driver`] rather than [`rustc_interface`] is recommended.
The main entry point of [`rustc_driver`] is [`rustc_driver::RunCompiler`][rd_rc]. The main entry point of [`rustc_driver`] is [`rustc_driver::run_compiler`][rd_rc].
This builder accepts the same command-line args as rustc as well as an implementation of [`Callbacks`][cb] and a couple of other optional options. This builder accepts the same command-line args as rustc as well as an implementation of [`Callbacks`][cb] and a couple of other optional options.
[`Callbacks`][cb] is a `trait` that allows for custom compiler configuration, [`Callbacks`][cb] is a `trait` that allows for custom compiler configuration,
as well as allowing custom code to run after different phases of the compilation. as well as allowing custom code to run after different phases of the compilation.
@ -40,7 +40,7 @@ specifically [`rustc_driver_impl::run_compiler`][rdi_rc]
[cb]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/trait.Callbacks.html [cb]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/trait.Callbacks.html
[example]: https://github.com/rust-lang/rustc-dev-guide/blob/master/examples/rustc-interface-example.rs [example]: https://github.com/rust-lang/rustc-dev-guide/blob/master/examples/rustc-interface-example.rs
[i_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/interface/fn.run_compiler.html [i_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/interface/fn.run_compiler.html
[rd_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/struct.RunCompiler.html [rd_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/fn.run_compiler.html
[rdi_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver_impl/fn.run_compiler.html [rdi_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver_impl/fn.run_compiler.html
[stupid-stats]: https://github.com/nrc/stupid-stats [stupid-stats]: https://github.com/nrc/stupid-stats
[`nightly-rustc`]: https://doc.rust-lang.org/nightly/nightly-rustc/ [`nightly-rustc`]: https://doc.rust-lang.org/nightly/nightly-rustc/

View file

@ -236,7 +236,7 @@ pub fn main() {
let mut args: Vec<String> = orig_args.clone(); let mut args: Vec<String> = orig_args.clone();
pass_sysroot_env_if_given(&mut args, sys_root_env); pass_sysroot_env_if_given(&mut args, sys_root_env);
rustc_driver::RunCompiler::new(&args, &mut DefaultCallbacks).run(); rustc_driver::run_compiler(&args, &mut DefaultCallbacks);
return Ok(()); return Ok(());
} }
@ -295,9 +295,9 @@ pub fn main() {
let clippy_enabled = !cap_lints_allow && relevant_package && !info_query; let clippy_enabled = !cap_lints_allow && relevant_package && !info_query;
if clippy_enabled { if clippy_enabled {
args.extend(clippy_args); args.extend(clippy_args);
rustc_driver::RunCompiler::new(&args, &mut ClippyCallbacks { clippy_args_var }).run(); rustc_driver::run_compiler(&args, &mut ClippyCallbacks { clippy_args_var });
} else { } else {
rustc_driver::RunCompiler::new(&args, &mut RustcCallbacks { clippy_args_var }).run(); rustc_driver::run_compiler(&args, &mut RustcCallbacks { clippy_args_var });
} }
Ok(()) Ok(())
})) }))

View file

@ -373,7 +373,7 @@ fn run_compiler_and_exit(
) -> ! { ) -> ! {
// Invoke compiler, and handle return code. // Invoke compiler, and handle return code.
let exit_code = rustc_driver::catch_with_exit_code(move || { let exit_code = rustc_driver::catch_with_exit_code(move || {
rustc_driver::RunCompiler::new(args, callbacks).run(); rustc_driver::run_compiler(args, callbacks);
Ok(()) Ok(())
}); });
std::process::exit(exit_code) std::process::exit(exit_code)

View file

@ -25,7 +25,7 @@ fn main() {
let mut count = 1; let mut count = 1;
let args = vec!["compiler-calls".to_string(), "foo.rs".to_string()]; let args = vec!["compiler-calls".to_string(), "foo.rs".to_string()];
rustc_driver::catch_fatal_errors(|| -> interface::Result<()> { rustc_driver::catch_fatal_errors(|| -> interface::Result<()> {
rustc_driver::RunCompiler::new(&args, &mut TestCalls { count: &mut count }).run(); rustc_driver::run_compiler(&args, &mut TestCalls { count: &mut count });
Ok(()) Ok(())
}) })
.ok(); .ok();

View file

@ -47,7 +47,7 @@ fn main() {
rustc_args.push("-Zpolonius".to_owned()); rustc_args.push("-Zpolonius".to_owned());
let mut callbacks = CompilerCalls::default(); let mut callbacks = CompilerCalls::default();
// Call the Rust compiler with our callbacks. // Call the Rust compiler with our callbacks.
rustc_driver::RunCompiler::new(&rustc_args, &mut callbacks).run(); rustc_driver::run_compiler(&rustc_args, &mut callbacks);
Ok(()) Ok(())
}); });
std::process::exit(exit_code); std::process::exit(exit_code);