rust/compiler/rustc_builtin_macros/src
bors 70e04bd88d Auto merge of #111748 - nnethercote:Cow-DiagnosticMessage, r=WaffleLapkin
Use `Cow` in `{D,Subd}iagnosticMessage`.

Each of `{D,Subd}iagnosticMessage::{Str,Eager}` has a comment:
```
// FIXME(davidtwco): can a `Cow<'static, str>` be used here?
```
This commit answers that question in the affirmative. It's not the most compelling change ever, but it might be worth merging.

This requires changing the `impl<'a> From<&'a str>` impls to `impl From<&'static str>`, which involves a bunch of knock-on changes that require/result in call sites being a little more precise about exactly what kind of string they use to create errors, and not just `&str`. This will result in fewer unnecessary allocations, though this will not have any notable perf effects given that these are error paths.

Note that I was lazy within Clippy, using `to_string` in a few places to preserve the existing string imprecision. I could have used `impl Into<{D,Subd}iagnosticMessage>` in various places as is done in the compiler, but that would have required changes to *many* call sites (mostly changing `&format("...")` to `format!("...")`) which didn't seem worthwhile.

r? `@WaffleLapkin`
2023-05-29 07:10:44 +00:00
..
assert [RFC-2011] Expand more expressions 2023-05-24 21:15:50 -03:00
deriving Avoid some unnecessary local attr variables. 2023-05-26 07:00:26 +10:00
format_foreign Use as_deref in compiler (but only where it makes sense) 2022-11-16 21:58:58 +00:00
alloc_error_handler.rs Revert "Remove #[alloc_error_handler] from the compiler and library" 2023-04-25 00:08:35 +02:00
asm.rs Avoid &format("...") calls in error message code. 2023-05-16 17:59:56 +10:00
assert.rs Rip it out 2023-05-01 16:15:13 +08:00
cfg_accessible.rs Migrate most of rustc_builtin_macros to diagnostic impls 2023-04-10 21:16:53 +01:00
cfg_eval.rs Use Option::is_some_and and Result::is_ok_and in the compiler 2023-05-24 14:20:41 +00:00
cfg.rs Migrate most of rustc_builtin_macros to diagnostic impls 2023-04-10 21:16:53 +01:00
cmdline_attrs.rs expand: Pass ast::Crate by reference to AST transforming passes 2023-03-23 14:20:55 +04:00
compile_error.rs Use Cow in {D,Subd}iagnosticMessage. 2023-05-29 09:23:43 +10:00
concat_bytes.rs fix TODO comments 2023-05-02 10:32:07 +00:00
concat_idents.rs refactor: use by-ref TokenTree iterator to avoid a few clones 2023-05-11 21:59:38 -05:00
concat.rs initial step towards implementing C string literals 2023-05-02 10:30:09 +00:00
derive.rs Migrate most of rustc_builtin_macros to diagnostic impls 2023-04-10 21:16:53 +01:00
edition_panic.rs Rip it out 2023-05-01 16:15:13 +08:00
env.rs Better diagnostics for env! where variable contains escape 2023-05-11 21:41:07 +01:00
errors.rs Use Cow in {D,Subd}iagnosticMessage. 2023-05-29 09:23:43 +10:00
format_foreign.rs Remove useless drop of copy type 2023-05-10 19:36:01 +02:00
format.rs Avoid &format("...") calls in error message code. 2023-05-16 17:59:56 +10:00
global_allocator.rs Split AllocatorKind::fn_name in global_fn_name and default_fn_name 2023-05-11 14:35:08 +00:00
lib.rs Add derive for core::marker::ConstParamTy 2023-05-16 20:09:25 +02:00
log_syntax.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
proc_macro_harness.rs Restrict From<S> for {D,Subd}iagnosticMessage. 2023-05-03 08:44:39 +10:00
source_util.rs Avoid &format("...") calls in error message code. 2023-05-16 17:59:56 +10:00
standard_library_imports.rs rustc_interface: Add a new query pre_configure 2023-03-23 14:22:48 +04:00
test_harness.rs Add #[no_coverage] to the test harness's fn main 2023-05-01 11:01:12 +10:00
test.rs Fix static string lints 2023-04-25 18:59:55 +01:00
trace_macros.rs refactor: use by-ref TokenTree iterator to avoid a few clones 2023-05-11 21:59:38 -05:00
type_ascribe.rs Add unstable type_ascribe macro 2022-11-19 22:16:42 +01:00
util.rs rustc: Remove unused Session argument from some attribute functions 2023-03-22 13:55:55 +04:00