fix #101749, use . instead of :: when accessing a method of an object

This commit is contained in:
yukang 2022-09-18 15:35:21 +08:00
parent 28a53cdb46
commit fb004e9a95
15 changed files with 218 additions and 66 deletions

View file

@ -1,15 +1,15 @@
error[E0433]: failed to resolve: use of undeclared crate or module `thing`
--> $DIR/bad-module.rs:2:15
|
LL | let foo = thing::len(Vec::new());
| ^^^^^ use of undeclared crate or module `thing`
error[E0433]: failed to resolve: use of undeclared crate or module `foo`
--> $DIR/bad-module.rs:5:15
|
LL | let foo = foo::bar::baz();
| ^^^ use of undeclared crate or module `foo`
error[E0433]: failed to resolve: use of undeclared crate or module `thing`
--> $DIR/bad-module.rs:2:15
|
LL | let foo = thing::len(Vec::new());
| ^^^^^ use of undeclared crate or module `thing`
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0433`.

View file

@ -0,0 +1,16 @@
struct Rectangle {
width: i32,
height: i32,
}
impl Rectangle {
fn new(width: i32, height: i32) -> Self {
Self { width, height }
}
}
fn main() {
let rect = Rectangle::new(3, 4);
// `area` is not implemented for `Rectangle`, so this should not suggest
let _ = rect::area();
//~^ ERROR failed to resolve: use of undeclared crate or module `rect`
}

View file

@ -0,0 +1,9 @@
error[E0433]: failed to resolve: use of undeclared crate or module `rect`
--> $DIR/issue-101749-2.rs:14:13
|
LL | let _ = rect::area();
| ^^^^ use of undeclared crate or module `rect`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0433`.

View file

@ -0,0 +1,19 @@
// run-rustfix
struct Rectangle {
width: i32,
height: i32,
}
impl Rectangle {
fn new(width: i32, height: i32) -> Self {
Self { width, height }
}
fn area(&self) -> i32 {
self.height * self.width
}
}
fn main() {
let rect = Rectangle::new(3, 4);
let _ = rect.area();
//~^ ERROR failed to resolve: use of undeclared crate or module `rect`
}

View file

@ -0,0 +1,19 @@
// run-rustfix
struct Rectangle {
width: i32,
height: i32,
}
impl Rectangle {
fn new(width: i32, height: i32) -> Self {
Self { width, height }
}
fn area(&self) -> i32 {
self.height * self.width
}
}
fn main() {
let rect = Rectangle::new(3, 4);
let _ = rect::area();
//~^ ERROR failed to resolve: use of undeclared crate or module `rect`
}

View file

@ -0,0 +1,14 @@
error[E0433]: failed to resolve: use of undeclared crate or module `rect`
--> $DIR/issue-101749.rs:17:13
|
LL | let _ = rect::area();
| ^^^^ use of undeclared crate or module `rect`
|
help: you may have meant to call an instance method
|
LL | let _ = rect.area();
| ~
error: aborting due to previous error
For more information about this error, try `rustc --explain E0433`.

View file

@ -1,15 +1,3 @@
error[E0433]: failed to resolve: `Self` is only available in impls, traits, and type definitions
--> $DIR/issue-24968.rs:21:19
|
LL | const FOO2: u32 = Self::bar();
| ^^^^ `Self` is only available in impls, traits, and type definitions
error[E0433]: failed to resolve: `Self` is only available in impls, traits, and type definitions
--> $DIR/issue-24968.rs:27:22
|
LL | static FOO_S2: u32 = Self::bar();
| ^^^^ `Self` is only available in impls, traits, and type definitions
error[E0411]: cannot find type `Self` in this scope
--> $DIR/issue-24968.rs:3:11
|
@ -51,6 +39,18 @@ LL | static FOO_S: Self = 0;
| |
| `Self` not allowed in a static item
error[E0433]: failed to resolve: `Self` is only available in impls, traits, and type definitions
--> $DIR/issue-24968.rs:21:19
|
LL | const FOO2: u32 = Self::bar();
| ^^^^ `Self` is only available in impls, traits, and type definitions
error[E0433]: failed to resolve: `Self` is only available in impls, traits, and type definitions
--> $DIR/issue-24968.rs:27:22
|
LL | static FOO_S2: u32 = Self::bar();
| ^^^^ `Self` is only available in impls, traits, and type definitions
error: aborting due to 7 previous errors
Some errors have detailed explanations: E0411, E0433.

View file

@ -1,3 +1,24 @@
error[E0433]: failed to resolve: could not find `Struc` in `module`
--> $DIR/typo-suggestion-mistyped-in-path.rs:35:13
|
LL | module::Struc::foo();
| ^^^^^
| |
| could not find `Struc` in `module`
| help: a struct with a similar name exists: `Struct`
error[E0599]: no function or associated item named `fob` found for struct `Struct` in the current scope
--> $DIR/typo-suggestion-mistyped-in-path.rs:23:13
|
LL | struct Struct;
| ------------- function or associated item `fob` not found for this struct
...
LL | Struct::fob();
| ^^^
| |
| function or associated item not found in `Struct`
| help: there is an associated function with a similar name: `foo`
error[E0433]: failed to resolve: use of undeclared type `Struc`
--> $DIR/typo-suggestion-mistyped-in-path.rs:27:5
|
@ -18,15 +39,6 @@ help: there is a crate or module with a similar name
LL | module::foo();
| ~~~~~~
error[E0433]: failed to resolve: could not find `Struc` in `module`
--> $DIR/typo-suggestion-mistyped-in-path.rs:35:13
|
LL | module::Struc::foo();
| ^^^^^
| |
| could not find `Struc` in `module`
| help: a struct with a similar name exists: `Struct`
error[E0433]: failed to resolve: use of undeclared type `Trai`
--> $DIR/typo-suggestion-mistyped-in-path.rs:39:5
|
@ -36,18 +48,6 @@ LL | Trai::foo();
| use of undeclared type `Trai`
| help: a trait with a similar name exists: `Trait`
error[E0599]: no function or associated item named `fob` found for struct `Struct` in the current scope
--> $DIR/typo-suggestion-mistyped-in-path.rs:23:13
|
LL | struct Struct;
| ------------- function or associated item `fob` not found for this struct
...
LL | Struct::fob();
| ^^^
| |
| function or associated item not found in `Struct`
| help: there is an associated function with a similar name: `foo`
error: aborting due to 5 previous errors
Some errors have detailed explanations: E0433, E0599.

View file

@ -1,9 +1,3 @@
error[E0433]: failed to resolve: use of undeclared type `GooMap`
--> $DIR/use_suggestion.rs:3:14
|
LL | let x2 = GooMap::new();
| ^^^^^^ use of undeclared type `GooMap`
error[E0433]: failed to resolve: use of undeclared type `HashMap`
--> $DIR/use_suggestion.rs:2:14
|
@ -32,6 +26,12 @@ error[E0412]: cannot find type `GooMap` in this scope
LL | let y2: GooMap;
| ^^^^^^ not found in this scope
error[E0433]: failed to resolve: use of undeclared type `GooMap`
--> $DIR/use_suggestion.rs:3:14
|
LL | let x2 = GooMap::new();
| ^^^^^^ use of undeclared type `GooMap`
error: aborting due to 4 previous errors
Some errors have detailed explanations: E0412, E0433.

View file

@ -20,12 +20,6 @@ help: there is a crate or module with a similar name
LL | use bar::bar;
| ~~~
error[E0433]: failed to resolve: use of undeclared crate or module `bar`
--> $DIR/crate-or-module-typo.rs:6:20
|
LL | pub fn bar() { bar::baz(); }
| ^^^ use of undeclared crate or module `bar`
error[E0433]: failed to resolve: use of undeclared crate or module `st`
--> $DIR/crate-or-module-typo.rs:14:10
|
@ -37,6 +31,12 @@ help: there is a crate or module with a similar name
LL | bar: std::cell::Cell<bool>
| ~~~
error[E0433]: failed to resolve: use of undeclared crate or module `bar`
--> $DIR/crate-or-module-typo.rs:6:20
|
LL | pub fn bar() { bar::baz(); }
| ^^^ use of undeclared crate or module `bar`
error: aborting due to 4 previous errors
Some errors have detailed explanations: E0432, E0433.