about summary refs log tree commit diff
path: root/compiler/rustc_interface/src/interface.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-11-17 16:49:58 +0000
committerbors <bors@rust-lang.org>2023-11-17 16:49:58 +0000
commite886137e18e7bd312b1bd5e3ee9364734673b23c (patch)
tree37d208b5fd923b967b12b469dd2a469fdd5b7632 /compiler/rustc_interface/src/interface.rs
parent069a4af48b4b2111ff65f3895edb425683e6ae8a (diff)
parent9582172964608c7eed72a79d05a7e0ed58b23bca (diff)
downloadrust-e886137e18e7bd312b1bd5e3ee9364734673b23c.tar.gz
rust-e886137e18e7bd312b1bd5e3ee9364734673b23c.zip
Auto merge of #117993 - nnethercote:streamline-Linker, r=bjorn3
Streamline `Linker`

r? `@bjorn3`
Diffstat (limited to 'compiler/rustc_interface/src/interface.rs')
-rw-r--r--compiler/rustc_interface/src/interface.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs
index d113e038966..6225424fe4a 100644
--- a/compiler/rustc_interface/src/interface.rs
+++ b/compiler/rustc_interface/src/interface.rs
@@ -38,17 +38,17 @@ pub type Result<T> = result::Result<T, ErrorGuaranteed>;
 /// Can be used to run `rustc_interface` queries.
 /// Created by passing [`Config`] to [`run_compiler`].
 pub struct Compiler {
-    pub(crate) sess: Lrc<Session>,
-    codegen_backend: Lrc<dyn CodegenBackend>,
+    sess: Session,
+    codegen_backend: Box<dyn CodegenBackend>,
     pub(crate) override_queries: Option<fn(&Session, &mut Providers)>,
 }
 
 impl Compiler {
-    pub fn session(&self) -> &Lrc<Session> {
+    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: Lrc::new(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 = {