Partial no-op refactoring of #9948
This contains some prep work for #9948 to keep that change to the minimum, and make it easier to review it.
This should be a noop, but it has some tests from that PR discussion, and should help in the future with the corner case format handling.
cc: `@Alexendoo` `@llogiq` `@xFrednet` as the 3 people who reviewed the parent PR
----
changelog: none
[arithmetic_side_effects] Fix#10583Fixes#10583
```
changelog: [`arithmetic_side_effects`]: Correctly handle division and module when the right-hand-side is unknown
```
Replace any existing `build/host` symlink
This has two advantages:
1. If `build.build` changes between runs, the symlink is no longer silently wrong.
2. If the entire build directory is moved, the symlink is no longer broken because it points to the wrong absolute path.
This has two advantages:
1. If `build.build` changes between runs, the symlink is no longer
silently wrong.
2. If the entire build directory is moved, the symlink is no longer
broken because it points to the wrong absolute path.
Drop array patterns using subslices
Fixes#109004
Drops contiguous subslices of an array when moving elements out with a pattern, which improves perf for large arrays
r? `@compiler-errors`
Improve grammar of Iterator.partition_in_place
This is my first PR against Rust, please let me know if there's anything I should be providing here! I didn't find any instructions specific to documentation grammar in the [std-dev guide](https://std-dev-guide.rust-lang.org/documentation/summary.html).
Add Nilstrieb to mailmap
I saw that I'm on https://thanks.rust-lang.org/ twice (once as `Nilstrieb` and once as `nils`).
This is because I've contributed as both `Nilstrieb` (locally) and `nils` (on github). So I've mailmapped them both to `Nilstrieb` (the less ambiguous of the two).
I am not entirely sure whether I've done this correctly.
Optimize `LazyCell` size
`LazyCell` can only store either the initializing function or the data it produces, so it does not need to reserve the space for both. Similar to #107329, but uses an `enum` instead of a `union`.
Update cargo
9 commits in 145219a9f089f8b57c09f40525374fbade1e34ae..0e474cfd7b16b018cf46e95da3f6a5b2f1f6a9e7
2023-03-27 01:56:36 +0000 to 2023-03-31 23:15:58 +0000
- Add delays to network retries. (rust-lang/cargo#11881)
- Add a note to `cargo logout` that it does not revoke the token. (rust-lang/cargo#11919)
- Sync external-tools JSON docs. (rust-lang/cargo#11918)
- Drop derive feature from serde in cargo-platform (rust-lang/cargo#11915)
- Disable test_profile test on windows-gnu (rust-lang/cargo#11916)
- src/doc/src/reference/build-scripts.md: a{n =>} benchmark target (rust-lang/cargo#11908)
- Documented working directory behaviour for `cargo test`, `cargo bench` and `cargo run` (rust-lang/cargo#11901)
- docs(contrib): Link to office hours doc (rust-lang/cargo#11903)
- chore: Upgrade to clap v4.2 (rust-lang/cargo#11904)
I saw that I'm on https://thanks.rust-lang.org/ twice (once as
`Nilstrieb` and once as `nils`).
This is because I've contributed as both `Nilstrieb` (locally) and `nils` (on github).
So I've mailmapped them both to `Nilstrieb` (the less ambiguous of the
two).
Switch to LLD as default linker for {arm,thumb}v4t-none-eabi
The LLVM 16 update brought ARMv4t support to LLD. We should use it by default so users don't need to install an external linker.
cc `@Lokathor`