durcheck
1.0.0
durcheck 、GOパッケージのtime.Durationのある潜在的なバグを検出する非常にシンプルなリナーです。
次のコードを検討してください。
func doInTime ( done chan struct {}) error {
select {
case <- time . After ( 60 ):
return errors . New ( "timeout" )
case <- done :
return nil
}
}明らかにtime.After(60) 、Untyped Intが実際に60ナノ秒に変換されます。しかし、プログラマーはそれを見逃すことができます。または、睡眠機能に署名INT int sleep ( int $seconds )があるPHPなどの言語からのゴーランの新人は、そのような間違いを犯す可能性があります。
上記のコードに対してリナーを実行すると、エラーが発生します。
$ durcheck .
main.go:14:9: implicit time.Duration means nanoseconds in " time.After(60) " go get -u github.com/hypnoglow/durcheck
オプションA:これらの引数をgometalinterコマンドに渡す:
gometalinter --linter=durcheck:durcheck:PATH:LINE:COL:MESSAGE --enable=durcheck ./...
オプションB: .gometalinter.jsonファイルにこの構成を追加します:
{
"Enable" : [
" durcheck "
],
"Linters" : {
"durcheck" : {
"Command" : " durcheck " ,
"Pattern" : " PATH:LINE:COL:MESSAGE "
}
}
}mit