All Projects → jgautheron → usedexports

jgautheron / usedexports

Licence: MIT license
Find in Go exported variables that could be unexported

Programming Languages

go
31211 projects - #10 most used programming language

usedexports

Find exported variables (const, var, func, struct) in Go that could be unexported.

The Go Challenge #5 sparked the idea of detecting unused exports.
My goal with usedexports is to report on unused exports for a local application, and not scan the whole GOPATH.

Get Started

$ go get github.com/jgautheron/usedexports
$ usedexports ./...

Usage

Usage:

  usedexports ARGS <directory>

Flags:

  -ignore        exclude files matching the given regular expression
  -force         scan the path even if there is no main package

Examples:

  usedexports ./...
  usedexports -ignore "yacc|\.pb\." $GOPATH/src/github.com/cockroachdb/cockroach/...

⚠️ By default, usedexports will report only exports which are related to an application, not a library.
For this reason, usedexports will stop if it won't find the main package in the specified path. You can ignore this behaviour by using the -force flag.

Limitations

  1. usedexports does not take into account the composed interfaces, so it will report by example on the MarshalJSON composed function.
  2. If there are multiple struct methods in the same package, only the last occurrence will be reported.

Other static analysis tools

  • gogetimports: Get a JSON-formatted list of imports.
  • goconst: Find repeated strings that could be replaced by a constant.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].