diff options
| author | bors <bors@rust-lang.org> | 2021-01-28 12:09:50 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-01-28 12:09:50 +0000 |
| commit | 643a79af3d5a31fa87c8a4c9d7f8bc4ebe2add4b (patch) | |
| tree | f0f8524b6fcb838e1d6729926c48d7b37502c787 /src/test/ui/methods | |
| parent | 0e190206e2ff0c13d64701d9b4145bf89a2d0cab (diff) | |
| parent | dea8a16af55e319a41e9451959c68d7a24fcdc5a (diff) | |
| download | rust-643a79af3d5a31fa87c8a4c9d7f8bc4ebe2add4b.tar.gz rust-643a79af3d5a31fa87c8a4c9d7f8bc4ebe2add4b.zip | |
Auto merge of #81149 - Aaron1011:feature/better-no-method-found-err, r=estebank
Avoid describing a method as 'not found' when bounds are unsatisfied Fixes #76267 When there is a single applicable method candidate, but its trait bounds are not satisfied, we avoid saying that the method is "not found". Insted, we update the error message to directly mention which bounds are not satisfied, rather than mentioning them in a note.
Diffstat (limited to 'src/test/ui/methods')
| -rw-r--r-- | src/test/ui/methods/method-call-err-msg.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/methods/method-call-err-msg.stderr | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/test/ui/methods/method-call-err-msg.rs b/src/test/ui/methods/method-call-err-msg.rs index 9bfacc7babf..86d00ca3760 100644 --- a/src/test/ui/methods/method-call-err-msg.rs +++ b/src/test/ui/methods/method-call-err-msg.rs @@ -16,7 +16,7 @@ fn main() { let y = Foo; y.zero() - .take() //~ ERROR no method named `take` found + .take() //~ ERROR the method .one(0); y.three::<usize>(); //~ ERROR this function takes 3 arguments but 0 arguments were supplied } diff --git a/src/test/ui/methods/method-call-err-msg.stderr b/src/test/ui/methods/method-call-err-msg.stderr index 60f9eeeca27..ffeacfe15dd 100644 --- a/src/test/ui/methods/method-call-err-msg.stderr +++ b/src/test/ui/methods/method-call-err-msg.stderr @@ -40,7 +40,7 @@ note: associated function defined here LL | fn two(self, _: isize, _: isize) -> Foo { self } | ^^^ ---- -------- -------- -error[E0599]: no method named `take` found for struct `Foo` in the current scope +error[E0599]: the method `take` exists for struct `Foo`, but its trait bounds were not satisfied --> $DIR/method-call-err-msg.rs:19:7 | LL | pub struct Foo; @@ -50,9 +50,9 @@ LL | pub struct Foo; | doesn't satisfy `Foo: Iterator` ... LL | .take() - | ^^^^ method not found in `Foo` + | ^^^^ method cannot be called on `Foo` due to unsatisfied trait bounds | - = note: the method `take` exists but the following trait bounds were not satisfied: + = note: the following trait bounds were not satisfied: `Foo: Iterator` which is required by `&mut Foo: Iterator` = help: items from traits can only be used if the trait is implemented and in scope |
