suggestion for typoed crate or module

avoid suggesting the same name

sort candidates

fix a message

use `opt_def_id` instead of `def_id`

move `find_similarly_named_module_or_crate` to rustc_resolve/src/diagnostics.rs
This commit is contained in:
Takayuki Maeda 2021-09-29 13:55:24 +09:00
parent d7539a6af0
commit f819e6d59c
5 changed files with 109 additions and 1 deletions

View file

@ -3,6 +3,11 @@ error[E0433]: failed to resolve: use of undeclared crate or module `a`
|
LL | a::bar();
| ^ use of undeclared crate or module `a`
|
help: there is a crate or module with a similar name
|
LL | b::bar();
| ~
error: aborting due to previous error

View file

@ -0,0 +1,17 @@
// edition:2018
use st::cell::Cell; //~ ERROR failed to resolve: use of undeclared crate or module `st`
mod bar {
pub fn bar() { bar::baz(); } //~ ERROR failed to resolve: use of undeclared crate or module `bar`
fn baz() {}
}
use bas::bar; //~ ERROR unresolved import `bas`
struct Foo {
bar: st::cell::Cell<bool> //~ ERROR failed to resolve: use of undeclared crate or module `st`
}
fn main() {}

View file

@ -0,0 +1,43 @@
error[E0433]: failed to resolve: use of undeclared crate or module `st`
--> $DIR/crate-or-module-typo.rs:3:5
|
LL | use st::cell::Cell;
| ^^ use of undeclared crate or module `st`
|
help: there is a crate or module with a similar name
|
LL | use std::cell::Cell;
| ~~~
error[E0432]: unresolved import `bas`
--> $DIR/crate-or-module-typo.rs:11:5
|
LL | use bas::bar;
| ^^^ use of undeclared crate or module `bas`
|
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
|
LL | bar: st::cell::Cell<bool>
| ^^ use of undeclared crate or module `st`
|
help: there is a crate or module with a similar name
|
LL | bar: std::cell::Cell<bool>
| ~~~
error: aborting due to 4 previous errors
Some errors have detailed explanations: E0432, E0433.
For more information about an error, try `rustc --explain E0432`.