commit | 6adeb8aab2ded9eb693b831d5fd090c10a6ebdfa | [log] [tgz] |
---|---|---|
author | Alan Donovan <adonovan@google.com> | Tue Oct 16 16:17:24 2018 -0400 |
committer | Alan Donovan <adonovan@google.com> | Fri Oct 19 00:59:45 2018 +0000 |
tree | 92cf8f50a832ab1eb5b47b3f98d0aac572a2ba14 | |
parent | def26773749ba304ef17a9d8bf8a148a1dc29018 [diff] |
go/analysis/passes/nilness: degenerate nil condition checker This check uses the control-flow graph and SSA value graph to detect problems such as: p := &v ... if p != nil { // tautological condition } and: if p == nil { print(*p) // nil dereference } (It was originally developed within Google's Go analysis framework and can now be published in a form useful to all analysis drivers.) This CL also includes buildssa, an Analyzer that constructs SSA for later analysis passes but does not report diagnostics or facts of its own. Change-Id: I27bc4eea10d71d958685a403234879112c21f433 Reviewed-on: https://go-review.googlesource.com/c/142698 Reviewed-by: Michael Matloob <matloob@golang.org>
This subrepository holds the source for various packages and tools that support the Go programming language.
Some of the tools, godoc
and vet
for example, are included in binary Go distributions.
Others, including the Go guru
and the test coverage tool, can be fetched with go get
.
Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs.
The easiest way to install is to run go get -u golang.org/x/tools/...
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/tools
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the tools repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/tools/(your subdir):” in the subject line, so it is easy to find.