docs/test: add UI test and long-form error docs for E0462
This commit is contained in:
parent
d6da428f34
commit
66ed1812cf
@ -244,6 +244,7 @@
|
|||||||
E0458: include_str!("./error_codes/E0458.md"),
|
E0458: include_str!("./error_codes/E0458.md"),
|
||||||
E0459: include_str!("./error_codes/E0459.md"),
|
E0459: include_str!("./error_codes/E0459.md"),
|
||||||
E0460: include_str!("./error_codes/E0460.md"),
|
E0460: include_str!("./error_codes/E0460.md"),
|
||||||
|
E0462: include_str!("./error_codes/E0462.md"),
|
||||||
E0463: include_str!("./error_codes/E0463.md"),
|
E0463: include_str!("./error_codes/E0463.md"),
|
||||||
E0464: include_str!("./error_codes/E0464.md"),
|
E0464: include_str!("./error_codes/E0464.md"),
|
||||||
E0466: include_str!("./error_codes/E0466.md"),
|
E0466: include_str!("./error_codes/E0466.md"),
|
||||||
@ -594,7 +595,6 @@
|
|||||||
// E0427, // merged into 530
|
// E0427, // merged into 530
|
||||||
// E0456, // plugin `..` is not available for triple `..`
|
// E0456, // plugin `..` is not available for triple `..`
|
||||||
E0461, // couldn't find crate `..` with expected target triple ..
|
E0461, // couldn't find crate `..` with expected target triple ..
|
||||||
E0462, // found staticlib `..` instead of rlib or dylib
|
|
||||||
E0465, // multiple .. candidates for `..` found
|
E0465, // multiple .. candidates for `..` found
|
||||||
// E0467, // removed
|
// E0467, // removed
|
||||||
// E0470, // removed
|
// E0470, // removed
|
||||||
|
32
compiler/rustc_error_codes/src/error_codes/E0462.md
Normal file
32
compiler/rustc_error_codes/src/error_codes/E0462.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Found `staticlib` `..` instead of `rlib` or `dylib`.
|
||||||
|
|
||||||
|
Consider the following two files:
|
||||||
|
|
||||||
|
`a.rs`
|
||||||
|
```ignore (cannot-link-with-other-tests)
|
||||||
|
#![crate_type = "staticlib"]
|
||||||
|
|
||||||
|
fn foo() {}
|
||||||
|
```
|
||||||
|
|
||||||
|
`main.rs`
|
||||||
|
```ignore (cannot-link-with-other-tests)
|
||||||
|
extern crate a;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
a::foo();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Crate `a` is compiled as a `staticlib`. A `staticlib` is a system-dependant
|
||||||
|
library only intended for linking with non-Rust applications (C programs). Note
|
||||||
|
that `staticlib`s include all upstream dependencies (`core`, `std`, other user
|
||||||
|
dependencies, etc) which makes them significantly larger than `dylib`s:
|
||||||
|
prefer `staticlib` for linking with C programs. Learn more about different
|
||||||
|
`crate_type`s in [this section of the Reference](../reference/linkage.html).
|
||||||
|
|
||||||
|
This error can be fixed by:
|
||||||
|
* Using [Cargo](../cargo/index.html), the Rust package manager, automatically
|
||||||
|
fixing this issue.
|
||||||
|
* Recompiling the crate as a `rlib` or `dylib`; formats suitable for Rust
|
||||||
|
linking.
|
11
src/test/ui/error-codes/E0462.rs
Normal file
11
src/test/ui/error-codes/E0462.rs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// aux-build:found-staticlib.rs
|
||||||
|
|
||||||
|
// normalize-stderr-test: "\.nll/" -> "/"
|
||||||
|
// normalize-stderr-test: "\\\?\\" -> ""
|
||||||
|
// normalize-stderr-test: "(lib)?found_staticlib\.[a-z]+" -> "libfound_staticlib.somelib"
|
||||||
|
|
||||||
|
extern crate found_staticlib; //~ ERROR E0462
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
found_staticlib::foo();
|
||||||
|
}
|
13
src/test/ui/error-codes/E0462.stderr
Normal file
13
src/test/ui/error-codes/E0462.stderr
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
error[E0462]: found staticlib `found_staticlib` instead of rlib or dylib
|
||||||
|
--> $DIR/E0462.rs:7:1
|
||||||
|
|
|
||||||
|
LL | extern crate found_staticlib;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: the following crate versions were found:
|
||||||
|
crate `found_staticlib`: $TEST_BUILD_DIR/error-codes/E0462/auxiliary/libfound_staticlib.somelib
|
||||||
|
= help: please recompile that crate using --crate-type lib
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0462`.
|
4
src/test/ui/error-codes/auxiliary/found-staticlib.rs
Normal file
4
src/test/ui/error-codes/auxiliary/found-staticlib.rs
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
// no-prefer-dynamic
|
||||||
|
#![crate_type = "staticlib"]
|
||||||
|
|
||||||
|
pub fn foo() {}
|
@ -11,8 +11,8 @@
|
|||||||
|
|
||||||
// A few of those error codes can't be tested but all the others can and *should* be tested!
|
// A few of those error codes can't be tested but all the others can and *should* be tested!
|
||||||
const EXEMPTED_FROM_TEST: &[&str] = &[
|
const EXEMPTED_FROM_TEST: &[&str] = &[
|
||||||
"E0313", "E0461", "E0462", "E0465", "E0476", "E0490", "E0514", "E0519", "E0523", "E0554",
|
"E0313", "E0461", "E0465", "E0476", "E0490", "E0514", "E0519", "E0523", "E0554", "E0640",
|
||||||
"E0640", "E0717", "E0729", "E0789",
|
"E0717", "E0729", "E0789",
|
||||||
];
|
];
|
||||||
|
|
||||||
// Some error codes don't have any tests apparently...
|
// Some error codes don't have any tests apparently...
|
||||||
|
Loading…
Reference in New Issue
Block a user