rust/src
Nicholas Nethercote 92799b6f89 Separate Analysis and Results.
`Results` contains and `Analysis` and an `EntryStates`. The unfortunate
thing about this is that the analysis needs to be mutable everywhere
(`&mut Analysis`) which forces the `Results` to be mutable everywhere,
even though `EntryStates` is immutable everywhere.

To fix this, this commit renames `Results` as `AnalysisAndResults`,
renames `EntryStates` as `Results`, and separates the analysis and
results as much as possible. (`AnalysisAndResults` doesn't get much use,
it's mostly there to facilitate method chaining of
`iterate_to_fixpoint`.)

`Results` is immutable everywhere, which:
- is a bit clearer on how the data is used,
- avoids an unnecessary clone of entry states in
  `locals_live_across_suspend_points`, and
- moves the results outside the `RefCell` in Formatter.

The commit also reformulates `ResultsHandle` as the generic `CowMut`,
which is simpler than `ResultsHandle` because it doesn't need the
`'tcx` lifetime and the trait bounds. It also which sits nicely
alongside the new use of `Cow` in `ResultsCursor`.
2025-04-24 11:36:07 +10:00
..
bootstrap Auto merge of #139983 - flip1995:clippy-subtree-update, r=Manishearth 2025-04-23 18:23:51 +00:00
build_helper Fix compiletest and doc comment 2025-04-20 13:14:08 +02:00
ci Auto merge of #138591 - Kobzol:git-ci, r=Mark-Simulacrum 2025-04-23 03:10:04 +00:00
doc Separate Analysis and Results. 2025-04-24 11:36:07 +10:00
etc Rollup merge of #139843 - thaliaarchi:editor-file-associations, r=Mark-Simulacrum 2025-04-19 19:30:47 +00:00
gcc@13cc824322 Update GCC submodule 2025-03-19 15:35:47 +01:00
librustdoc Auto merge of #140138 - ChrisDenton:rollup-zw7jibi, r=ChrisDenton 2025-04-22 04:44:13 +00:00
llvm-project@a9865ceca0 Update to LLVM 20.1.2 2025-04-02 20:19:43 +08:00
rustc-std-workspace update rustc-std-workspace crates 2024-11-04 07:45:15 +01:00
rustdoc-json-types Update rustdoc-json-types FORMAT_VERSION to 45 2025-04-18 20:34:56 +02:00
tools Auto merge of #139983 - flip1995:clippy-subtree-update, r=Manishearth 2025-04-23 18:23:51 +00:00
README.md
stage0 End all lines in src/stage0 with trailing newline 2025-04-12 11:50:33 -07:00
version Bump to 1.88.0 2025-03-28 16:53:17 +00: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.