Skip to content

Commit 5dd7550

Browse files
committed
Avoid Lrc<Box<dyn CodegenBackend>>.
Because `Lrc<Box<T>>` is silly. (Clippy warns about `Rc<Box<T>>` and `Arc<Box<T>>`, and it would warn here if (a) we used Clippy with rustc, and (b) Clippy knew about `Lrc`.)
1 parent 006a26c commit 5dd7550

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

Diff for: compiler/rustc_driver_impl/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ fn run_compiler(
329329
return;
330330
}
331331
let should_stop =
332-
print_crate_info(&***compiler.codegen_backend(), compiler.session(), false);
332+
print_crate_info(&**compiler.codegen_backend(), compiler.session(), false);
333333

334334
if should_stop == Compilation::Stop {
335335
return;
@@ -351,7 +351,7 @@ fn run_compiler(
351351

352352
interface::run_compiler(config, |compiler| {
353353
let sess = compiler.session();
354-
let should_stop = print_crate_info(&***compiler.codegen_backend(), sess, true)
354+
let should_stop = print_crate_info(&**compiler.codegen_backend(), sess, true)
355355
.and_then(|| list_metadata(sess, &*compiler.codegen_backend().metadata_loader()))
356356
.and_then(|| try_process_rlink(sess, compiler));
357357

Diff for: compiler/rustc_interface/src/interface.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ pub type Result<T> = result::Result<T, ErrorGuaranteed>;
3636
/// Created by passing [`Config`] to [`run_compiler`].
3737
pub struct Compiler {
3838
pub(crate) sess: Lrc<Session>,
39-
codegen_backend: Lrc<Box<dyn CodegenBackend>>,
39+
codegen_backend: Lrc<dyn CodegenBackend>,
4040
pub(crate) register_lints: Option<Box<dyn Fn(&Session, &mut LintStore) + Send + Sync>>,
4141
pub(crate) override_queries: Option<fn(&Session, &mut Providers, &mut ExternProviders)>,
4242
}
@@ -45,7 +45,7 @@ impl Compiler {
4545
pub fn session(&self) -> &Lrc<Session> {
4646
&self.sess
4747
}
48-
pub fn codegen_backend(&self) -> &Lrc<Box<dyn CodegenBackend>> {
48+
pub fn codegen_backend(&self) -> &Lrc<dyn CodegenBackend> {
4949
&self.codegen_backend
5050
}
5151
pub fn register_lints(&self) -> &Option<Box<dyn Fn(&Session, &mut LintStore) + Send + Sync>> {
@@ -318,7 +318,7 @@ pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Se
318318

319319
let compiler = Compiler {
320320
sess: Lrc::new(sess),
321-
codegen_backend: Lrc::new(codegen_backend),
321+
codegen_backend: Lrc::from(codegen_backend),
322322
register_lints: config.register_lints,
323323
override_queries: config.override_queries,
324324
};

Diff for: compiler/rustc_interface/src/queries.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ impl<'tcx> Queries<'tcx> {
115115
fn session(&self) -> &Lrc<Session> {
116116
&self.compiler.sess
117117
}
118-
fn codegen_backend(&self) -> &Lrc<Box<dyn CodegenBackend>> {
118+
fn codegen_backend(&self) -> &Lrc<dyn CodegenBackend> {
119119
self.compiler.codegen_backend()
120120
}
121121

@@ -259,7 +259,7 @@ impl<'tcx> Queries<'tcx> {
259259
// Hook for UI tests.
260260
Self::check_for_rustc_errors_attr(tcx);
261261

262-
Ok(passes::start_codegen(&***self.codegen_backend(), tcx))
262+
Ok(passes::start_codegen(&**self.codegen_backend(), tcx))
263263
})
264264
}
265265

@@ -324,7 +324,7 @@ impl<'tcx> Queries<'tcx> {
324324
pub struct Linker {
325325
// compilation inputs
326326
sess: Lrc<Session>,
327-
codegen_backend: Lrc<Box<dyn CodegenBackend>>,
327+
codegen_backend: Lrc<dyn CodegenBackend>,
328328

329329
// compilation outputs
330330
dep_graph: DepGraph,

0 commit comments

Comments
 (0)