| Age | Commit message (Collapse) | Author | Lines |
|
This reverts commit 685f189b4307435b83d625fea397ef36dff4e955.
|
|
(cherry picked from commit c1da4f1d3c4fc4beb5edcfa8a303a1dcbe27b65e)
|
|
(cherry picked from commit 4898753d5d20a1a871053eece96ec8d5a4f690f8)
|
|
Most of these are meant to test possible future improvements, but since
they cover cases the existing test suite didn't, I figure including them
now may be helpful.
(cherry picked from commit f1e4d94fa4bd253c26610e8d79d5da8b52bad99f)
|
|
(cherry picked from commit b32a5331dcdcc1993fefeff412a20766557e558d)
|
|
(cherry picked from commit a5cc4cbe64876c339cc1fb47fb962792bc142146)
|
|
(cherry picked from commit 767f82039c221fa609f752d2a2ea4ffd664f8138)
|
|
(cherry picked from commit a064e786633ac81c35abcf00abd9dc57a40ad9bf)
|
|
(cherry picked from commit 203d3109d8e96a6a4075205e836216d7cd281d5b)
|
|
mode
(cherry picked from commit 4331f55b729d1a41004305f85dfe4dbbcec3ee3f)
|
|
(cherry picked from commit 9202001c1c5c3bd9c1fce522744c8620e17d791a)
|
|
(cherry picked from commit bbe40acb9a192ab2afec1f8adc45c3b72925caf2)
|
|
This aligns the main error message a bit more with the phrasing in the
Edition Guide and provides a bit more information on the labels to
(hopefully!) aid in understanding.
(cherry picked from commit bdc6c4d07b5ccb91df396e152deafc3a66b539ab)
|
|
(cherry picked from commit c69dea90d70212bb430f183df62edc09c8c8a89f)
|
|
r=davidtwco,RalfJung"
This reverts commit b57d93d8b9525fa261404b4cd9c0670eeb1264b8, reversing
changes made to 0aeaa5eb22180fdf12a8489e63c4daa18da6f236.
(cherry picked from commit 122a55bb442bd1995df9cf9b36e6f65ed3ef4a1d)
|
|
This reverts commit 7c301ecdf5e806b7aa3c44e4a185049fabbc4381, reversing
changes made to dffaad83327454430129802f240121f8c7866208.
(cherry picked from commit 0bb4880581a6963e0b895f9550e9147c68b9537a)
|
|
This reverts commit e108481f74ff123ad98a63bd107a18d13035b275, reversing
changes made to 303e8bd768526a5812bb1776e798e829ddb7d3ca.
(cherry picked from commit ca1c17c88d1f625763859396ba7a50f36ac45cc0)
|
|
(cherry picked from commit 592f2c90da6a6e1b25b3b9c2f13a2e0cfb83dcfc)
|
|
(cherry picked from commit d44f021904e3d5b2870e3c835cbad5e1421e83ec)
|
|
diagnostic
Fix #135209.
(cherry picked from commit 5f04f98c9aaf04e5f670e04dc12d4665489859fd)
|
|
with dummy spans instead of dropping them entirely
Revert most of #133194 (except the test and the comment fixes). Then refix
not emitting locations at all when the correct location discriminator value
exceeds LLVM's capacity.
(cherry picked from commit 45ef92731b637a60cbad7cecf5382361bbf40531)
|
|
(cherry picked from commit 0910173b3558b0ff7e9e160976618cbb55cb6149)
|
|
(cherry picked from commit ebbcfd4e7721aaf3211f0e8d3d6e304400c80f78)
|
|
(cherry picked from commit 1b068a0dea794373301f4ddbfb35a378c6805276)
|
|
|
|
(cherry picked from commit c55eefe8bc51f302cfc89d375198ca7211d4709b)
|
|
(cherry picked from commit 4a099b29cdb6a7841019406f0f2b5035a1fd9a08)
|
|
(cherry picked from commit 197f6d8081451c5ad394601dbdd8509bbb92f446)
|
|
potential violations
(cherry picked from commit 045271ccccd6c485f65ed94aeef3357a512e22fb)
|
|
When `-Cstrip` was changed to use the bundled rust-objcopy instead of
/usr/bin/strip on OSX, strip-like arguments were preserved.
But strip and objcopy are, while being the same binary, different, they
have different defaults depending on which binary they are.
Notably, strip strips everything by default, and objcopy doesn't strip
anything by default.
Additionally, `-S` actually means `--strip-all`, so debuginfo stripped
everything and symbols didn't strip anything.
We now correctly pass `--strip-debug` and `--strip-all`.
|
|
Rollup of 4 pull requests
Successful merges:
- #131729 (Make the `test` cfg a userspace check-cfg)
- #134241 (more concrete source url of std docs [V2])
- #135042 (taint fcx on selection errors during unsizing)
- #135049 (Remove unused fields from RepeatElementCopy obligation)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
taint fcx on selection errors during unsizing
With `feature(dyn_compatible_for_dispatch)` we only check for dyn-compatibility by checking the `T: Unsize<dyn Trait>` predicate during the unsizing coercions checks. If the predicate doesn't hold, we emit an error, but pretend the coercion succeeded to prevent further errors. To prevent const eval from attempting to actually perform this coercion, we need to taint the fcx after reporting the trait errors in the coercion check.
fixes https://github.com/rust-lang/rust/issues/135021
fixes https://github.com/rust-lang/rust/issues/130521
|
|
Make the `test` cfg a userspace check-cfg
This PR implements MCP https://github.com/rust-lang/compiler-team/issues/785, which makes the `test` cfg a "userspace" check-cfg, i.e. no longer included in the well known cfg list.
Things to do:
- [x] Accept the MCP (https://github.com/rust-lang/compiler-team/issues/785#issuecomment-2424121886)
- [x] Mark `test` in Cargo (https://github.com/rust-lang/cargo/pull/14963)
`@rustbot` labels +S-waiting-on-MCP +F-check_cfg
r? `@petrochenkov`
|
|
Move some things to `std::sync::poison` and reexport them in `std::sync`
Tracking issue: #134646
r? `@tgross35`
I've used `sync_poison_mod` feature flag instead, because `sync_poison` had already been used back in 1.2.
try-job: x86_64-msvc
|
|
Try to write the panic message with a single `write_all` call
This writes the panic message to a buffer before writing to stderr. This allows it to be printed with a single `write_all` call, preventing it from being interleaved with other outputs. It also adds newlines before and after the message ensuring that only the panic message will have its own lines.
Before:
```
thread 'thread 'thread 'thread 'thread '<unnamed>thread 'thread 'thread 'thread '<unnamed><unnamed>thread '<unnamed>' panicked at ' panicked at <unnamed><unnamed><unnamed><unnamed><unnamed>' panicked at <unnamed>' panicked at src\heap.rssrc\heap.rs'
panicked at ' panicked at ' panicked at ' panicked at ' panicked at src\heap.rs' panicked at src\heap.rs::src\heap.rssrc\heap.rssrc\heap.rssrc\heap.rssrc\heap.rs:src\heap.rs:455455:::::455:455::455455455455455:455:99:::::9:9:
:
999:
999:
assertion failed: size <= (*queue).block_size:
:
assertion failed: size <= (*queue).block_size:
assertion failed: size <= (*queue).block_size:
:
:
assertion failed: size <= (*queue).block_sizeassertion failed: size <= (*queue).block_sizeassertion failed: size <= (*queue).block_size
assertion failed: size <= (*queue).block_size
assertion failed: size <= (*queue).block_sizeassertion failed: size <= (*queue).block_sizeerror: process didn't exit successfully: `target\debug\direct_test.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)
```
After:
```
thread '<unnamed>' panicked at src\heap.rs:455:9:
assertion failed: size <= (*queue).block_size
thread '<unnamed>' panicked at src\heap.rs:455:9:
assertion failed: size <= (*queue).block_size
thread '<unnamed>' panicked at src\heap.rs:455:9:
assertion failed: size <= (*queue).block_size
error: process didn't exit successfully: `target\debug\direct_test.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)
```
---
try-jobs: x86_64-gnu-llvm-18
|
|
|
|
|
|
|
|
Fix ICE when opaque captures a duplicated/invalid lifetime
See description on test.
Fixes #132766
Fixes #133693
Fixes #134780
|
|
|
|
|
|
Provide structured suggestion for `impl Default` of type where all fields have defaults
```
error: `Default` impl doesn't use the declared default field values
--> $DIR/manual-default-impl-could-be-derived.rs:28:1
|
LL | / impl Default for B {
LL | | fn default() -> Self {
LL | | B {
LL | | x: s(),
| | --- this field has a default value
LL | | y: 0,
| | - this field has a default value
... |
LL | | }
| |_^
|
help: to avoid divergence in behavior between `Struct { .. }` and `<Struct as Default>::default()`, derive the `Default`
|
LL ~ #[derive(Default)] struct B {
|
```
Note that above the structured suggestion also includes completely removing the manual `impl`, but the rendering doesn't.
|
|
Some small nits to the borrowck suggestions for mutating a map through index
1. Suggesting users to either use `.insert` or `.get_mut` (which do totally different things) can be a bit of a footgun, so let's make that a bit more nuanced.
2. I find the suggestion of `.get_mut(|val| { *val = whatever; })` to be a bit awkward. I changed this to be an if-let instead.
3. Fix a bug which was suppressing the structured suggestion for some mutations via the index operator on `HashMap`/`BTreeMap`.
r? estebank or reassign
|
|
r=estebank
add suggestion for wrongly ordered format parameters
Add suggestion for wrongly ordered format parameters like `?#`.
Supersedes #131004
Fix #129966
|
|
E0277: suggest dereferencing function arguments in more cases
This unifies and generalizes some of the logic in `TypeErrCtxt::suggest_dereferences` so that it will suggest dereferencing arguments to function/method calls in order to satisfy trait bounds in more cases.
Previously it would only fire on reference types, and it had two separate cases (one specifically to get through custom `Deref` impls when passing by-reference, and one specifically to catch #87437). I've based the new checks loosely on what's done for `E0308` in `FnCtxt::suggest_deref_or_ref`: it will suggest dereferences to satisfy trait bounds whenever the referent is `Copy`, is boxed (& so can be moved out of the boxes), or is being passed by reference.
This doesn't make the suggestion fire in contexts other than function arguments or binary operators (which are in a separate case that this doesn't touch), and doesn't make it suggest a combination of `&`-removal and dereferences. Those would require a bit more restructuring, so I figured just doing this would be a decent first step.
Closes #90997
|
|
chore: fix typos
I hope my typo corrections will help you. Thank you for your work.
|
|
Add GUI test for item info elements color
Fixes https://github.com/rust-lang/rust/issues/98341.
r? ``@fmease``
|
|
borrowck diagnostics: make `add_move_error_suggestions` use the HIR rather than `SourceMap`
This PR aims to fix #132806 by rewriting `add_move_error_suggestions`[^1]. Previously, it manually scanned the source text to find a leading `&`, which isn't always going to produce a correct result (see: that issue). Admittedly, the HIR visitor in this PR introduces a lot of boilerplate, but hopefully the logic at its core isn't too complicated (I go over it in the comments). I also tried a simpler version that didn't use a HIR visitor and suggested adding `ref` always, but the `&ref x` suggestions really didn't look good. As a bonus for the added complexity though, it's now able to produce nice `&`-removing suggestions in more cases.
I tried to do this such that it avoids edition-dependent checks and its suggestions can be applied together with those from the match ergonomics 2024 migration lint. I haven't added tests for that since the details of match ergonomics 2024 are still being sorted out, but I can try if desired once that's finalized.
[^1]: In brief, it fires on patterns where users try to bind by-value in such a way that moves out of a reference to a non-Copy type (including slice references with non-copy elements). The suggestions are to change the binding's mode to be by-reference, either by removing[^2] an enclosing `&`/`&mut` or adding `ref` to the binding.
[^2]: Incidentally, I find the terminology of "consider removing the borrow" a bit confusing for a suggestion to remove a `&` pattern in order to make bindings borrow rather than move. I'm not sure what a good, concise way to explain that would be though, and that should go in a separate PR anyway.
|
|
have defaults
```
error: `Default` impl doesn't use the declared default field values
--> $DIR/manual-default-impl-could-be-derived.rs:28:1
|
LL | / impl Default for B {
LL | | fn default() -> Self {
LL | | B {
LL | | x: s(),
| | --- this field has a default value
LL | | y: 0,
| | - this field has a default value
... |
LL | | }
| |_^
|
help: to avoid divergence in behavior between `Struct { .. }` and `<Struct as Default>::default()`, derive the `Default`
|
LL ~ #[derive(Default)] struct B {
|
```
Note that above the structured suggestion also includes completely removing the manual `impl`, but the rendering doesn't.
|
|
Signed-off-by: dxsullivan <193140725+dxsullivan@users.noreply.github.com>
|