Commit graph

171 commits

Author SHA1 Message Date
Michael Goulet
42c9bfd2b9 Remove Symbol for Named LateParam/Bound variants 2025-07-04 18:14:22 +00:00
Michael Goulet
250b5d204f Make missing lifetime suggestion verbose 2025-06-24 18:59:42 +00:00
David Wood
607eb322a8
trait_sel: skip elaboration of sizedness supertrait
As a performance optimization, skip elaborating the supertraits of
`Sized`, and if a `MetaSized` obligation is being checked, then look for
a `Sized` predicate in the parameter environment. This makes the
`ParamEnv` smaller which should improve compiler performance as it avoids
all the iteration over the larger `ParamEnv`.
2025-06-16 23:04:36 +00:00
David Wood
183458263b
tests: bless remaining tests
These tests just need blessing, they don't have any interesting behaviour
changes.

Some of these tests have new errors because `LegacyReceiver` cannot be
proven to be implemented now that it is also testing for `MetaSized` -
but this is just a consequence of the other errors in the test.
2025-06-16 23:04:35 +00:00
Matthias Krüger
bfd8abd8f3
Rollup merge of #141069 - chenyukang:yukang-fix-137486-suggest-mut, r=davidtwco
Suggest mut when possbile for temporary value dropped while borrowed

Fixes #137486
2025-06-12 22:09:41 +02:00
Jake Goulding
d35ad94849 Replace elided_named_lifetimes with mismatched_lifetime_syntaxes 2025-06-04 10:40:04 -04:00
Michael Goulet
9871e160ea Normalize possibly unnormalized type in relate_type_and_user_type 2025-05-29 11:20:45 +00:00
yukang
d5d4cecee9 Suggest mut when possbile for temporary value dropped while borrowed 2025-05-27 22:19:56 +08:00
Noratrieb
01503d0c1e Avoid extra path trimming in method not found error
Method errors have an extra check that force trim paths whenever the
normal string is longer than 10 characters, which can be quite unhelpful
when multiple items have the same name (for example an `Error`).

A user reported this force trimming as being quite unhelpful when they
had a method error where the precise path of the `Error` mattered.

The code uses `tcx.short_string` already to get the normal path, which
tries to be clever around trimming paths if necessary, so there is no
reason for this extra force trimming.
2025-05-24 23:31:07 +02:00
lcnr
ffa7d1ee5d borrowck nested items in dead code 2025-05-02 18:45:28 +00:00
yuk1ty
bffb7608ce Fix error message for static references or mutable references 2025-04-26 14:48:30 +09:00
bors
6bc57c6bf7 Auto merge of #139960 - amandasystems:placeholder-ui-tests, r=lcnr
Add tests for two untested cases of placeholder relations

During work on #130227, I discovered several situations not covered by any previously existing UI test. This commit introudces tests to cover that.

r? lcnr
2025-04-22 11:05:54 +00:00
Amanda Stjerna
e9d374c657 Add tests for two untested cases of placeholder relations
During work on #130227, I discovered several situations not covered by any
previously existing UI test. This commit introudces tests to cover that.
2025-04-22 12:07:53 +02:00
Vadim Petrochenkov
b3f75353a2 UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
Nicholas Nethercote
fadf910517 Fix Debug impl for LateParamRegionKind.
It uses `Br` prefixes which are inappropriate and appear to have been
incorrectly copy/pasted from the `Debug` impl for `BoundRegionKind`.
2025-04-04 16:50:56 +11:00
lcnr
71d688bb72 TypeVerifier do not walk into required consts 2025-03-06 12:53:35 +01:00
Michael Goulet
0a7ab1d6df More sophisticated span trimming 2025-02-21 00:41:17 +00:00
Matthias Krüger
960b122136
Rollup merge of #137059 - xizheyin:issue-136827, r=davidtwco
fix: Alloc new errorcode E0803 for E0495

As discussion in #136827, I alloc a new errorcode.
2025-02-19 01:30:11 +01:00
xizheyin
d22554a996
fix: Alloc new errorcode E0803 for E0495
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-02-15 12:18:30 +08:00
Michael Goulet
6d71251cf9 Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
Michael Goulet
b480a9214a Use underline suggestions for purely 'additive' replacements 2025-02-14 00:27:13 -08:00
Michael Goulet
d1b35f9fcc Improved named region errors 2025-02-13 01:36:01 +00:00
Michael Goulet
d5be3bae51 Deeply normalize signature in new solver 2025-02-11 19:24:07 +00:00
Esteban Küber
f0845adb0c Show diff suggestion format on verbose replacement
```
error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields
  --> $DIR/attempted-access-non-fatal.rs:7:15
   |
LL |     let _ = 2.l;
   |               ^
   |
help: if intended to be a floating point literal, consider adding a `0` after the period and a `f64` suffix
   |
LL -     let _ = 2.l;
LL +     let _ = 2.0f64;
   |
```
2025-02-10 20:21:39 +00:00
Rémy Rakic
a616fa5657 update NLL get_default test for poloniuses
- it still mentions AST borrowck
- it tracks errors that shouldn't exist and are fixed by polonius
2025-01-31 11:04:50 +00:00
Rémy Rakic
18d417fdcf add explicit revisions to polonius tests
The blessed expectations were recently removed because they were only
checked via the compare-mode. This switches to explicit revisions to
ensure it doesn't happen again.

- `assignment-to-differing-field`
- `polonius-smoke-test`
- `subset-relations`
2025-01-31 11:04:50 +00:00
Rémy Rakic
e2d16419e8 add explicit revisions to check-pass tests 2025-01-31 11:04:50 +00:00
Rémy Rakic
bb1385ca8b merge duplicate issue-46589 tests
also add explicit revisions for -Zpolonius=next
2025-01-31 11:04:50 +00:00
León Orell Valerian Liehr
0b18b4fbbc
Remove all dead files inside tests/ui/ 2025-01-27 02:28:04 +01:00
许杰友 Jieyou Xu (Joe)
8a0310a0b1 tests: use needs-subprocess instead of ignore-{wasm32,emscripten,sgx} 2025-01-23 20:51:29 +08:00
lcnr
99657aa338 mir borrowck: cleanup late-bound region handling 2025-01-14 14:16:12 +01:00
dianne
fe8b12f8cf only avoid blaming assignments from argument patterns 2025-01-06 16:12:11 -08:00
dianne
2c5815b285 make outlives constraints from pointer comparisons less boring 2025-01-06 16:12:11 -08:00
dianne
6421d4cf80 best_blame_constraint: prioritize blaming interesting-seeming constraints 2025-01-06 16:12:11 -08:00
dianne
50222dba2e best_blame_constraint: avoid blaming assignments without user-provided types 2025-01-06 16:12:11 -08:00
dianne
2864906fce best_blame_constraint: add a special case to recover object lifetime default notes 2025-01-06 16:12:04 -08:00
dianne
ac922245f0 best_blame_constraint: don't filter constraints by sup SCC
The SCCs of the region graph are not a reliable heuristic to use for blaming an interesting
constraint for diagnostics. For region errors, if the outlived region is `'static`, or the involved
types are invariant in their lifetiems, there will be cycles in the constraint graph containing both
the target region and the most interesting constraints to blame. To get better diagnostics in these
cases, this commit removes that heuristic.
2025-01-06 16:08:29 -08:00
Trevor Gross
3d3d898a2e
Rollup merge of #133486 - dianne:fix-move-error-suggestion, r=estebank
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.
2024-12-31 18:42:23 -05:00
Esteban Küber
65a54a7f27 Tweak multispan rendering
Consider comments and bare delimiters the same as an "empty line" for purposes of hiding rendered code output of long multispans. This results in more aggressive shortening of rendered output without losing too much context, specially in `*.stderr` tests that have "hidden" comments.
2024-12-12 23:36:27 +00:00
lcnr
1c96ddde11 closure-requirements: add regression tests 2024-12-03 17:26:43 +01:00
Eric Huss
6005d1c9f7 Update more 2024 tests to remove -Zunstable-options 2024-11-28 14:32:45 -08:00
dianne
04d9bb7a9a add_move_error_suggestions: use a HIR visitor rather than SourceMap 2024-11-25 20:29:04 -08:00
Michael Goulet
0465f71d60 Stop being so bail-y in candidate assembly 2024-11-21 01:35:34 +00:00
Ding Xiang Fei
6d569f769c
stabilize if_let_rescope 2024-10-24 04:33:14 +08:00
Lukas Markeffsky
5e60d1f87e replace "cast" with "coercion" where applicable
This changes the remaining span for the cast, because the new `Cast`
category has a higher priority (lower `Ord`) than the old `Coercion`
category, so we no longer report the region error for the "unsizing"
coercion from `*const Trait` to itself.
2024-09-24 22:20:46 +02:00
Lukas Markeffsky
d1e82d438f use more accurate spans for user type ascriptions 2024-09-24 22:20:42 +02:00
Obei Sideg
3b0ce1bc33
Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
Ding Xiang Fei
f93df1f7dc
rescope temp lifetime in let-chain into IfElse
apply rules by span edition
2024-09-11 04:10:00 +08:00
Camille GILLOT
f68f66538a Create opaque definitions in resolver. 2024-08-31 20:14:43 +00:00
Michael Goulet
84044cd50f Bless test fallout 2024-08-17 12:43:25 -04:00