diff options
| author | Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> | 2023-05-30 12:57:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-30 12:57:39 +0200 |
| commit | 0c9f87c986570e0f81c4418a69081c92e3538bfa (patch) | |
| tree | 30cd5fcf8627e25cd55ce24f9fd191f55800c6fb /tests | |
| parent | 7a4006cc52d741b270e1da7b508dc6f87ae3e4de (diff) | |
| parent | f78369b3afedd4d662cc6f92eee825bc94bf1e8e (diff) | |
| download | rust-0c9f87c986570e0f81c4418a69081c92e3538bfa.tar.gz rust-0c9f87c986570e0f81c4418a69081c92e3538bfa.zip | |
Rollup merge of #111872 - bvanjoi:fix-103646, r=cjgillot
fix: dedup `static_candidates` before report Fixes https://github.com/rust-lang/rust/issues/103646 `record_static_candidate` had been executed twice, resulting in the presence of two identical `CandidateSource::Trait(Cat)` in static_candidates. This PR aims to deduplication the `static_candidates` list, allowing it to execute `suggest_associated_call_syntax` properly.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/suggestions/issue-103646.rs | 11 | ||||
| -rw-r--r-- | tests/ui/suggestions/issue-103646.stderr | 21 |
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/ui/suggestions/issue-103646.rs b/tests/ui/suggestions/issue-103646.rs new file mode 100644 index 00000000000..f679640c5dc --- /dev/null +++ b/tests/ui/suggestions/issue-103646.rs @@ -0,0 +1,11 @@ +trait Cat { + fn nya() {} +} + +fn uwu<T: Cat>(c: T) { + c.nya(); + //~^ ERROR no method named `nya` found for type parameter `T` in the current scope + //~| Suggestion T::nya() +} + +fn main() {} diff --git a/tests/ui/suggestions/issue-103646.stderr b/tests/ui/suggestions/issue-103646.stderr new file mode 100644 index 00000000000..3ae9813d491 --- /dev/null +++ b/tests/ui/suggestions/issue-103646.stderr @@ -0,0 +1,21 @@ +error[E0599]: no method named `nya` found for type parameter `T` in the current scope + --> $DIR/issue-103646.rs:6:7 + | +LL | fn uwu<T: Cat>(c: T) { + | - method `nya` not found for this type parameter +LL | c.nya(); + | --^^^-- + | | | + | | this is an associated function, not a method + | help: use associated function syntax instead: `T::nya()` + | + = note: found the following associated functions; to be used as methods, functions must have a `self` parameter +note: the candidate is defined in the trait `Cat` + --> $DIR/issue-103646.rs:2:5 + | +LL | fn nya() {} + | ^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0599`. |
