TL;DR

Rust のコードのよくある誤りを見つけ、改善を提案するリントの集まり。800 を超えるリントを持つ。

仕組み

リントはカテゴリに分かれていて、カテゴリごとに既定のレベルが決まっている。

カテゴリ内容既定のレベル
clippy::correctness明らかに誤っているか、無意味なコードdeny
clippy::suspicious誤っている可能性が高いコードwarn
clippy::styleもっと慣用的に書くべきコードwarn
clippy::complexity単純なことを複雑に書いているコードwarn
clippy::perfもっと速く動くように書けるコードwarn
clippy::pedanticときどき誤検知のある厳しいリントallow
clippy::restriction言語やライブラリの特定の機能の使用を禁じるリントallow
clippy::nursery開発中の新しいリントallow
clippy::cargoCargo のマニフェストに対するリントallow

rustup で Rust を入れていれば、通常は Clippy もすでに入っている。minimal プロファイルで入れた場合は、次のコマンドで追加する。

$ rustup component add clippy [--toolchain=<name>]

注意点

妥当なコードにも警告が出たり、他のリントと矛盾したりするので、restriction カテゴリはまとめて有効にしない。clippy::unwrap_used で panic を防ぐなど、必要なものを個別に選んで有効にする。

出典