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.

Directories

Path Synopsis
Package asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations.
Package asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations.
Package assign defines an Analyzer that detects useless assignments.
Package assign defines an Analyzer that detects useless assignments.
Package atomic defines an Analyzer that checks for common mistakes using the sync/atomic package.
Package atomic defines an Analyzer that checks for common mistakes using the sync/atomic package.
Package atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions.
Package atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions.
Package bools defines an Analyzer that detects common mistakes involving boolean operators.
Package bools defines an Analyzer that detects common mistakes involving boolean operators.
Package buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it.
Package buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it.
Package buildtag defines an Analyzer that checks build tags.
Package buildtag defines an Analyzer that checks build tags.
Package cgocall defines an Analyzer that detects some violations of the cgo pointer passing rules.
Package cgocall defines an Analyzer that detects some violations of the cgo pointer passing rules.
Package composite defines an Analyzer that checks for unkeyed composite literals.
Package composite defines an Analyzer that checks for unkeyed composite literals.
Package copylock defines an Analyzer that checks for locks erroneously passed by value.
Package copylock defines an Analyzer that checks for locks erroneously passed by value.
Package ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function.
Package ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function.
Package deepequalerrors defines an Analyzer that checks for the use of reflect.DeepEqual with error values.
Package deepequalerrors defines an Analyzer that checks for the use of reflect.DeepEqual with error values.
The errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error.
The errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error.
Package fieldalignment defines an Analyzer that detects structs that would use less memory if their fields were sorted.
Package fieldalignment defines an Analyzer that detects structs that would use less memory if their fields were sorted.
Package findcall defines an Analyzer that serves as a trivial example and test of the Analysis API.
Package findcall defines an Analyzer that serves as a trivial example and test of the Analysis API.
cmd/findcall
The findcall command runs the findcall analyzer.
The findcall command runs the findcall analyzer.
Package framepointer defines an Analyzer that reports assembly code that clobbers the frame pointer before saving it.
Package framepointer defines an Analyzer that reports assembly code that clobbers the frame pointer before saving it.
Package httpresponse defines an Analyzer that checks for mistakes using HTTP responses.
Package httpresponse defines an Analyzer that checks for mistakes using HTTP responses.
Package ifaceassert defines an Analyzer that flags impossible interface-interface type assertions.
Package ifaceassert defines an Analyzer that flags impossible interface-interface type assertions.
cmd/ifaceassert
The ifaceassert command runs the ifaceassert analyzer.
The ifaceassert command runs the ifaceassert analyzer.
Package inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspector.Inspector) for the syntax trees of a package.
Package inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspector.Inspector) for the syntax trees of a package.
Package loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions.
Package loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions.
Package lostcancel defines an Analyzer that checks for failure to call a context cancellation function.
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.
The lostcancel command applies the golang.org/x/tools/go/analysis/passes/lostcancel analysis to the specified packages of Go source code.
Package nilfunc defines an Analyzer that checks for useless comparisons against nil.
Package nilfunc defines an Analyzer that checks for useless comparisons against nil.
Package nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons.
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.
The nilness command applies the golang.org/x/tools/go/analysis/passes/nilness analysis to the specified packages of Go source code.
The pkgfact package is a demonstration and test of the package fact mechanism.
The pkgfact package is a demonstration and test of the package fact mechanism.
Package printf defines an Analyzer that checks consistency of Printf format strings and arguments.
Package printf defines an Analyzer that checks consistency of Printf format strings and arguments.
Package reflectvaluecompare defines an Analyzer that checks for accidentally using == or reflect.DeepEqual to compare reflect.Value values.
Package reflectvaluecompare defines an Analyzer that checks for accidentally using == or reflect.DeepEqual to compare reflect.Value values.
Package shadow defines an Analyzer that checks for shadowed variables.
Package shadow defines an Analyzer that checks for shadowed variables.
cmd/shadow
The shadow command runs the shadow analyzer.
The shadow command runs the shadow analyzer.
Package shift defines an Analyzer that checks for shifts that exceed the width of an integer.
Package shift defines an Analyzer that checks for shifts that exceed the width of an integer.
Package sigchanyzer defines an Analyzer that detects misuse of unbuffered signal as argument to signal.Notify.
Package sigchanyzer defines an Analyzer that detects misuse of unbuffered signal as argument to signal.Notify.
Package sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument.
Package sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument.
Package stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces.
Package stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces.
Package stringintconv defines an Analyzer that flags type conversions from integers to strings.
Package stringintconv defines an Analyzer that flags type conversions from integers to strings.
cmd/stringintconv
The stringintconv command runs the stringintconv analyzer.
The stringintconv command runs the stringintconv analyzer.
Package structtag defines an Analyzer that checks struct field tags are well formed.
Package structtag defines an Analyzer that checks struct field tags are well formed.
Package tests defines an Analyzer that checks for common mistaken usages of tests and examples.
Package tests defines an Analyzer that checks for common mistaken usages of tests and examples.
The unmarshal package defines an Analyzer that checks for passing non-pointer or non-interface types to unmarshal and decode functions.
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.
The unmarshal command runs the unmarshal analyzer.
Package unreachable defines an Analyzer that checks for unreachable code.
Package unreachable defines an Analyzer that checks for unreachable code.
Package unsafeptr defines an Analyzer that checks for invalid conversions of uintptr to unsafe.Pointer.
Package unsafeptr defines an Analyzer that checks for invalid conversions of uintptr to unsafe.Pointer.
Package unusedresult defines an analyzer that checks for unused results of calls to certain pure functions.
Package unusedresult defines an analyzer that checks for unused results of calls to certain pure functions.
Package unusedwrite checks for unused writes to the elements of a struct or array object.
Package unusedwrite checks for unused writes to the elements of a struct or array object.
internal
analysisutil
Package analysisutil defines various helper functions used by two or more packages beneath go/analysis.
Package analysisutil defines various helper functions used by two or more packages beneath go/analysis.