est31 / warnalyzer

Show unused code from multi-crate Rust projects
Other
89 stars 4 forks source link

Warnalyzer

Remove unused code from multi-crate Rust projects.

The dead_code lint family of rustc is limited to one crate only and thus can't tell whether some public API is used inside a multi-crate project or not.

This tool, warnalyzer, provides unused code detection functionality for such multi-crate projects.

Usage (scip backend)

This backend supports stable, but it requires rust-analyzer to be available. Obtain it through rustup component add rust-analyzer.

Limitations

save-analysis backend

[!NOTE] The save-analysis backend depends on the nightly feature save-analysis which was removed in February 2023. In order to use warnalyzer, use a nightly Rust version before February 16, 2023. (Issue)

Usage (save-analysis backend)

Known bugs

It's still early on. There are a couple of bugs of the tool.

false-positives

These are the false positives known to me:

Other bugs

Trophy case

License

This crate is distributed under the terms of both the MIT license and the Apache License (Version 2.0), at your option.

See LICENSE for details.

License of your contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.