Skip to content

What it cannot do

Where Rust Doctor abstains, and why an incomplete scan says so instead of scoring anyway.

Rust Doctor reports the evidence it can establish. It does not turn missing evidence into a clean result.

#Text, not types

The four native producers parse source text, read manifests, or ask git what it tracks. They do not resolve types, expand macros, or follow re-exports, so a detector that would need semantic evidence abstains rather than asserting a defect it cannot prove. Clippy is the only pass with the compiler behind it, and the only pass that compiles anything.

#A rule is admitted on measurement, not on intuition

Every catalogued rule is measured against ten public repositories pinned by commit, and each publishes its adjudicated precision. A rule the corpus never triggered is published as unproven: it means those ten repositories never gave it the chance to fire, not that it does not work.

The measured noise rate ranks what to fix first. It never reduces what a rule costs the score, because what a rule costs is what it reported.

#Structure has a budget

The structural pass stops at a wall-clock budget of ten seconds and says so rather than running long on a large workspace. When it stops early, the report carries the failure at its stage and the score drops its authoritative flag.

#An incomplete scan is not a clean one

If a pass fails, the report is still complete, and it carries a ReportError at that stage with the score's authoritative flag dropped. The number stays visible and stops being a verdict. Read complete and errors before reading score.

The most common cause is a missing clippy component, or a workspace whose build errors prevent analysis. In both cases 37 of the 62 rules never ran.

#The score is a triage signal

It ranks where to look, it does not prove a codebase is defect-free. Severity, the evidence behind a finding, and what the project is for remain part of the decision.