From be159379f69ea86a1c7a9de2b39adbb699068fa5 Mon Sep 17 00:00:00 2001 From: Jesus Rubio Date: Sat, 6 Feb 2021 16:42:34 +0100 Subject: [PATCH 1/4] Add long error explanation for E0542 --- compiler/rustc_error_codes/src/error_codes.rs | 2 +- .../src/error_codes/E0542.md | 47 +++++++++++++++++++ .../stability-attribute-sanity.stderr | 2 +- 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 compiler/rustc_error_codes/src/error_codes/E0542.md diff --git a/compiler/rustc_error_codes/src/error_codes.rs b/compiler/rustc_error_codes/src/error_codes.rs index 1ed43669ad8..849ef18fb90 100644 --- a/compiler/rustc_error_codes/src/error_codes.rs +++ b/compiler/rustc_error_codes/src/error_codes.rs @@ -285,6 +285,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"), E0546: include_str!("./error_codes/E0546.md"), E0550: include_str!("./error_codes/E0550.md"), E0551: include_str!("./error_codes/E0551.md"), @@ -602,7 +603,6 @@ E0523, // E0526, // shuffle indices are not constant // E0540, // multiple rustc_deprecated attributes - E0542, // missing 'since' E0543, // missing 'reason' E0544, // multiple stability levels E0545, // incorrect 'issue' diff --git a/compiler/rustc_error_codes/src/error_codes/E0542.md b/compiler/rustc_error_codes/src/error_codes/E0542.md new file mode 100644 index 00000000000..4ac08660fad --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0542.md @@ -0,0 +1,47 @@ +A feature since is missing. + +Erroneous code example: + +```compile_fail,E0542 +#![feature(staged_api)] +#![stable(since = "1.0.0", feature = "test")] + +#[stable(feature = "_stable_fn")] // invalid +fn _stable_fn() {} + +#[rustc_const_stable(feature = "_stable_const_fn")] // invalid +fn _stable_const_fn() {} + +#[stable(feature = "_deprecated_fn", since = "0.1.0")] +#[rustc_deprecated( // invalid + reason = "explanation for deprecation" +)] +fn _deprecated_fn() {} +``` + +To fix the issue you need to provide the since field of the feature. + +``` +#![feature(staged_api)] +#![stable(since = "1.0.0", feature = "test")] + +#[stable(feature = "_stable_fn", since = "1.0.0")] +fn _stable_fn() {} + +#[rustc_const_stable(feature = "_stable_const_fn", since = "1.0.0")] +fn _stable_const_fn() {} + +#[stable(feature = "_deprecated_fn", since = "0.1.0")] +#[rustc_deprecated( + since = "1.0.0", + reason = "explanation for deprecation" +)] +fn _deprecated_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/stability-attribute/stability-attribute-sanity.stderr b/src/test/ui/stability-attribute/stability-attribute-sanity.stderr index ee9a93359f0..151b96b8b5a 100644 --- a/src/test/ui/stability-attribute/stability-attribute-sanity.stderr +++ b/src/test/ui/stability-attribute/stability-attribute-sanity.stderr @@ -116,5 +116,5 @@ LL | #[rustc_deprecated(since = "a", reason = "text")] error: aborting due to 19 previous errors -Some errors have detailed explanations: E0539, E0541, E0546, E0550. +Some errors have detailed explanations: E0539, E0541, E0542, E0546, E0550. For more information about an error, try `rustc --explain E0539`. From 956c81355a6982bcf5a072c24ffa7b47f0315c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Rubio?= Date: Sat, 6 Feb 2021 17:39:11 +0100 Subject: [PATCH 2/4] Update compiler/rustc_error_codes/src/error_codes/E0542.md Co-authored-by: Guillaume Gomez --- compiler/rustc_error_codes/src/error_codes/E0542.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_error_codes/src/error_codes/E0542.md b/compiler/rustc_error_codes/src/error_codes/E0542.md index 4ac08660fad..01c070009e8 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0542.md +++ b/compiler/rustc_error_codes/src/error_codes/E0542.md @@ -1,4 +1,5 @@ -A feature since is missing. +The `since` value is missing in a stability attribute. + Erroneous code example: From 9be5d2d01f3600af0664279d8d8facaa2bb8bfbb Mon Sep 17 00:00:00 2001 From: Jesus Rubio Date: Sat, 6 Feb 2021 18:05:21 +0100 Subject: [PATCH 3/4] Format fixes --- compiler/rustc_error_codes/src/error_codes/E0542.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/compiler/rustc_error_codes/src/error_codes/E0542.md b/compiler/rustc_error_codes/src/error_codes/E0542.md index 01c070009e8..929b21b8b12 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0542.md +++ b/compiler/rustc_error_codes/src/error_codes/E0542.md @@ -1,6 +1,5 @@ The `since` value is missing in a stability attribute. - Erroneous code example: ```compile_fail,E0542 @@ -20,7 +19,7 @@ fn _stable_const_fn() {} fn _deprecated_fn() {} ``` -To fix the issue you need to provide the since field of the feature. +To fix the issue you need to provide the `since` field. ``` #![feature(staged_api)] From 023c6d2e041da85313b7190a0d10285c3632ade1 Mon Sep 17 00:00:00 2001 From: Jesus Rubio Date: Sat, 6 Feb 2021 19:41:03 +0100 Subject: [PATCH 4/4] Comments updated to keep the consistency --- compiler/rustc_error_codes/src/error_codes/E0542.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compiler/rustc_error_codes/src/error_codes/E0542.md b/compiler/rustc_error_codes/src/error_codes/E0542.md index 929b21b8b12..dbbc34a71be 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0542.md +++ b/compiler/rustc_error_codes/src/error_codes/E0542.md @@ -13,9 +13,9 @@ fn _stable_fn() {} fn _stable_const_fn() {} #[stable(feature = "_deprecated_fn", since = "0.1.0")] -#[rustc_deprecated( // invalid +#[rustc_deprecated( reason = "explanation for deprecation" -)] +)] // invalid fn _deprecated_fn() {} ``` @@ -25,17 +25,17 @@ To fix the issue you need to provide the `since` field. #![feature(staged_api)] #![stable(since = "1.0.0", feature = "test")] -#[stable(feature = "_stable_fn", since = "1.0.0")] +#[stable(feature = "_stable_fn", since = "1.0.0")] // ok! fn _stable_fn() {} -#[rustc_const_stable(feature = "_stable_const_fn", since = "1.0.0")] +#[rustc_const_stable(feature = "_stable_const_fn", since = "1.0.0")] // ok! fn _stable_const_fn() {} #[stable(feature = "_deprecated_fn", since = "0.1.0")] #[rustc_deprecated( since = "1.0.0", reason = "explanation for deprecation" -)] +)] // ok! fn _deprecated_fn() {} ```