diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-11-17 08:34:55 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-11-17 17:30:36 +1100 |
| commit | aed8e1f3b635c379d03007b86cff4dd36cb49eb4 (patch) | |
| tree | 04d8bca5822f7187f15a3c87d5e4335fde8f3ea0 /compiler/rustc_interface/src/interface.rs | |
| parent | de91b6d24962a4662786bbf0fab71854b3976af1 (diff) | |
| download | rust-aed8e1f3b635c379d03007b86cff4dd36cb49eb4.tar.gz rust-aed8e1f3b635c379d03007b86cff4dd36cb49eb4.zip | |
Move `CodegenBackend` out of `Linker`.
It can easily be passed in. And that removes the single clone of `Compiler::codegen_backend`, which means it no longer needs to be `Lrc`.
Diffstat (limited to 'compiler/rustc_interface/src/interface.rs')
| -rw-r--r-- | compiler/rustc_interface/src/interface.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs index e054d0a8f0b..6db26b976d9 100644 --- a/compiler/rustc_interface/src/interface.rs +++ b/compiler/rustc_interface/src/interface.rs @@ -39,7 +39,7 @@ pub type Result<T> = result::Result<T, ErrorGuaranteed>; /// Created by passing [`Config`] to [`run_compiler`]. pub struct Compiler { pub(crate) sess: Session, - codegen_backend: Lrc<dyn CodegenBackend>, + codegen_backend: Box<dyn CodegenBackend>, pub(crate) override_queries: Option<fn(&Session, &mut Providers)>, } @@ -47,8 +47,8 @@ impl Compiler { pub fn session(&self) -> &Session { &self.sess } - pub fn codegen_backend(&self) -> &Lrc<dyn CodegenBackend> { - &self.codegen_backend + pub fn codegen_backend(&self) -> &dyn CodegenBackend { + &*self.codegen_backend } pub fn build_output_filenames( &self, @@ -491,11 +491,8 @@ pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Se } sess.lint_store = Some(Lrc::new(lint_store)); - let compiler = Compiler { - sess, - codegen_backend: Lrc::from(codegen_backend), - override_queries: config.override_queries, - }; + let compiler = + Compiler { sess, codegen_backend, override_queries: config.override_queries }; rustc_span::set_source_map(compiler.sess.parse_sess.clone_source_map(), move || { let r = { |
