diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-02-16 19:21:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-16 19:21:19 +0100 |
| commit | cdab137bd44a12da1020444fb75efb37fd77f114 (patch) | |
| tree | 3d2796b8b5aa225c8011b719c88b43440e4899fb | |
| parent | 73d6b603a7e8b69634b004de2a9ddbfe99e684c4 (diff) | |
| parent | 8192793d505dc9d665446792e44a9d5f7f357860 (diff) | |
| download | rust-cdab137bd44a12da1020444fb75efb37fd77f114.tar.gz rust-cdab137bd44a12da1020444fb75efb37fd77f114.zip | |
Rollup merge of #82161 - jesusprubio:add-long-explanation-e0545, r=GuillaumeGomez
Add long explanation for E0545 Helps with #61137
4 files changed, 38 insertions, 2 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes.rs b/compiler/rustc_error_codes/src/error_codes.rs index d01c162b0c8..cccc0e05600 100644 --- a/compiler/rustc_error_codes/src/error_codes.rs +++ b/compiler/rustc_error_codes/src/error_codes.rs @@ -286,6 +286,7 @@ E0538: include_str!("./error_codes/E0538.md"), E0539: include_str!("./error_codes/E0539.md"), E0541: include_str!("./error_codes/E0541.md"), E0542: include_str!("./error_codes/E0542.md"), +E0545: include_str!("./error_codes/E0545.md"), E0546: include_str!("./error_codes/E0546.md"), E0547: include_str!("./error_codes/E0547.md"), E0550: include_str!("./error_codes/E0550.md"), @@ -606,7 +607,6 @@ E0781: include_str!("./error_codes/E0781.md"), // E0540, // multiple rustc_deprecated attributes E0543, // missing 'reason' E0544, // multiple stability levels - E0545, // incorrect 'issue' // E0548, // replaced with a generic attribute input check // rustc_deprecated attribute must be paired with either stable or unstable // attribute diff --git a/compiler/rustc_error_codes/src/error_codes/E0545.md b/compiler/rustc_error_codes/src/error_codes/E0545.md new file mode 100644 index 00000000000..9fb935a3ab1 --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0545.md @@ -0,0 +1,35 @@ +The `issue` value is incorrect in a stability attribute. + +Erroneous code example: + +```compile_fail,E0545 +#![feature(staged_api)] +#![stable(since = "1.0.0", feature = "test")] + +#[unstable(feature = "_unstable_fn", issue = "0")] // invalid +fn _unstable_fn() {} + +#[rustc_const_unstable(feature = "_unstable_const_fn", issue = "0")] // invalid +fn _unstable_const_fn() {} +``` + +To fix this issue, you need to provide a correct value in the `issue` field. +Example: + +``` +#![feature(staged_api)] +#![stable(since = "1.0.0", feature = "test")] + +#[unstable(feature = "_unstable_fn", issue = "none")] // ok! +fn _unstable_fn() {} + +#[rustc_const_unstable(feature = "_unstable_const_fn", issue = "1")] // ok! +fn _unstable_const_fn() {} +``` + +See the [How Rust is Made and “Nightly Rust”][how-rust-made-nightly] appendix +of the Book and the [Stability attributes][stability-attributes] section of the +Rustc Dev Guide for more details. + +[how-rust-made-nightly]: https://doc.rust-lang.org/book/appendix-07-nightly-rust.html +[stability-attributes]: https://rustc-dev-guide.rust-lang.org/stability.html diff --git a/src/test/ui/feature-gates/unstable-attribute-allow-issue-0.stderr b/src/test/ui/feature-gates/unstable-attribute-allow-issue-0.stderr index 7bbaf92fc68..4ed42101af8 100644 --- a/src/test/ui/feature-gates/unstable-attribute-allow-issue-0.stderr +++ b/src/test/ui/feature-gates/unstable-attribute-allow-issue-0.stderr @@ -16,3 +16,4 @@ LL | #[unstable(feature = "unstable_test_feature", issue = "something")] error: aborting due to 2 previous errors +For more information about this error, try `rustc --explain E0545`. diff --git a/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr b/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr index 3b826191899..bd7b88da158 100644 --- a/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr +++ b/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr @@ -20,5 +20,5 @@ LL | #[unstable(feature = "a", issue = "no")] error: aborting due to 3 previous errors -Some errors have detailed explanations: E0538, E0541. +Some errors have detailed explanations: E0538, E0541, E0545. For more information about an error, try `rustc --explain E0538`. |
