はじめに
RustのLintライクなツールに rust-clippyがあります。
なかなかよさげなので使ってみます。
前提条件
項目 | 説明 |
---|---|
検証日 | 2016.05.16 |
OS | Mac OS X 10.11.4 |
Rust | Stable 1.8.0 |
clippy | 0.0.67 |
使い方
Cargo.toml
に以下を追加
Cargo.toml
[dependencies]
clippy = { version = "*", optional = true }
src/lib.rs
か src/main.rs
に以下を追加
src/lib.rs
# ![cfg_attr(feature="clippy", feature(plugin))]
# ![cfg_attr(feature="clippy", plugin(clippy))]
nightlyでしか動かないので以下で実行
$ multirust run nightly cargo build --features=clippy
ごりっと色んな警告がでます。ここに警告の一覧があります。
:
src/parser.rs:448:9: 453:10 help: try
src/parser.rs: if (agent.contains("Hatena ")) && (agent.contains("Hatena Antenna") || agent.contains("Hatena Pagetitle Agent") ||
src/parser.rs: agent.contains("Hatena Diary RSS")) {
src/parser.rs: return self.populate_dataset(result, "Hatena");
src/parser.rs: }
src/parser.rs:448:9: 453:10 help: for further information visit https://github.com/Manishearth/rust-clippy/wiki#collapsible_if
src/parser.rs:460:9: 464:10 warning: this if statement can be collapsed, #[warn(collapsible_if)] on by default
src/parser.rs:460 if agent.contains("Indy Library") {
^
src/parser.rs:460:9: 464:10 help: try
src/parser.rs: if (agent.contains("Indy Library")) && (agent.contains("compatible; Indy Library")) {
src/parser.rs: return self.populate_dataset(result, "IndyLibrary");
src/parser.rs: }
src/parser.rs:460:9: 464:10 help: for further information visit https://github.com/Manishearth/rust-clippy/wiki#collapsible_if