durcheck
1.0.0
durcheck adalah linter yang sangat sederhana yang mendeteksi bug potensial seiring time.Duration dalam paket go.
Pertimbangkan kode berikut:
func doInTime ( done chan struct {}) error {
select {
case <- time . After ( 60 ):
return errors . New ( "timeout" )
case <- done :
return nil
}
} Jelas ada masalah dengan time.After(60) , di mana Intped int sebenarnya dikonversi menjadi 60 nanodetik. Tetapi seorang programmer dapat melewatkannya, atau pendatang baru Golang dari bahasa seperti PHP di mana fungsi tidur memiliki tanda tangan int sleep ( int $seconds ) dapat membuat kesalahan seperti itu.
Menjalankan linter terhadap kode di atas akan menghasilkan kesalahan:
$ durcheck .
main.go:14:9: implicit time.Duration means nanoseconds in " time.After(60) " go get -u github.com/hypnoglow/durcheck
Opsi A: Lewati argumen ini ke perintah gometalinter :
gometalinter --linter=durcheck:durcheck:PATH:LINE:COL:MESSAGE --enable=durcheck ./...
Opsi B: Tambahkan konfigurasi ini ke file .gometalinter.json Anda:
{
"Enable" : [
" durcheck "
],
"Linters" : {
"durcheck" : {
"Command" : " durcheck " ,
"Pattern" : " PATH:LINE:COL:MESSAGE "
}
}
}Mit