Rollup merge of #103531 - chenyukang:yukang/fix-103474, r=estebank
Suggest calling the instance method of the same name when method not found Fixes #103474
This commit is contained in:
commit
f00897e2f4
6 changed files with 88 additions and 16 deletions
28
src/test/ui/resolve/issue-103474.rs
Normal file
28
src/test/ui/resolve/issue-103474.rs
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
struct S {}
|
||||
impl S {
|
||||
fn first(&self) {}
|
||||
|
||||
fn second(&self) {
|
||||
first()
|
||||
//~^ ERROR cannot find function `first` in this scope
|
||||
}
|
||||
|
||||
fn third(&self) {
|
||||
no_method_err()
|
||||
//~^ ERROR cannot find function `no_method_err` in this scope
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/rust-lang/rust/pull/103531#discussion_r1004728080
|
||||
struct Foo {
|
||||
i: i32,
|
||||
}
|
||||
|
||||
impl Foo {
|
||||
fn needs_self() {
|
||||
this.i
|
||||
//~^ ERROR cannot find value `this` in this scope
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
35
src/test/ui/resolve/issue-103474.stderr
Normal file
35
src/test/ui/resolve/issue-103474.stderr
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
error[E0425]: cannot find value `this` in this scope
|
||||
--> $DIR/issue-103474.rs:23:9
|
||||
|
|
||||
LL | this.i
|
||||
| ^^^^ not found in this scope
|
||||
|
|
||||
help: you might have meant to use `self` here instead
|
||||
|
|
||||
LL | self.i
|
||||
| ~~~~
|
||||
help: if you meant to use `self`, you are also missing a `self` receiver argument
|
||||
|
|
||||
LL | fn needs_self(&self) {
|
||||
| +++++
|
||||
|
||||
error[E0425]: cannot find function `first` in this scope
|
||||
--> $DIR/issue-103474.rs:6:9
|
||||
|
|
||||
LL | first()
|
||||
| ^^^^^ not found in this scope
|
||||
|
|
||||
help: consider using the associated function
|
||||
|
|
||||
LL | self.first()
|
||||
| +++++
|
||||
|
||||
error[E0425]: cannot find function `no_method_err` in this scope
|
||||
--> $DIR/issue-103474.rs:11:9
|
||||
|
|
||||
LL | no_method_err()
|
||||
| ^^^^^^^^^^^^^ not found in this scope
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0425`.
|
||||
|
|
@ -85,7 +85,7 @@ LL | static_method();
|
|||
help: consider using the associated function
|
||||
|
|
||||
LL | Self::static_method();
|
||||
| ~~~~~~~~~~~~~~~~~~~
|
||||
| ++++++
|
||||
|
||||
error[E0425]: cannot find function `purr` in this scope
|
||||
--> $DIR/issue-2356.rs:54:9
|
||||
|
|
@ -114,7 +114,7 @@ LL | grow_older();
|
|||
help: consider using the associated function
|
||||
|
|
||||
LL | Self::grow_older();
|
||||
| ~~~~~~~~~~~~~~~~
|
||||
| ++++++
|
||||
|
||||
error[E0425]: cannot find function `shave` in this scope
|
||||
--> $DIR/issue-2356.rs:74:5
|
||||
|
|
|
|||
|
|
@ -10,6 +10,10 @@ error[E0425]: cannot find function `sleep` in this scope
|
|||
LL | sleep();
|
||||
| ^^^^^ not found in this scope
|
||||
|
|
||||
help: consider using the associated function
|
||||
|
|
||||
LL | self.sleep();
|
||||
| +++++
|
||||
help: consider importing this function
|
||||
|
|
||||
LL | use std::thread::sleep;
|
||||
|
|
|
|||
|
|
@ -7,13 +7,18 @@ LL | foo();
|
|||
help: consider using the associated function
|
||||
|
|
||||
LL | Self::foo();
|
||||
| ~~~~~~~~~
|
||||
| ++++++
|
||||
|
||||
error[E0425]: cannot find function `bar` in this scope
|
||||
--> $DIR/assoc_fn_without_self.rs:17:9
|
||||
|
|
||||
LL | bar();
|
||||
| ^^^ not found in this scope
|
||||
|
|
||||
help: consider using the associated function
|
||||
|
|
||||
LL | self.bar();
|
||||
| +++++
|
||||
|
||||
error[E0425]: cannot find function `baz` in this scope
|
||||
--> $DIR/assoc_fn_without_self.rs:18:9
|
||||
|
|
@ -24,7 +29,7 @@ LL | baz(2, 3);
|
|||
help: consider using the associated function
|
||||
|
|
||||
LL | Self::baz(2, 3);
|
||||
| ~~~~~~~~~
|
||||
| ++++++
|
||||
|
||||
error[E0425]: cannot find function `foo` in this scope
|
||||
--> $DIR/assoc_fn_without_self.rs:14:13
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue