Skip to content

Find in Go exported variables that could be unexported

License

Notifications You must be signed in to change notification settings

jgautheron/usedexports

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

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

About

Find in Go exported variables that could be unexported

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages