Error code E0542
The since
value is missing in a stability attribute.
Erroneous code example:
#![allow(unused)] #![feature(staged_api)] #![allow(internal_features)] #![stable(since = "1.0.0", feature = "test")] fn main() { #[stable(feature = "_stable_fn")] // invalid fn _stable_fn() {} #[rustc_const_stable(feature = "_stable_const_fn")] // invalid const fn _stable_const_fn() {} #[stable(feature = "_deprecated_fn", since = "0.1.0")] #[deprecated( note = "explanation for deprecation" )] // invalid fn _deprecated_fn() {} }
To fix this issue, you need to provide the since
field. Example:
#![allow(unused)] #![feature(staged_api)] #![allow(internal_features)] #![stable(since = "1.0.0", feature = "test")] fn main() { #[stable(feature = "_stable_fn", since = "1.0.0")] // ok! fn _stable_fn() {} #[stable(feature = "_stable_const_fn", since = "1.0.0")] #[rustc_const_stable(feature = "_stable_const_fn", since = "1.0.0")] // ok! const fn _stable_const_fn() {} #[stable(feature = "_deprecated_fn", since = "0.1.0")] #[deprecated( since = "1.0.0", note = "explanation for deprecation" )] // ok! fn _deprecated_fn() {} }
See the How Rust is Made and “Nightly Rust” appendix of the Book and the Stability attributes section of the Rustc Dev Guide for more details.