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() {
    let MyNumber = 2; // error: allow(non_snake_case) overruled by outer
                      //        forbid(non_snake_case)
}
Run

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!
}
Run

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

#![forbid(non_snake_case)]

fn main() {
    let my_number = 2;
}
Run

Back to list of error codes