😵

【Go 1.25】uber-goのmockgenがインストールできない【対処法】

に公開

😵 uber-goのmockgenがインストールできない・・・

go1.24からgo1.25に上げてから、mockgenを使おうとして若干秘伝のタレになっているMakefileでuber-goのmockgenをインストールしようとしたら

go install go.uber.org/mock/mockgen@v0.5.0
# golang.org/x/tools/internal/tokeninternal
***/pkg/mod/golang.org/x/tools@v0.22.0/internal/tokeninternal/tokeninternal.go:64:9: invalid array length -delta * delta (constant -256 of type int64)

と出てしまい、インストールできませんでした。

どうやらuber-go/mockgenが依存しているx/toolsパッケージが古いため、動かなかったようです。
uber-go/mockgenを更新して、依存関係をgolang.org/x/tools v0.36.0に更新することでこの問題を回避できるようです。

✅️ 対処方法

uber-go mockgenのバージョンを0.6.0以降のバージョンに上げることでインストールできます。

go install go.uber.org/mock/mockgen@v0.6.0

📖 参考

この問題が起きたときに調べたissueとPRです。

https://github.com/uber-go/mock/issues/274
https://github.com/uber-go/mock/pull/276
https://github.com/uber-go/mock/pull/278

株式会社BALEEN STUDIO

Discussion