rust/src
Nicholas Nethercote 781111ef35 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.
2023-05-29 09:23:43 +10:00
..
bootstrap Auto merge of #112000 - wesleywiser:safestack, r=Amanieu 2023-05-28 04:41:13 +00:00
ci Auto merge of #111575 - alex:patch-1, r=pietroalbini 2023-05-25 03:21:28 +00:00
doc Add SafeStack support to rustc 2023-05-26 15:18:54 -04:00
etc Auto merge of #111566 - clubby789:bootstrap-override-config, r=ozkanonur 2023-05-24 10:56:34 +00:00
librustdoc Use Cow in {D,Subd}iagnosticMessage. 2023-05-29 09:23:43 +10:00
llvm-project@533d3f338b Update to LLVM 16.0.4 2023-05-17 10:35:12 +02:00
rustdoc-json-types Verify that ItemEnum can be serialized and then deserialized using bincode 2023-05-22 18:26:20 +01:00
tools Use Cow in {D,Subd}iagnosticMessage. 2023-05-29 09:23:43 +10:00
README.md Remove stale reference to the test suite location 2023-01-13 11:49:06 +00:00
stage0.json bump stage0 2023-04-28 08:47:55 -07:00
version Bump to 1.72.0 2023-05-27 14:23:37 -04:00

This directory contains some source code for the Rust project, including:

  • The bootstrapping build system
  • Various submodules for tools, like cargo, tidy, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.