diff options
| author | Kornel <kornel@geekhood.net> | 2020-08-27 13:27:14 +0100 |
|---|---|---|
| committer | Kornel <kornel@geekhood.net> | 2020-09-01 18:38:14 +0100 |
| commit | 7ec1de062a1aadef0293bb65e71fbcc7cc24ebfd (patch) | |
| tree | 62d30e2e0f31039bdb4abeb31ec474359e85df42 /compiler | |
| parent | 397db054cb1f3d98e3d2809d25c60f1979cd5a97 (diff) | |
| download | rust-7ec1de062a1aadef0293bb65e71fbcc7cc24ebfd.tar.gz rust-7ec1de062a1aadef0293bb65e71fbcc7cc24ebfd.zip | |
Clarify message about unresolved use
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0433.md | 16 | ||||
| -rw-r--r-- | compiler/rustc_resolve/src/lib.rs | 9 |
2 files changed, 21 insertions, 4 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0433.md b/compiler/rustc_error_codes/src/error_codes/E0433.md index f9e333e8ccd..5a64c13c9af 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0433.md +++ b/compiler/rustc_error_codes/src/error_codes/E0433.md @@ -1,17 +1,27 @@ -An undeclared type or module was used. +An undeclared crate, module, or type was used. Erroneous code example: ```compile_fail,E0433 let map = HashMap::new(); -// error: failed to resolve: use of undeclared type or module `HashMap` +// error: failed to resolve: use of undeclared type `HashMap` ``` Please verify you didn't misspell the type/module's name or that you didn't forget to import it: - ``` use std::collections::HashMap; // HashMap has been imported. let map: HashMap<u32, u32> = HashMap::new(); // So it can be used! ``` + +If you've expected to use a crate name: + +```compile_fail +use ferris_wheel::BigO; +// error: failed to resolve: use of undeclared crate or module `ferris_wheel` +``` + +Make sure the crate has been added as a dependency in `Cargo.toml`. + +To use a module from your current crate, add the `crate::` prefix to the path. diff --git a/compiler/rustc_resolve/src/lib.rs b/compiler/rustc_resolve/src/lib.rs index 5892edf7652..4c06249f779 100644 --- a/compiler/rustc_resolve/src/lib.rs +++ b/compiler/rustc_resolve/src/lib.rs @@ -2407,7 +2407,14 @@ impl<'a> Resolver<'a> { (format!("maybe a missing crate `{}`?", ident), None) } } else if i == 0 { - (format!("use of undeclared type or module `{}`", ident), None) + if ident + .name + .with(|n| n.chars().next().map_or(false, |c| c.is_ascii_uppercase())) + { + (format!("use of undeclared type `{}`", ident), None) + } else { + (format!("use of undeclared crate or module `{}`", ident), None) + } } else { let mut msg = format!("could not find `{}` in `{}`", ident, path[i - 1].ident); |
