Because it was a mess.
Previously, pretty much you had to handle all path diagnostics manually: remember to check for them and handle them. Now, we wrap the resolver in `TyLoweringContext` and ensure proper error reporting.
This means that you don't have to worry about them: most of the things are handled automatically, and things that cannot will create a compile-time error (forcing you top `drop(ty_lowering_context);`) if forgotten, instead of silently dropping the diagnostics.
The real place for error reporting is in the hir-def resolver, because there are other things resolving, both in hir-ty and in hir-def, and they all need to ensure proper diagnostics. But this is a good start, and future compatible.
This commit also ensures proper path diagnostics for value/pattern paths, which is why it's marked "feat".
For Windows, this removes the need to add a breakpoint and modify a value to exit the debugger wait loop.
As a ridealong, this adds a 100ms sleep for all platforms such that waiting for the debugger doesn't hog the CPU thread.
Rollup of 6 pull requests
Successful merges:
- #130289 (docs: Permissions.readonly() also ignores root user special permissions)
- #134583 (docs: `transmute<&mut T, &mut MaybeUninit<T>>` is unsound when exposed to safe code)
- #134611 (Align `{i686,x86_64}-win7-windows-msvc` to their parent targets)
- #134629 (compiletest: Allow using a specific debugger when running debuginfo tests)
- #134642 (Implement `PointerLike` for `isize`, `NonNull`, `Cell`, `UnsafeCell`, and `SyncUnsafeCell`.)
- #134660 (Fix spacing of markdown code block fences in compiler rustdoc)
r? `@ghost`
`@rustbot` modify labels: rollup
compiletest: Allow using a specific debugger when running debuginfo tests
r? `@jieyouxu`
Closes#134468
Example: `./x test tests/debuginfo -- --debugger gdb`
Bump Fuchsia toolchain for testing
This updates the Fuchsia SDK used to test rust on Fuchsia to 26.20241211.7.1, and clang to the development version 20 from 388d7f144880dcd85ff31f06793304405a9f44b6.
```@steven807``` asked me to take over the PR. Since I don't have commit access to his repo, I just cherry picked his patch here.
try-job: dist-various-2
r? lqd
Update cargo
10 commits in 99dff6d77db779716dda9ca3b29c26addd02c1be..652623b779c88fe44afede28bf7f1c9c07812511
2024-12-18 00:55:17 +0000 to 2024-12-20 15:44:42 +0000
- fix(package): use relpath to cwd for vcs dirtiness report (rust-lang/cargo#14970)
- Enable triagebot merge conflict notifications (rust-lang/cargo#14972)
- fixed the error message for a user to open the crate (rust-lang/cargo#14969)
- fix(package): show dirty filepaths relative to git workdir (rust-lang/cargo#14968)
- Add the `test` cfg as a well known cfg before of compiler change (rust-lang/cargo#14963)
- refactor(cargo-package): let-else to flatten code (rust-lang/cargo#14959)
- fix(cargo-package): add more traces (rust-lang/cargo#14960)
- Do not hash absolute sysroot path into stdlib crates metadata. (rust-lang/cargo#14951)
- docs: add missing argument to Rustup Cargo workaround (rust-lang/cargo#14954)
- fix(cargo-rustc): stabilize higher precedence trailing flags (rust-lang/cargo#14900)
Add `--doctest-compilation-args` option to add compilation flags to doctest compilation
Fixes#67533.
Tracking issue: https://github.com/rust-lang/rust/issues/134172
It's been something I meant to take a look at for a long time and actually completely forgot... The idea is to allow to give more control over how doctests are compiled to users. To do so, this PR adds a new `--doctest-compilation-args` option which provides extra compilation flags.
r? `@notriddle`