fix #101749, use . instead of :: when accessing a method of an object
This commit is contained in:
parent
28a53cdb46
commit
fb004e9a95
15 changed files with 218 additions and 66 deletions
|
|
@ -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`.
|
||||
|
|
|
|||
16
src/test/ui/resolve/issue-101749-2.rs
Normal file
16
src/test/ui/resolve/issue-101749-2.rs
Normal 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`
|
||||
}
|
||||
9
src/test/ui/resolve/issue-101749-2.stderr
Normal file
9
src/test/ui/resolve/issue-101749-2.stderr
Normal 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`.
|
||||
19
src/test/ui/resolve/issue-101749.fixed
Normal file
19
src/test/ui/resolve/issue-101749.fixed
Normal 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`
|
||||
}
|
||||
19
src/test/ui/resolve/issue-101749.rs
Normal file
19
src/test/ui/resolve/issue-101749.rs
Normal 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`
|
||||
}
|
||||
14
src/test/ui/resolve/issue-101749.stderr
Normal file
14
src/test/ui/resolve/issue-101749.stderr
Normal 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`.
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue