Repository navigation
How matching works
A finding connects a name found in the selected Git history with a remaining mention in the compared snapshot.
The history index includes Rust declarations and re-exports, workspace packages, dependencies, features, binaries, examples and serialized field or variant spellings. Names still present in the compared source remain alive. Implemented members follow the public reachability of their trait.
Item-position macros and dependency macros contribute names when their declarations can be expanded. Current dependency exports and the standard-library vocabulary also help avoid treating a live name as removed.
The analysis uses parsed declarations and contextual matching. It does not prove that a proposed replacement preserves program behavior.
The scanner reads .rs, .md and .markdown files. Rust mentions come from comments, doc comments and string literals. Markdown readers recognize prose, code spans, fenced blocks and link destinations, including rustdoc page links.
Cargo command examples and manifest snippets provide context for dependency, package, feature and target names. Data examples can refer to serialized spellings. A bare name in ordinary prose can be claimed by the English vocabulary, while an explicitly written Rust path carries more information.
Paths in uncompiled examples must start with a known workspace crate root to match a removed item. A complete crate-root path is also required when checking items from a dependency that was dropped entirely. These rules avoid assigning unrelated example names to a historical API.
Current names, imported paths, local example bindings, dependency exports and macro names can disambiguate a mention. A spelling alone does not guarantee a finding.
Release histories and generated files are excluded by default. Comments containing only commented-out Rust code are also skipped by default. Configuration lists the exact exclusions and the options that include generated or commented-out content.
The working-tree walk respects ignore files and excludes the scan's build and cache directories. A revision comparison reads the committed files of that snapshot.
Unavailable historical dependency sources appear in skipped. Their removed items were not checked. See Reports.
Read the source location and the declaration's removal before changing the text. Use a suggested replacement only when it describes the intended API. Several candidates need a human choice.
If the text intentionally describes a removed API, use a narrowly scoped suppression and keep the explanation beside the historical reference. An unused local suppression is itself reported.