diff options
| author | bors <bors@rust-lang.org> | 2024-02-18 11:58:57 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-02-18 11:58:57 +0000 |
| commit | 5a5048141100eb96b91e02f22e3dab87962e7a0c (patch) | |
| tree | 64f63d78a410e2060a30307a4464d5b2641d9a33 | |
| parent | 5471e0645a497ab331ae38adc965aa15b74aa8c9 (diff) | |
| parent | d1e8a5956ffd73e65288b447c68ac11a7ac26577 (diff) | |
| download | rust-5a5048141100eb96b91e02f22e3dab87962e7a0c.tar.gz rust-5a5048141100eb96b91e02f22e3dab87962e7a0c.zip | |
Auto merge of #12309 - Tyrubias:fix-allow-pub-under, r=y21
fix: make `#[allow]` work on field for `pub_underscore_fields` Closes #12286 changelog: `#[allow(clippy::pub_underscore_fields)]` now works on linted field
| -rw-r--r-- | clippy_lints/src/pub_underscore_fields.rs | 10 | ||||
| -rw-r--r-- | tests/ui-toml/pub_underscore_fields/pub_underscore_fields.rs | 6 |
2 files changed, 12 insertions, 4 deletions
diff --git a/clippy_lints/src/pub_underscore_fields.rs b/clippy_lints/src/pub_underscore_fields.rs index 88b5a6cfe2a..d20d4a605a2 100644 --- a/clippy_lints/src/pub_underscore_fields.rs +++ b/clippy_lints/src/pub_underscore_fields.rs @@ -1,6 +1,6 @@ use clippy_config::types::PubUnderscoreFieldsBehaviour; use clippy_utils::attrs::is_doc_hidden; -use clippy_utils::diagnostics::span_lint_and_help; +use clippy_utils::diagnostics::span_lint_hir_and_then; use clippy_utils::is_path_lang_item; use rustc_hir::{FieldDef, Item, ItemKind, LangItem}; use rustc_lint::{LateContext, LateLintPass}; @@ -69,13 +69,15 @@ impl<'tcx> LateLintPass<'tcx> for PubUnderscoreFields { // We ignore fields that are `PhantomData`. && !is_path_lang_item(cx, field.ty, LangItem::PhantomData) { - span_lint_and_help( + span_lint_hir_and_then( cx, PUB_UNDERSCORE_FIELDS, + field.hir_id, field.vis_span.to(field.ident.span), "field marked as public but also inferred as unused because it's prefixed with `_`", - None, - "consider removing the underscore, or making the field private", + |diag| { + diag.help("consider removing the underscore, or making the field private"); + }, ); } } diff --git a/tests/ui-toml/pub_underscore_fields/pub_underscore_fields.rs b/tests/ui-toml/pub_underscore_fields/pub_underscore_fields.rs index 1d8fee7daad..4ee8dbb8834 100644 --- a/tests/ui-toml/pub_underscore_fields/pub_underscore_fields.rs +++ b/tests/ui-toml/pub_underscore_fields/pub_underscore_fields.rs @@ -63,4 +63,10 @@ fn main() { _pub: String, pub(crate) _mark: PhantomData<u8>, } + + // shouldn't warn when `#[allow]` is used on field level + pub struct AllowedViolations { + #[allow(clippy::pub_underscore_fields)] + pub _first: u32, + } } |
