summaryrefslogtreecommitdiff
path: root/tests/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-05-03 00:22:19 +0000
committerbors <bors@rust-lang.org>2023-05-03 00:22:19 +0000
commit71af5c4074cf1993551c10d8e4a1d6da9c27ce33 (patch)
treef9bf794d9ec375cb798d8993648b63a03ed367d8 /tests/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs
parentb4571bed994a901e6dbd0b28e25e91a57758c549 (diff)
parent6b62f37402cb2990c7d350379238579af0360b10 (diff)
downloadrust-71af5c4074cf1993551c10d8e4a1d6da9c27ce33.tar.gz
Auto merge of #110579 - nnethercote:restrict-From-for-Diagnostics, r=davidtwco
Restrict `From<S>` for `{D,Subd}iagnosticMessage`. Currently a `{D,Subd}iagnosticMessage` can be created from any type that impls `Into<String>`. That includes `&str`, `String`, and `Cow<'static, str>`, which are reasonable. It also includes `&String`, which is pretty weird, and results in many places making unnecessary allocations for patterns like this: ``` self.fatal(&format!(...)) ``` This creates a string with `format!`, takes a reference, passes the reference to `fatal`, which does an `into()`, which clones the reference, doing a second allocation. Two allocations for a single string, bleh. This commit changes the `From` impls so that you can only create a `{D,Subd}iagnosticMessage` from `&str`, `String`, or `Cow<'static, str>`. This requires changing all the places that currently create one from a `&String`. Most of these are of the `&format!(...)` form described above; each one removes an unnecessary static `&`, plus an allocation when executed. There are also a few places where the existing use of `&String` was more reasonable; these now just use `clone()` at the call site. As well as making the code nicer and more efficient, this is a step towards possibly using `Cow<'static, str>` in `{D,Subd}iagnosticMessage::{Str,Eager}`. That would require changing the `From<&'a str>` impls to `From<&'static str>`, which is doable, but I'm not yet sure if it's worthwhile. r? `@davidtwco`
Diffstat (limited to 'tests/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs')
0 files changed, 0 insertions, 0 deletions