diff options
| author | bors <bors@rust-lang.org> | 2021-10-13 10:38:12 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-10-13 10:38:12 +0000 |
| commit | 5728bd64b49b0e78d0180efed75ef0870ae60266 (patch) | |
| tree | 971aa79ac6cdd03061cb6ea2130f28381b03d61f /compiler/rustc_error_codes/src | |
| parent | a16f686e4a0ea15dcd3b5aa3db7b1cba27bb9453 (diff) | |
| parent | bf2d2e559725d57bcc225e1950f228478e06d52b (diff) | |
| download | rust-5728bd64b49b0e78d0180efed75ef0870ae60266.tar.gz rust-5728bd64b49b0e78d0180efed75ef0870ae60266.zip | |
Auto merge of #89587 - camelid:all-candidates, r=petrochenkov
Include rmeta candidates in "multiple matching crates" error Only dylib and rlib candidates were included in the error. I think the reason is that at the time this error was originally implemented, rmeta crate sources were represented different from dylib and rlib sources. I wrote up more detailed analysis in [this comment][1]. The new version of the code is also a bit easier to read and should be more robust to future changes since it uses `CrateSources::paths()`. I also changed the code to sort the candidates to make the output deterministic; added full stderr tests for the error; and added a long error code explanation. [1]: https://github.com/rust-lang/rust/pull/88675#issuecomment-935282436 cc `@Mark-Simulacrum` `@jyn514`
Diffstat (limited to 'compiler/rustc_error_codes/src')
| -rw-r--r-- | compiler/rustc_error_codes/src/error_codes.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0464.md | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes.rs b/compiler/rustc_error_codes/src/error_codes.rs index 1b4b58314b3..27b2bfbaf47 100644 --- a/compiler/rustc_error_codes/src/error_codes.rs +++ b/compiler/rustc_error_codes/src/error_codes.rs @@ -237,6 +237,7 @@ E0455: include_str!("./error_codes/E0455.md"), E0458: include_str!("./error_codes/E0458.md"), E0459: include_str!("./error_codes/E0459.md"), E0463: include_str!("./error_codes/E0463.md"), +E0464: include_str!("./error_codes/E0464.md"), E0466: include_str!("./error_codes/E0466.md"), E0468: include_str!("./error_codes/E0468.md"), E0469: include_str!("./error_codes/E0469.md"), @@ -587,7 +588,6 @@ E0785: include_str!("./error_codes/E0785.md"), E0460, // found possibly newer version of crate `..` E0461, // couldn't find crate `..` with expected target triple .. E0462, // found staticlib `..` instead of rlib or dylib - E0464, // multiple matching crates for `..` E0465, // multiple .. candidates for `..` found // E0467, removed // E0470, removed diff --git a/compiler/rustc_error_codes/src/error_codes/E0464.md b/compiler/rustc_error_codes/src/error_codes/E0464.md new file mode 100644 index 00000000000..9108d856c9d --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0464.md @@ -0,0 +1,6 @@ +The compiler found multiple library files with the requested crate name. + +This error can occur in several different cases -- for example, when using +`extern crate` or passing `--extern` options without crate paths. It can also be +caused by caching issues with the build directory, in which case `cargo clean` +may help. |
