## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Error code E0522

The lang attribute was used in an invalid context.

Erroneous code example:

    #![allow(unused)]
    #![feature(lang_items)]

    fn main() {
    #[lang = "cookie"]
    fn cookie() -> ! { // error: definition of an unknown lang item: `cookie`
        loop {}
    }
    }

The lang attribute is intended for marking special items that are built-in to Rust itself. This includes special traits (like `Copy` and `Sized`) that affect how the compiler behaves, as well as special functions that may be automatically invoked (such as the handler for out-of-bounds accesses when indexing a slice).