tools/go/analysis/passes
Alan Donovan 6adeb8aab2 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>
2018-10-19 00:59:45 +00:00
..
asmdecl go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
assign go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
atomic go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
bools go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
buildssa go/analysis/passes/nilness: degenerate nil condition checker 2018-10-19 00:59:45 +00:00
buildtag go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
cgocall go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
composite go/analysis/passes/composite: add testing.Internal* to whitelist 2018-10-17 15:12:46 +00:00
copylock go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
ctrlflow go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
findcall go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
httpresponse go/analysis/passes/httpresponse: split out from vet 2018-10-16 19:47:10 +00:00
inspect go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
internal/analysisutil go/analysis/passes/assign: split out from vet 2018-10-08 20:59:24 +00:00
loopclosure go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
lostcancel go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
nilfunc go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
nilness go/analysis/passes/nilness: degenerate nil condition checker 2018-10-19 00:59:45 +00:00
pkgfact go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
printf go/analysis/passes/printf: changes for analysis API 2018-10-16 19:44:49 +00:00
shadow go/analysis/passes/shadow: split out of vet 2018-10-15 21:45:49 +00:00
shift go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
stdmethods go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
structtag go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
tests go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
unreachable go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
unsafeptr go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
unusedresult go/analysis/passes: add doc and copyright comments 2018-10-16 20:28:15 +00:00
vet go/analysis/passes/httpresponse: split out from vet 2018-10-16 19:47:10 +00:00
README go/analysis/internal/checker: analysis driver based on go/packages 2018-09-26 01:25:07 +00:00

README

This directory does not contain a Go package,
but acts as a container for various analyses
that implement the golang.org/x/tools/go/analysis
API and may be imported into an analysis tool.

By convention, each package foo provides the analysis,
and each command foo/cmd/foo provides a standalone driver.