## 事象
[[Staticcheck]]でチェックすると、思ったよりも診断項目が少ない。たとえば以下のコードの場合。
```go
package sub
import (
"fmt"
"time"
)
const HOGE = "hoge"
func Hello() {
r, _ := time.Parse("hogehoge", "hogehoge") // SA1002
fmt.Println(r)
for {
fmt.Println("無限ループ") // S1006
}
}
```
`SA1002`と`S1006`で警告されてほしいが何も表示されない。
オプションのデフォルトを確認すると、`["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022"]`となっているため、上記2つは無視されないはず....。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://staticcheck.dev/favicons/favicon-16x16.png" />
<span class="link-card-v2-site-name">Staticcheck</span>
</div>
<div class="link-card-v2-title">
Options
</div>
<div class="link-card-v2-content">
Explanations for all options
</div>
<img class="link-card-v2-image" src="https://staticcheck.dev/img/logo.webp" />
<a href="https://staticcheck.dev/docs/configuration/options/"></a>
</div>
## 原因
[[Staticcheck]]は正常だった。。`SA1002`と`S1006`の定義を間違えていた。
## 解決方法
`SA1002`は以下で発現。
```go
func Hello() {
r, _ := time.Parse("2007/01/02 15:04:05", "hogehoge") // SA1002
fmt.Println(r)
}
```
`SA1006`は再現できなかったが本件とは関係ないのでスルーする。
## 参考
- [Goのリンターstaticcheckのルールを全部読んだからいくつか紹介 \- あぼぼーぼ・ぼーぼぼ](https://aboy-perry.hatenablog.com/entry/2022/05/15/174350)