Don't expect a rcvr in print_disambiguation_help

This commit is contained in:
Michael Goulet 2023-11-12 19:59:04 +00:00
parent d8dbf7ca0e
commit 99664b0bbf
3 changed files with 52 additions and 2 deletions

View 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
}

View 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`.