E0542 - Error codes index
Description: Book listing all Rust error codes

# 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.