docs: add long-form error docs for E0514

This commit is contained in:
Ezra Shaw 2022-12-23 13:11:50 +13:00
parent da7fcc7a09
commit 726519d4f5
No known key found for this signature in database
GPG Key ID: 17CD5C2ADAE0D344
2 changed files with 34 additions and 1 deletions

View File

@ -276,6 +276,7 @@
E0510: include_str!("./error_codes/E0510.md"),
E0511: include_str!("./error_codes/E0511.md"),
E0512: include_str!("./error_codes/E0512.md"),
E0514: include_str!("./error_codes/E0514.md"),
E0515: include_str!("./error_codes/E0515.md"),
E0516: include_str!("./error_codes/E0516.md"),
E0517: include_str!("./error_codes/E0517.md"),
@ -616,7 +617,6 @@
// E0488, // lifetime of variable does not enclose its declaration
// E0489, // type/lifetime parameter not in scope here
E0490, // a value of type `..` is borrowed for too long
E0514, // metadata version mismatch
E0523, // two dependencies have same (crate-name, disambiguator) but different SVH
// E0526, // shuffle indices are not constant
// E0540, // multiple rustc_deprecated attributes

View File

@ -0,0 +1,33 @@
Dependency compiled with different version of `rustc`.
Example of erroneous code:
`a.rs`
```ignore (cannot-link-with-other-tests)
// compiled with stable `rustc`
#[crate_type = "lib"]
```
`b.rs`
```ignore (cannot-link-with-other-tests)
// compiled with nightly `rustc`
#[crate_type = "lib"]
extern crate a; // error: found crate `a` compiled by an incompatible version
// of rustc
```
This error is caused when the version of `rustc` used to compile a crate, as
stored in the binary's metadata, differs from the version of one of its
dependencies. Many parts of Rust binaries are considered unstable. For
instance, the Rust ABI is not stable between compiler versions. This means that
the compiler cannot be sure about *how* to call a function between compiler
versions, and therefore this error occurs.
This error can be fixed by:
* Using [Cargo](../cargo/index.html), the Rust package manager and
[Rustup](https://rust-lang.github.io/rustup/), the Rust toolchain installer,
automatically fixing this issue.
* Recompiling the crates with a uniform `rustc` version.