Don't expect a rcvr in print_disambiguation_help
This commit is contained in:
parent
d8dbf7ca0e
commit
99664b0bbf
3 changed files with 52 additions and 2 deletions
14
tests/ui/methods/method-ambiguity-no-rcvr.rs
Normal file
14
tests/ui/methods/method-ambiguity-no-rcvr.rs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
struct Qux;
|
||||
|
||||
trait Foo {
|
||||
fn foo();
|
||||
}
|
||||
|
||||
trait FooBar {
|
||||
fn foo() {}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
Qux.foo();
|
||||
//~^ ERROR no method named `foo` found for struct `Qux` in the current scope
|
||||
}
|
||||
32
tests/ui/methods/method-ambiguity-no-rcvr.stderr
Normal file
32
tests/ui/methods/method-ambiguity-no-rcvr.stderr
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
error[E0599]: no method named `foo` found for struct `Qux` in the current scope
|
||||
--> $DIR/method-ambiguity-no-rcvr.rs:12:9
|
||||
|
|
||||
LL | struct Qux;
|
||||
| ---------- method `foo` not found for this struct
|
||||
...
|
||||
LL | Qux.foo();
|
||||
| ^^^ this is an associated function, not a method
|
||||
|
|
||||
= note: found the following associated functions; to be used as methods, functions must have a `self` parameter
|
||||
note: candidate #1 is defined in the trait `Foo`
|
||||
--> $DIR/method-ambiguity-no-rcvr.rs:4:5
|
||||
|
|
||||
LL | fn foo();
|
||||
| ^^^^^^^^^
|
||||
note: candidate #2 is defined in the trait `FooBar`
|
||||
--> $DIR/method-ambiguity-no-rcvr.rs:8:5
|
||||
|
|
||||
LL | fn foo() {}
|
||||
| ^^^^^^^^
|
||||
help: disambiguate the associated function for candidate #1
|
||||
|
|
||||
LL | <Qux as Foo>::foo(Qux);
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~
|
||||
help: disambiguate the associated function for candidate #2
|
||||
|
|
||||
LL | <Qux as FooBar>::foo(Qux);
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0599`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue