about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2023-05-16 16:04:03 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2023-05-16 17:59:56 +1000
commit8a9b38fd3bbf9d57cddb824f104fad592c7377e0 (patch)
treece6e39782dd55e5aee9d49be52bad4069849e3c3 /src
parentdb3faa78d0cdba3d90f559ce4d7a4e56a341950b (diff)
downloadrust-8a9b38fd3bbf9d57cddb824f104fad592c7377e0.tar.gz
rust-8a9b38fd3bbf9d57cddb824f104fad592c7377e0.zip
Avoid `&format("...")` calls in error message code.
Error message all end up passing into a function as an `impl
Into<{D,Subd}iagnosticMessage>`. If an error message is creatd as
`&format("...")` that means we allocate a string (in the `format!`
call), then take a reference, and then clone (allocating again) the
reference to produce the `{D,Subd}iagnosticMessage`, which is silly.

This commit removes the leading `&` from a lot of these cases. This
means the original `String` is moved into the
`{D,Subd}iagnosticMessage`, avoiding the double allocations. This
requires changing some function argument types from `&str` to `String`
(when all arguments are `String`) or `impl
Into<{D,Subd}iagnosticMessage>` (when some arguments are `String` and
some are `&str`).
Diffstat (limited to 'src')
-rw-r--r--src/pretty_clif.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pretty_clif.rs b/src/pretty_clif.rs
index 27e21183c55..1007b33eca4 100644
--- a/src/pretty_clif.rs
+++ b/src/pretty_clif.rs
@@ -227,7 +227,7 @@ pub(crate) fn write_ir_file(
         // Using early_warn as no Session is available here
         rustc_session::early_warn(
             rustc_session::config::ErrorOutputType::default(),
-            &format!("error writing ir file: {}", err),
+            format!("error writing ir file: {}", err),
         );
     }
 }