durcheck
1.0.0
durcheck est un linter très simple qui détecte les bogues potentiels avec time.Duration dans un package GO.
Considérez le code suivant:
func doInTime ( done chan struct {}) error {
select {
case <- time . After ( 60 ):
return errors . New ( "timeout" )
case <- done :
return nil
}
} Il y a évidemment un problème avec time.After(60) , où INT non typé est en fait converti en 60 nanosecondes. Mais un programmeur peut le manquer, ou un nouveau venu de Golang à partir de langages comme PHP où la fonction de sommeil a une signature int sleep ( int $seconds ) peut faire une telle erreur.
L'exécution du linter contre le code ci-dessus produira une erreur:
$ durcheck .
main.go:14:9: implicit time.Duration means nanoseconds in " time.After(60) " go get -u github.com/hypnoglow/durcheck
Option A: Passez ces arguments à la commande gometalinter :
gometalinter --linter=durcheck:durcheck:PATH:LINE:COL:MESSAGE --enable=durcheck ./...
Option B: Ajoutez cette configuration à votre fichier .gometalinter.json :
{
"Enable" : [
" durcheck "
],
"Linters" : {
"durcheck" : {
"Command" : " durcheck " ,
"Pattern" : " PATH:LINE:COL:MESSAGE "
}
}
}Mit