Skip to content

Commit dc49dc1

Browse files
committed
1 parent 23a8541 commit dc49dc1

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

driver/src/lib.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#![feature(rustc_private)]
2+
#![feature(string_leak)]
23
#![deny(clippy::expect_used)]
34
#![deny(clippy::unwrap_used)]
45
#![deny(clippy::panic)]
@@ -119,14 +120,17 @@ impl Callbacks {
119120
let lib = result.unwrap_or_else(|err| {
120121
// smoelius: rust-lang/rust#111633 changed the type of `early_error`'s `msg`
121122
// argument from `&str` to `impl Into<DiagnosticMessage>`.
123+
// smoelius: And rust-lang/rust#111748 made it that `msg` is borrowed for
124+
// `'static`. Since the program is about to exit, it's probably fine to leak the
125+
// string.
122126
rustc_session::early_error(
123127
rustc_session::config::ErrorOutputType::default(),
124128
format!(
125129
"could not load library `{}`: {}",
126130
path.to_string_lossy(),
127131
err
128132
)
129-
.as_str(),
133+
.leak(),
130134
);
131135
});
132136

utils/linting/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
//! [examples]: ../../examples
169169
170170
#![feature(rustc_private)]
171+
#![feature(string_leak)]
171172
#![warn(unused_extern_crates)]
172173

173174
#[allow(unused_extern_crates)]
@@ -457,7 +458,7 @@ pub fn init_config(sess: &rustc_session::Session) {
457458
try_init_config(sess).unwrap_or_else(|err| {
458459
rustc_session::early_error(
459460
rustc_session::config::ErrorOutputType::default(),
460-
format!("could not read configuration file: {err}").as_str(),
461+
format!("could not read configuration file: {err}").leak(),
461462
);
462463
});
463464
}

0 commit comments

Comments
 (0)