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;
}