Clippy lints / Suspicious
Clippy lint · Suspicious · checked with Clippy 0.1.99
clippy::duplicated_attributes: duplicated attribute
What it meansChecks for attributes that appear two or more times. It is in the suspicious group and warns by default.
What you see
warning: duplicated attribute --> main.rs:4:9 | 4 | #[allow(dead_code)] | ^^^^^^^^^ | note: first defined here --> main.rs:3:9 | 3 | #[allow(dead_code)] | ^^^^^^^^^ help: remove this attribute --> main.rs:4:9 | 4 | #[allow(dead_code)] | ^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/stable/index.html#duplicated_attributes = note: `#[warn(clippy::duplicated_attributes)]` on by default
Real output of Clippy 0.1.99 (Rust 1.99) on the example below. Names and line numbers in yours will differ.
Does it matter?
Repeating an attribute on the same item (or globally on the same crate) is unnecessary and doesn’t have an effect.
Code that is most likely wrong or useless. Warns by default.
How to fix it
Clippy does not fix this one automatically. Change the code by hand:
Flagged
#[allow(dead_code)]
#[allow(dead_code)]
fn foo() {}
Write this instead
#[allow(dead_code)]
fn foo() {}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::duplicated_attributes)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
duplicated_attributes = "allow"One run
cargo clippy -- -A clippy::duplicated-attributesThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Checks for attributes that appear two or more times.
Why is this bad?
Repeating an attribute on the same item (or globally on the same crate) is unnecessary and doesn’t have an effect.
Example
#[allow(dead_code)]
#[allow(dead_code)]
fn foo() {}
Use instead:
#[allow(dead_code)]
fn foo() {}
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- doc_suspicious_footnoteslooks like a footnote ref, but has no matching footnote
- drop_non_dropcall to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes
- duplicate_modfile is loaded as a module multiple times: `main.rs`
- empty_docsempty doc comment
- empty_line_after_doc_commentsempty line after doc comment
- empty_line_after_outer_attrempty line after outer attribute
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::doc_suspicious_footnoteslooks like a footnote ref, but has no matching footnoteRead it next →Did this answer your question?