Expand description
Gate: every suppression says why it is there, and says it in the one form that fits what it does.
A suppression over a defect somewhere else names the case that justifies it, and that case resolves to a record. A suppression this project chose and keeps states its reason instead, because no record could carry a retirement condition anyone can meet, and a record with an unmeetable condition is the permanent mask the case rule exists to prevent. A suppression with neither becomes permanent by default: the next reader takes it for a design choice and nothing says what would retire it.
A form counts only in a file the tool that honors it reads. #[allow(
is live Rust and a quotation in markdown; noqa is live in a Python or
shell comment and a quotation here. That scoping is what lets this file,
the specs and the method chapters name a form without being judged by
it. A form inside a string, inside a multi-line string, or inside a
document’s fence is a quotation for the same reason. Binary files and
vendored trees are skipped, and the known-issues directory is exempt,
because a record may discuss suppressions.
Three surfaces stay outside this scan: an extensionless shell script, a
block comment holding a suppression, and the [lints] table of a
manifest. The simple-english-disable marker stays outside too,
because simple-english:an-exception-names-its-reason already requires
a reason on it, and a second rule would name one defect twice.
Constants§
- CITES
- The rules this gate can cite.
Functions§
- run
- Judge every suppression in the repository.