From 4d33d41ef3a3a6f01ab7211b5fc6acbd758bf619 Mon Sep 17 00:00:00 2001 From: Jesus Rubio Date: Mon, 8 Feb 2021 18:25:05 +0100 Subject: [PATCH 1/3] Add long explanation for E0547 --- compiler/rustc_error_codes/src/error_codes.rs | 2 +- .../src/error_codes/E0547.md | 27 +++++++++++++++++++ .../stability-attribute-sanity.stderr | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 compiler/rustc_error_codes/src/error_codes/E0547.md diff --git a/compiler/rustc_error_codes/src/error_codes.rs b/compiler/rustc_error_codes/src/error_codes.rs index 849ef18fb90cb..d01c162b0c864 100644 --- a/compiler/rustc_error_codes/src/error_codes.rs +++ b/compiler/rustc_error_codes/src/error_codes.rs @@ -287,6 +287,7 @@ 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"), +E0547: include_str!("./error_codes/E0547.md"), E0550: include_str!("./error_codes/E0550.md"), E0551: include_str!("./error_codes/E0551.md"), E0552: include_str!("./error_codes/E0552.md"), @@ -606,7 +607,6 @@ E0781: include_str!("./error_codes/E0781.md"), E0543, // missing 'reason' E0544, // multiple stability levels E0545, // incorrect 'issue' - E0547, // missing '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/E0547.md b/compiler/rustc_error_codes/src/error_codes/E0547.md new file mode 100644 index 0000000000000..7a71985004040 --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0547.md @@ -0,0 +1,27 @@ +#![stable(since = "1.0.0", feature = "test")] +#[unstable(feature = "_unstable_fn")] // invalid +fn _unstable_fn() {} +#[rustc_const_unstable(feature = "_unstable_const_fn")] // invalid +fn _unstable_const_fn() {} +``` + +To fix the issue you need to provide the `issue` field. + +``` +#![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 = "none" +)] // 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/stability-attribute/stability-attribute-sanity.stderr b/src/test/ui/stability-attribute/stability-attribute-sanity.stderr index 151b96b8b5a66..674139f4afcce 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, E0542, E0546, E0550. +Some errors have detailed explanations: E0539, E0541, E0542, E0546, E0547, E0550. For more information about an error, try `rustc --explain E0539`. From 7b84b62d290f9776f8ee8d327b38398a27f923f9 Mon Sep 17 00:00:00 2001 From: Jesus Rubio Date: Tue, 9 Feb 2021 14:09:19 +0100 Subject: [PATCH 2/3] Lost text re-added --- compiler/rustc_error_codes/src/error_codes/E0547.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/compiler/rustc_error_codes/src/error_codes/E0547.md b/compiler/rustc_error_codes/src/error_codes/E0547.md index 7a71985004040..ca14f3865e192 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0547.md +++ b/compiler/rustc_error_codes/src/error_codes/E0547.md @@ -1,6 +1,14 @@ +The `issue` value is missing in a stability attribute. + +Erroneous code example: + +```compile_fail,E0547 +#![feature(staged_api)] #![stable(since = "1.0.0", feature = "test")] + #[unstable(feature = "_unstable_fn")] // invalid fn _unstable_fn() {} + #[rustc_const_unstable(feature = "_unstable_const_fn")] // invalid fn _unstable_const_fn() {} ``` @@ -10,8 +18,10 @@ To fix the issue you need to provide the `issue` field. ``` #![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 = "none" From 8fbdd2d15ebbff9d79e47f1d834c639e6f5e39f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Rubio?= Date: Tue, 9 Feb 2021 14:13:40 +0100 Subject: [PATCH 3/3] Update compiler/rustc_error_codes/src/error_codes/E0547.md Co-authored-by: Guillaume Gomez --- compiler/rustc_error_codes/src/error_codes/E0547.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/rustc_error_codes/src/error_codes/E0547.md b/compiler/rustc_error_codes/src/error_codes/E0547.md index ca14f3865e192..1aa4b35424884 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0547.md +++ b/compiler/rustc_error_codes/src/error_codes/E0547.md @@ -13,7 +13,7 @@ fn _unstable_fn() {} fn _unstable_const_fn() {} ``` -To fix the issue you need to provide the `issue` field. +To fix this issue, you need to provide the `issue` field. Example: ``` #![feature(staged_api)]