Crate/module-wide #![allow(dead_code)] or #![allow(unused)]
Part of Code Quality & Syntax, which counts for 20% of the overall score. When this check fires it deducts 2 points from that category, once per scan, no matter how many places it turns up.
What it detects
A crate- or module-wide inner attribute (#![allow(dead_code)] / #![allow(unused)]) silences the compiler’s unused-code warnings for everything beneath it, not just one intentionally-unused item. An item-scoped outer #[allow(...)] on a single function/struct is unaffected by this rule.
Why it matters
A crate- or module-wide #![allow(dead_code)] or #![allow(unused)] silences the compiler for every item beneath it, not just the one function or field that was actually meant to be excused. That means genuinely dead code introduced later, in any file under that scope, stops producing a warning, and it quietly accumulates until someone has to manually re-audit the whole module to find what is really unused.
How to fix it
Remove the blanket inner attribute and, for each specific item that needs to stay even though it looks unused (a trait impl required by an external interface, a field kept for a planned feature), add a narrow, item-level #[allow(dead_code)] directly on that item with a comment saying why. If nothing genuinely needs the suppression, delete the dead code rather than silencing the warning for it.
The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing
Does your repo trip this check?
Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.
Scan your repo