Follow guidelines for lint suggestions

This commit is contained in:
Guillaume Gomez 2023-12-12 14:41:24 +01:00
parent 98aa20b0a7
commit bb0fd665a8
4 changed files with 76 additions and 36 deletions

View File

@ -27,7 +27,7 @@
//! ``` //! ```
use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::fx::FxHashMap;
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage}; use rustc_errors::{DiagnosticBuilder, DiagnosticMessage};
use rustc_hir::def_id::DefId; use rustc_hir::def_id::DefId;
use rustc_middle::ty::TyCtxt; use rustc_middle::ty::TyCtxt;
pub(crate) use rustc_resolve::rustdoc::main_body_opts; pub(crate) use rustc_resolve::rustdoc::main_body_opts;
@ -843,7 +843,9 @@ fn error_invalid_codeblock_attr(&self, msg: impl Into<DiagnosticMessage>) {
fn error_invalid_codeblock_attr_with_help( fn error_invalid_codeblock_attr_with_help(
&self, &self,
msg: impl Into<DiagnosticMessage>, msg: impl Into<DiagnosticMessage>,
help: impl Into<SubdiagnosticMessage>, f: impl for<'a, 'b> FnOnce(
&'b mut DiagnosticBuilder<'a, ()>,
) -> &'b mut DiagnosticBuilder<'a, ()>,
) { ) {
if let Some(def_id) = self.def_id.as_local() { if let Some(def_id) = self.def_id.as_local() {
self.tcx.struct_span_lint_hir( self.tcx.struct_span_lint_hir(
@ -851,7 +853,7 @@ fn error_invalid_codeblock_attr_with_help(
self.tcx.local_def_id_to_hir_id(def_id), self.tcx.local_def_id_to_hir_id(def_id),
self.sp, self.sp,
msg, msg,
|lint| lint.help(help), f,
); );
} }
} }
@ -1288,10 +1290,15 @@ fn parse(
if x.starts_with("rust") && x[4..].parse::<Edition>().is_ok() => if x.starts_with("rust") && x[4..].parse::<Edition>().is_ok() =>
{ {
if let Some(extra) = extra { if let Some(extra) = extra {
extra.error_invalid_codeblock_attr(format!( extra.error_invalid_codeblock_attr_with_help(
"unknown attribute `{x}`. Did you mean `edition{}`?", format!("unknown attribute `{x}`"),
&x[4..] |lint| {
)); lint.help(format!(
"there is an attribute with a similar name: `edition{}`",
&x[4..],
))
},
);
} }
} }
LangStringToken::LangToken(x) LangStringToken::LangToken(x)
@ -1338,8 +1345,13 @@ fn parse(
} { } {
if let Some(extra) = extra { if let Some(extra) = extra {
extra.error_invalid_codeblock_attr_with_help( extra.error_invalid_codeblock_attr_with_help(
format!("unknown attribute `{x}`. Did you mean `{flag}`?"), format!("unknown attribute `{x}`"),
help, |lint| {
lint.help(format!(
"there is an attribute with a similar name: `{flag}`"
))
.help(help)
},
); );
} }
} }

View File

@ -1,4 +1,4 @@
error: unknown attribute `compile-fail`. Did you mean `compile_fail`? error: unknown attribute `compile-fail`
--> $DIR/check-attr-test.rs:5:1 --> $DIR/check-attr-test.rs:5:1
| |
5 | / /// foo 5 | / /// foo
@ -8,6 +8,7 @@ error: unknown attribute `compile-fail`. Did you mean `compile_fail`?
9 | | /// ``` 9 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `compile_fail`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully = help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully
note: the lint level is defined here note: the lint level is defined here
--> $DIR/check-attr-test.rs:3:9 --> $DIR/check-attr-test.rs:3:9
@ -15,7 +16,7 @@ note: the lint level is defined here
3 | #![deny(rustdoc::invalid_codeblock_attributes)] 3 | #![deny(rustdoc::invalid_codeblock_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: unknown attribute `compilefail`. Did you mean `compile_fail`? error: unknown attribute `compilefail`
--> $DIR/check-attr-test.rs:5:1 --> $DIR/check-attr-test.rs:5:1
| |
5 | / /// foo 5 | / /// foo
@ -25,9 +26,10 @@ error: unknown attribute `compilefail`. Did you mean `compile_fail`?
9 | | /// ``` 9 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `compile_fail`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully = help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully
error: unknown attribute `comPile_fail`. Did you mean `compile_fail`? error: unknown attribute `comPile_fail`
--> $DIR/check-attr-test.rs:5:1 --> $DIR/check-attr-test.rs:5:1
| |
5 | / /// foo 5 | / /// foo
@ -37,9 +39,10 @@ error: unknown attribute `comPile_fail`. Did you mean `compile_fail`?
9 | | /// ``` 9 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `compile_fail`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully = help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully
error: unknown attribute `should-panic`. Did you mean `should_panic`? error: unknown attribute `should-panic`
--> $DIR/check-attr-test.rs:12:1 --> $DIR/check-attr-test.rs:12:1
| |
12 | / /// bar 12 | / /// bar
@ -49,9 +52,10 @@ error: unknown attribute `should-panic`. Did you mean `should_panic`?
16 | | /// ``` 16 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `should_panic`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running = help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running
error: unknown attribute `shouldpanic`. Did you mean `should_panic`? error: unknown attribute `shouldpanic`
--> $DIR/check-attr-test.rs:12:1 --> $DIR/check-attr-test.rs:12:1
| |
12 | / /// bar 12 | / /// bar
@ -61,9 +65,10 @@ error: unknown attribute `shouldpanic`. Did you mean `should_panic`?
16 | | /// ``` 16 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `should_panic`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running = help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running
error: unknown attribute `shOuld_panic`. Did you mean `should_panic`? error: unknown attribute `shOuld_panic`
--> $DIR/check-attr-test.rs:12:1 --> $DIR/check-attr-test.rs:12:1
| |
12 | / /// bar 12 | / /// bar
@ -73,9 +78,10 @@ error: unknown attribute `shOuld_panic`. Did you mean `should_panic`?
16 | | /// ``` 16 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `should_panic`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running = help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running
error: unknown attribute `no-run`. Did you mean `no_run`? error: unknown attribute `no-run`
--> $DIR/check-attr-test.rs:19:1 --> $DIR/check-attr-test.rs:19:1
| |
19 | / /// foobar 19 | / /// foobar
@ -85,9 +91,10 @@ error: unknown attribute `no-run`. Did you mean `no_run`?
23 | | /// ``` 23 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `no_run`
= help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want) = help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want)
error: unknown attribute `norun`. Did you mean `no_run`? error: unknown attribute `norun`
--> $DIR/check-attr-test.rs:19:1 --> $DIR/check-attr-test.rs:19:1
| |
19 | / /// foobar 19 | / /// foobar
@ -97,9 +104,10 @@ error: unknown attribute `norun`. Did you mean `no_run`?
23 | | /// ``` 23 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `no_run`
= help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want) = help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want)
error: unknown attribute `nO_run`. Did you mean `no_run`? error: unknown attribute `nO_run`
--> $DIR/check-attr-test.rs:19:1 --> $DIR/check-attr-test.rs:19:1
| |
19 | / /// foobar 19 | / /// foobar
@ -109,9 +117,10 @@ error: unknown attribute `nO_run`. Did you mean `no_run`?
23 | | /// ``` 23 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `no_run`
= help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want) = help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want)
error: unknown attribute `test-harness`. Did you mean `test_harness`? error: unknown attribute `test-harness`
--> $DIR/check-attr-test.rs:26:1 --> $DIR/check-attr-test.rs:26:1
| |
26 | / /// b 26 | / /// b
@ -121,9 +130,10 @@ error: unknown attribute `test-harness`. Did you mean `test_harness`?
30 | | /// ``` 30 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
error: unknown attribute `testharness`. Did you mean `test_harness`? error: unknown attribute `testharness`
--> $DIR/check-attr-test.rs:26:1 --> $DIR/check-attr-test.rs:26:1
| |
26 | / /// b 26 | / /// b
@ -133,9 +143,10 @@ error: unknown attribute `testharness`. Did you mean `test_harness`?
30 | | /// ``` 30 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
error: unknown attribute `tesT_harness`. Did you mean `test_harness`? error: unknown attribute `tesT_harness`
--> $DIR/check-attr-test.rs:26:1 --> $DIR/check-attr-test.rs:26:1
| |
26 | / /// b 26 | / /// b
@ -145,6 +156,7 @@ error: unknown attribute `tesT_harness`. Did you mean `test_harness`?
30 | | /// ``` 30 | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
error: aborting due to 12 previous errors error: aborting due to 12 previous errors

View File

@ -1,4 +1,4 @@
error: unknown attribute `compile-fail`. Did you mean `compile_fail`? error: unknown attribute `compile-fail`
--> $DIR/check-attr.rs:3:1 --> $DIR/check-attr.rs:3:1
| |
LL | / /// foo LL | / /// foo
@ -10,6 +10,7 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `compile_fail`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully = help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully
note: the lint level is defined here note: the lint level is defined here
--> $DIR/check-attr.rs:1:9 --> $DIR/check-attr.rs:1:9
@ -17,7 +18,7 @@ note: the lint level is defined here
LL | #![deny(rustdoc::invalid_codeblock_attributes)] LL | #![deny(rustdoc::invalid_codeblock_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: unknown attribute `compilefail`. Did you mean `compile_fail`? error: unknown attribute `compilefail`
--> $DIR/check-attr.rs:3:1 --> $DIR/check-attr.rs:3:1
| |
LL | / /// foo LL | / /// foo
@ -29,9 +30,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `compile_fail`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully = help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully
error: unknown attribute `comPile_fail`. Did you mean `compile_fail`? error: unknown attribute `comPile_fail`
--> $DIR/check-attr.rs:3:1 --> $DIR/check-attr.rs:3:1
| |
LL | / /// foo LL | / /// foo
@ -43,9 +45,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `compile_fail`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully = help: the code block will either not be tested if not marked as a rust one or won't fail if it compiles successfully
error: unknown attribute `should-panic`. Did you mean `should_panic`? error: unknown attribute `should-panic`
--> $DIR/check-attr.rs:13:1 --> $DIR/check-attr.rs:13:1
| |
LL | / /// bar LL | / /// bar
@ -57,9 +60,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `should_panic`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running = help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running
error: unknown attribute `shouldpanic`. Did you mean `should_panic`? error: unknown attribute `shouldpanic`
--> $DIR/check-attr.rs:13:1 --> $DIR/check-attr.rs:13:1
| |
LL | / /// bar LL | / /// bar
@ -71,9 +75,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `should_panic`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running = help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running
error: unknown attribute `sHould_panic`. Did you mean `should_panic`? error: unknown attribute `sHould_panic`
--> $DIR/check-attr.rs:13:1 --> $DIR/check-attr.rs:13:1
| |
LL | / /// bar LL | / /// bar
@ -85,9 +90,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `should_panic`
= help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running = help: the code block will either not be tested if not marked as a rust one or won't fail if it doesn't panic when running
error: unknown attribute `no-run`. Did you mean `no_run`? error: unknown attribute `no-run`
--> $DIR/check-attr.rs:23:1 --> $DIR/check-attr.rs:23:1
| |
LL | / /// foobar LL | / /// foobar
@ -99,9 +105,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `no_run`
= help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want) = help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want)
error: unknown attribute `norun`. Did you mean `no_run`? error: unknown attribute `norun`
--> $DIR/check-attr.rs:23:1 --> $DIR/check-attr.rs:23:1
| |
LL | / /// foobar LL | / /// foobar
@ -113,9 +120,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `no_run`
= help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want) = help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want)
error: unknown attribute `no_Run`. Did you mean `no_run`? error: unknown attribute `no_Run`
--> $DIR/check-attr.rs:23:1 --> $DIR/check-attr.rs:23:1
| |
LL | / /// foobar LL | / /// foobar
@ -127,9 +135,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `no_run`
= help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want) = help: the code block will either not be tested if not marked as a rust one or will be run (which you might not want)
error: unknown attribute `test-harness`. Did you mean `test_harness`? error: unknown attribute `test-harness`
--> $DIR/check-attr.rs:33:1 --> $DIR/check-attr.rs:33:1
| |
LL | / /// b LL | / /// b
@ -141,9 +150,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
error: unknown attribute `testharness`. Did you mean `test_harness`? error: unknown attribute `testharness`
--> $DIR/check-attr.rs:33:1 --> $DIR/check-attr.rs:33:1
| |
LL | / /// b LL | / /// b
@ -155,9 +165,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
error: unknown attribute `teSt_harness`. Did you mean `test_harness`? error: unknown attribute `teSt_harness`
--> $DIR/check-attr.rs:33:1 --> $DIR/check-attr.rs:33:1
| |
LL | / /// b LL | / /// b
@ -169,9 +180,10 @@ LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
error: unknown attribute `rust2018`. Did you mean `edition2018`? error: unknown attribute `rust2018`
--> $DIR/check-attr.rs:43:1 --> $DIR/check-attr.rs:43:1
| |
LL | / /// b LL | / /// b
@ -181,6 +193,8 @@ LL | | /// ```rust2018
LL | | /// boo LL | | /// boo
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
|
= help: there is an attribute with a similar name: `edition2018`
error: aborting due to 13 previous errors error: aborting due to 13 previous errors

View File

@ -22,7 +22,7 @@ note: the lint level is defined here
LL | #![deny(rustdoc::missing_doc_code_examples)] LL | #![deny(rustdoc::missing_doc_code_examples)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: unknown attribute `testharness`. Did you mean `test_harness`? error: unknown attribute `testharness`
--> $DIR/check-fail.rs:8:1 --> $DIR/check-fail.rs:8:1
| |
LL | / //! ```rust,testharness LL | / //! ```rust,testharness
@ -31,6 +31,7 @@ LL | | //! let x = 12;
LL | | //! ``` LL | | //! ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
note: the lint level is defined here note: the lint level is defined here
--> $DIR/check-fail.rs:6:9 --> $DIR/check-fail.rs:6:9
@ -39,7 +40,7 @@ LL | #![deny(rustdoc::all)]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
= note: `#[deny(rustdoc::invalid_codeblock_attributes)]` implied by `#[deny(rustdoc::all)]` = note: `#[deny(rustdoc::invalid_codeblock_attributes)]` implied by `#[deny(rustdoc::all)]`
error: unknown attribute `testharness`. Did you mean `test_harness`? error: unknown attribute `testharness`
--> $DIR/check-fail.rs:17:1 --> $DIR/check-fail.rs:17:1
| |
LL | / /// hello LL | / /// hello
@ -50,6 +51,7 @@ LL | | /// let x = 12;
LL | | /// ``` LL | | /// ```
| |_______^ | |_______^
| |
= help: there is an attribute with a similar name: `test_harness`
= help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function = help: the code block will either not be tested if not marked as a rust one or the code will be wrapped inside a main function
error: aborting due to 4 previous errors error: aborting due to 4 previous errors