New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add long explanation for E0453, lint attribute overruled by outer forbid #34242
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1444,6 +1444,51 @@ lint name). Ensure the attribute is of this form: | |
``` | ||
"##, | ||
|
||
E0453: r##" | ||
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: | ||
|
||
```compile_fail | ||
#![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) | ||
} | ||
``` | ||
|
||
The `forbid` lint setting makes code that fails the lint check result in a | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a bit hard to read. Could you rewrite it please? For example: "The There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Compilation warning" may not be the most strictly accurate phrase—the lint check emits a compilation warning if it's set to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. But I do think we want to explicitly contrast |
||
compilation-terminating error (like `deny`), but also prevents itself from | ||
being overridden by inner attributes. | ||
|
||
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! | ||
} | ||
``` | ||
|
||
Alternatively, edit the code to pass the lint check, and remove the overruled | ||
attribute: | ||
|
||
``` | ||
#![forbid(non_snake_case)] | ||
|
||
fn main() { | ||
let my_number = 2; | ||
} | ||
``` | ||
"##, | ||
|
||
E0496: r##" | ||
A lifetime name is shadowing another lifetime name. Erroneous code example: | ||
|
||
|
@@ -1628,7 +1673,6 @@ register_diagnostics! { | |
E0314, // closure outlives stack frame | ||
E0315, // cannot invoke closure outside of its lifetime | ||
E0316, // nested quantification of lifetimes | ||
E0453, // overruled by outer forbid | ||
E0473, // dereference of reference outside its lifetime | ||
E0474, // captured variable `..` does not outlive the enclosing closure | ||
E0475, // index of slice outside its lifetime | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please indent the error comment like this: