emahiro/b.log

Drastically Repeat Yourself !!!!

Go で unused なコードを検出する

Overview

staticcheck を使って unused なコードを一括で検査します。

Install

$ go get honnef.co/go/tools/cmd/staticcheck

ref: https://staticcheck.io/docs

検出する

U1000 がどこからも参照されていないコードの警告コードになるので、検査結果を grep で引っ掛ければ一覧を取得できます。

$ staticcheck ./... | grep "U1000"

その他のコードの一覧は https://staticcheck.io/docs/checks に記載されてます。

おまけ

golangci-lint を使うと「よろしくない」コードを一括で検査して警告してくれます。Reviewdog と組み合わせて CI で利用するケースは多いかと思いますが、普通に手元でコードを検査できるのも便利です。

$ GO111MODULE=on go get github.com/golangci/golangci-lint/cmd/golangci-lint@master
golangci-lint run --config ./.github/.golangci-lint --tests=false ./...

各オプションの詳細については golangci-lint run -h で調べると良いです。

ref: https://golangci-lint.run