TB: improve error messages (distinguish between accesses and reborrows)
I don't remember where, but there was a complaint that while SB's error messages distinguish between "invalidated by an access" and "invalidated by a reborrow", TB's error messages do not.
use as_os_str_bytes
Make use of the new operations recently added (tracking issue: https://github.com/rust-lang/rust/issues/111544). At least the "host OsStr to target bytes" direction now works even for non-utf-8 strings on all hosts!
TB: more fail tests (mostly shared with SB)
Although it was not in the tests, `mem::transmute` works for `UnsafeCell -> &` as well.
Draft: will also introduce more test cases for cases that fail.
Draft: depends on the new error messages from #2888
- reorganize tests/ structure: {stacked,tree,both}_borrows
- UnsafeCell transmutation (the one that should fail, i.e. transmute &
-> UnsafeCell then try to write)
- select TB pass tests from existing SB fail tests (and a version that
fails TB)
- many fail tests now shared
* extra test for TB that parent write invalidates child reads
* buggy_* tests now shared
* tests for deep retagging (pass_invalid_shr_*) now shared
* extra TB test that shared references are read-only
* aliasing_mut{1,2,3,4} adapted to fail both
* extra TB test that write to raw parent invalidates shared children
* mut_exclusive_violation2 now shared
* issue-miri-1050-2 revisions fix
- deduplications
add unchecked_shl test
https://github.com/rust-lang/rust/pull/112238 made me realize that we have a test for add,sub,mul,shr but not shl. Add the missing test. Also name the existing tests more consistently.
Use translatable diagnostics in `rustc_const_eval`
This PR:
* adds a `no_span` parameter to `note` / `help` attributes when using `Subdiagnostic` to allow adding notes/helps without using a span
* has minor tweaks and changes to error messages
Rollup of 8 pull requests
Successful merges:
- #111496 (Extra context for unreachable_pub lint)
- #111802 (Make `x test --dry-run` less verbose)
- #112133 (Migrate GUI colors test to original CSS color format)
- #112146 (Fix `src/etc/pre-push.sh` when `build.locked-deps` is already set)
- #112147 (add inline-const test for elided lifetimes being infer vars)
- #112154 (Fix bug in utf16_to_utf8 for zero length strings)
- #112155 (Improve CGU debug printing.)
- #112173 (Mention GuillaumeGomez in case GUI tests are updated)
r? `@ghost`
`@rustbot` modify labels: rollup
Fix bug in utf16_to_utf8 for zero length strings
This fixes the behavior of sending EOF by pressing Ctrl+Z => Enter in a windows console.
Previously, that would trip the unpaired surrogate error, whereas now we correctly detect EOF.
Fix `src/etc/pre-push.sh` when `build.locked-deps` is already set
Before, cargo would error:
```
; git push
Running pre-push script /home/jyn/src/rust/x test tidy
Building bootstrap
Finished dev [unoptimized] target(s) in 0.02s
Build stage0 tool tidy (x86_64-unknown-linux-gnu)
error: the argument '--locked' cannot be used multiple times
Usage: cargo build [OPTIONS]
For more information, try '--help'.
Build completed unsuccessfully in 0:00:00
error: failed to push some refs to 'github.com:jyn514/rust.git'
```
Extra context for unreachable_pub lint
While experienced Rustaceans no doubt know this sort of thing already, as more of a newbie I had trouble understanding why I was triggering the lint. Hopefully this expanded explanation saves someone else some head-scratching.
Fixes#110922
Do not build docs in try builds
This PR adds a new environment variable to the optimized build Python script, which causes it to ignore certain parts of the final `dist` build (mainly docs) in try builds. This reduces the duration of try builds by ~10 minutes.
Enable ConstGoto and SeparateConstSwitch passes by default
These 2 passes implement a limited form of jump-threading.
Filing this PR to see if enabling them would be lighter than https://github.com/rust-lang/rust/pull/107009.
Enable ScalarReplacementOfAggregates in optimized builds
Like MatchBranchSimplification, this pass is known to produce significant runtime improvements in Cranelift artifacts, and I believe based on the perf runs here that the primary effect of this pass is to empower MatchBranchSimplification. ScalarReplacementOfAggregates on its own has little effect on anything, but when this was rebased up to include https://github.com/rust-lang/rust/pull/112001 we started seeing significant and majority-positive results.
Based on the fact that we see most of the regressions in debug builds (https://github.com/rust-lang/rust/pull/112002#issuecomment-1566270144) and some rather significant ones in cycles and wall time, I'm only enabling this in optimized builds at the moment.
remove reference to Into in ? operator core/std docs, fix#111655
remove the text stating that `?` uses `Into::into` and add text stating it uses `From::from` instead. This closes#111655.