| Name | Synopsis | 
|---|---|
| .. | |
| analysis | The analysis package defines the interface between a modular static analysis and an analysis driver program. | 
| analysistest | Package analysistest provides utilities for testing analyzers. | 
| multichecker | Package multichecker defines the main function for an analysis driver with several analyzers. | 
| passes | |
| asmdecl | Package asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations. | 
| assign | Package assign defines an Analyzer that detects useless assignments. | 
| atomic | Package atomic defines an Analyzer that checks for common mistakes using the sync/atomic package. | 
| atomicalign | Package atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions. | 
| bools | Package bools defines an Analyzer that detects common mistakes involving boolean operators. | 
| buildssa | Package buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it. | 
| buildtag | Package buildtag defines an Analyzer that checks build tags. | 
| cgocall | Package cgocall defines an Analyzer that detects some violations of the cgo pointer passing rules. | 
| composite | Package composite defines an Analyzer that checks for unkeyed composite literals. | 
| copylock | Package copylock defines an Analyzer that checks for locks erroneously passed by value. | 
| ctrlflow | Package ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function. | 
| deepequalerrors | Package deepequalerrors defines an Analyzer that checks for the use of reflect.DeepEqual with error values. | 
| errorsas | The errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error. | 
| findcall | |
| cmd | |
| findcall | The findcall command runs the findcall analyzer. | 
| httpresponse | Package httpresponse defines an Analyzer that checks for mistakes using HTTP responses. | 
| inspect | Package inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspect.Inspect) for the syntax trees of a package. | 
| loopclosure | Package loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions. | 
| lostcancel | Package lostcancel defines an Analyzer that checks for failure to call a context cancellation function. | 
| cmd | |
| lostcancel | The lostcancel command applies the golang.org/x/tools/go/analysis/passes/lostcancel analysis to the specified packages of Go source code. | 
| nilfunc | Package nilfunc defines an Analyzer that checks for useless comparisons against nil. | 
| nilness | Package nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons. | 
| cmd | |
| nilness | The nilness command applies the golang.org/x/tools/go/analysis/passes/nilness analysis to the specified packages of Go source code. | 
| pkgfact | The pkgfact package is a demonstration and test of the package fact mechanism. | 
| printf | |
| shadow | |
| cmd | |
| shadow | The shadow command runs the shadow analyzer. | 
| shift | Package shift defines an Analyzer that checks for shifts that exceed the width of an integer. | 
| sortslice | Package sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument. | 
| stdmethods | Package stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces. | 
| structtag | Package structtag defines an Analyzer that checks struct field tags are well formed. | 
| tests | Package tests defines an Analyzer that checks for common mistaken usages of tests and examples. | 
| unmarshal | The unmarshal package defines an Analyzer that checks for passing non-pointer or non-interface types to unmarshal and decode functions. | 
| cmd | |
| unmarshal | The unmarshal command runs the unmarshal analyzer. | 
| unreachable | Package unreachable defines an Analyzer that checks for unreachable code. | 
| unsafeptr | Package unsafeptr defines an Analyzer that checks for invalid conversions of uintptr to unsafe.Pointer. | 
| unusedresult | Package unusedresult defines an analyzer that checks for unused results of calls to certain pure functions. | 
| singlechecker | Package singlechecker defines the main function for an analysis driver with only a single analysis. | 
| unitchecker | The unitchecker package defines the main function for an analysis driver that analyzes a single compilation unit during a build. | 
| ast | |
| astutil | Package astutil contains common utilities for working with the Go AST. | 
| inspector | Package inspector provides helper functions for traversal over the syntax trees of a package, including node filtering by type, and materialization of the traversal stack. | 
| buildutil | Package buildutil provides utilities related to the go/build package in the standard library. | 
| callgraph | Package callgraph defines the call graph and various algorithms and utilities to operate on it. | 
| cha | Package cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm. | 
| rta | This package provides Rapid Type Analysis (RTA) for Go, a fast algorithm for call graph construction and discovery of reachable code (and hence dead code) and runtime types. | 
| static | Package static computes the call graph of a Go program containing only static call edges. | 
| cfg | This package constructs a simple control-flow graph (CFG) of the statements and expressions within a single function. | 
| expect | Package expect provides support for interpreting structured comments in Go source code as test expectations. | 
| gccgoexportdata | Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler. | 
| gcexportdata | Package gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler. | 
| loader | Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies. | 
| packages | Package packages loads Go packages for inspection and analysis. | 
| gopackages | The gopackages command is a diagnostic tool that demonstrates how to use golang.org/x/tools/go/packages to load, parse, type-check, and print one or more Go packages. | 
| packagestest | Package packagestest creates temporary projects on disk for testing go tools on. | 
| pointer | Package pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994). | 
| ssa | Package ssa defines a representation of the elements of Go programs (packages, types, functions, variables and constants) using a static single-assignment (SSA) form intermediate representation (IR) for the bodies of functions. | 
| interp | Package ssa/interp defines an interpreter for the SSA representation of Go programs. | 
| ssautil | |
| types | |
| objectpath | Package objectpath defines a naming scheme for types.Objects (that is, named entities in Go programs) relative to their enclosing package. | 
| typeutil | Package typeutil defines various utilities for types, such as Map, a mapping from types.Type to interface{} values. | 
| vcs | Package vcs exposes functions for resolving import paths and using version control systems, which can be used to implement behavior similar to the standard "go get" command. |