Rustで構文チェックをカスタムする
構文チェック(lint)は、アトリビュートを使うとデフォルトの設定からカスタムすることができる
※要事前知識:Rust アトリビュート
機能はこんな感じ
table:lint-attribute
種類 説明
allow 警告やエラーを発出しない。
warn 警告を発出する。コンパイルはできる。
deny エラーを発出する。コンパイルできない。
forbid denyと機能はほぼ同じだが、これを設定するとallowやwarnが通じなくなる。
こうすることで、チームで開発するときの構文規約の設定が楽に行えるメリットもある
コマンド、rustc -W helpを使うと構文チェックのチェック一覧とデフォルトの振る舞いが表示される
なおソースコードに入れる場合は-を_に置き換える (例: dead-code→dead_code)
code:lint-custom.rs
#!deny(dead_code) // クレート全体で、使用していない要素があったらコンパイルエラー
// #allow(dead_code) // このアトリビュートをつけるとコンパイルエラーが解消される
struct NonUsedStruct;
fn main() {
println!("This program will not use defined struct");
}
code:lint-custom-forbid.rs
#!forbid(dead_code) // クレート全体で、使用していない要素があったらコンパイルエラー。変更不可。
#allow(dead_code) // 通用しない。エラーになる。
struct NonUsedStruct;
fn main() {
println!("This program will not use defined struct");
}
#Rust