Goの静的解析ツール"staticcheck"のアップデート時の注意点

go-staticcheck-eyecatch

今まで問題なく使えていたstaticcheckが使えなくなってしまったときの対応内容を残しておこうと思います。

経緯

staticcheckを実行しようとしたら、

go: honnef.co/go/tools/cmd/staticcheck@latest (in honnef.co/go/tools@v0.5.1): go.mod:3: invalid go version '1.22.1': must match format 1.23

と怒られてしまった。そもそも当該リポジトリのgo.modファイルでは1.19を指定しているのでエラー内容と一致していない。困った。。

go-toolsのリリースノートを見に行ってみる

明示的にGo1.19のサポート終了に関する記述は見当たらなかったが、v0.5.0のセクションに以下の記述があった。

To prevent misinterpreting code, Staticcheck now refuses to analyze modules that require a version of Go that is newer than that with which Staticcheck was built.

これは、「コードの誤読を防ぐために、staticcheckがビルドされたGoのバージョンよりも新しいバージョンのGoを必要とするモジュールは解析しないよ~」ということだ。

でもGo1.19のほうが古いバージョンだし解析できそうな気もするんだけど、、、

ひとまずgo/toolsをダウングレードしてみる

v0.4.7にダウングレードして実行してみたら無事staticcheckの実行に成功した。

数日前の自分へ

脳死で最新のライブラリを使うのはやめようね。

一旦ダウングレードすることでエラー自体は解決できたけど、さぼらずGoのバージョンアップ対応しようね。

(気づいたら先週にGo1.23も出てたのね。。)

\ シェアする /