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

A lint check attribute was overruled by a `forbid` directive set as an attribute on an enclosing scope, or on the command line with the `-F` option.

Example of erroneous code:

    #![forbid(non_snake_case)]

    #[allow(non_snake_case)]
    fn main() {
        // error: allow(non_snake_case) incompatible with previous forbid
        let MyNumber = 2;
    }

The `forbid` lint setting, like `deny`, turns the corresponding compiler warning into a hard error. Unlike `deny`, `forbid` prevents itself from being overridden by inner attributes.

If you're sure you want to override the lint check, you can change `forbid` to `deny` (or use `-D` instead of `-F` if the `forbid` setting was given as a command-line option) to allow the inner lint check attribute:

    #![deny(non_snake_case)]

    #[allow(non_snake_case)]
    fn main() {
        let MyNumber = 2; // ok!
    }

Otherwise, edit the code to pass the lint check, and remove the overruled attribute:

    #![forbid(non_snake_case)]

    fn main() {
        let my_number = 2;
    }