## 事象 [[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)