go/ directory

Directories

PathSynopsis
go/analysisPackage analysis defines the interface between a modular static analysis and an analysis driver program.
go/analysis/analysistestPackage analysistest provides utilities for testing analyzers.
go/analysis/checkerPackage checker provides an analysis driver based on the golang.org/x/tools/go/packages representation of a set of packages and all their dependencies, as produced by packages.Load.
go/analysis/internal
go/analysis/multicheckerPackage multichecker defines the main function for an analysis driver with several analyzers.
go/analysis/passes
go/analysis/passes/appendsPackage appends defines an Analyzer that detects if there is only one variable in append.
go/analysis/passes/asmdeclPackage asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations.
go/analysis/passes/assignPackage assign defines an Analyzer that detects useless assignments.
go/analysis/passes/atomicPackage atomic defines an Analyzer that checks for common mistakes using the sync/atomic package.
go/analysis/passes/atomicalignPackage atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions.
go/analysis/passes/boolsPackage bools defines an Analyzer that detects common mistakes involving boolean operators.
go/analysis/passes/buildssaPackage buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it.
go/analysis/passes/buildtagPackage buildtag defines an Analyzer that checks build tags.
go/analysis/passes/cgocallPackage cgocall defines an Analyzer that detects some violations of the cgo pointer passing rules.
go/analysis/passes/compositePackage composite defines an Analyzer that checks for unkeyed composite literals.
go/analysis/passes/copylockPackage copylock defines an Analyzer that checks for locks erroneously passed by value.
go/analysis/passes/ctrlflowPackage ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function.
go/analysis/passes/deepequalerrorsPackage deepequalerrors defines an Analyzer that checks for the use of reflect.DeepEqual with error values.
go/analysis/passes/defersPackage defers defines an Analyzer that checks for common mistakes in defer statements.
go/analysis/passes/defers/cmd
go/analysis/passes/defers/cmd/defersThe defers command runs the defers analyzer.
go/analysis/passes/directivePackage directive defines an Analyzer that checks known Go toolchain directives.
go/analysis/passes/errorsasThe errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error.
go/analysis/passes/fieldalignmentPackage fieldalignment defines an Analyzer that detects structs that would use less memory if their fields were sorted.
go/analysis/passes/fieldalignment/cmd
go/analysis/passes/fieldalignment/cmd/fieldalignment
go/analysis/passes/findcallPackage findcall defines an Analyzer that serves as a trivial example and test of the Analysis API.
go/analysis/passes/findcall/cmd
go/analysis/passes/findcall/cmd/findcallThe findcall command runs the findcall analyzer.
go/analysis/passes/framepointerPackage framepointer defines an Analyzer that reports assembly code that clobbers the frame pointer before saving it.
go/analysis/passes/httpmux
go/analysis/passes/httpmux/cmd
go/analysis/passes/httpmux/cmd/httpmuxThe httpmux command runs the httpmux analyzer.
go/analysis/passes/httpresponsePackage httpresponse defines an Analyzer that checks for mistakes using HTTP responses.
go/analysis/passes/ifaceassertPackage ifaceassert defines an Analyzer that flags impossible interface-interface type assertions.
go/analysis/passes/ifaceassert/cmd
go/analysis/passes/ifaceassert/cmd/ifaceassertThe ifaceassert command runs the ifaceassert analyzer.
go/analysis/passes/inspectPackage inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspector.Inspector) for the syntax trees of a package.
go/analysis/passes/internal
go/analysis/passes/loopclosurePackage loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions.
go/analysis/passes/lostcancelPackage lostcancel defines an Analyzer that checks for failure to call a context cancellation function.
go/analysis/passes/lostcancel/cmd
go/analysis/passes/lostcancel/cmd/lostcancelThe lostcancel command applies the golang.org/x/tools/go/analysis/passes/lostcancel analysis to the specified packages of Go source code.
go/analysis/passes/nilfuncPackage nilfunc defines an Analyzer that checks for useless comparisons against nil.
go/analysis/passes/nilnessPackage nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons.
go/analysis/passes/nilness/cmd
go/analysis/passes/nilness/cmd/nilnessThe nilness command applies the golang.org/x/tools/go/analysis/passes/nilness analysis to the specified packages of Go source code.
go/analysis/passes/pkgfactThe pkgfact package is a demonstration and test of the package fact mechanism.
go/analysis/passes/printfPackage printf defines an Analyzer that checks consistency of Printf format strings and arguments.
go/analysis/passes/reflectvaluecomparePackage reflectvaluecompare defines an Analyzer that checks for accidentally using == or reflect.DeepEqual to compare reflect.Value values.
go/analysis/passes/shadowPackage shadow defines an Analyzer that checks for shadowed variables.
go/analysis/passes/shadow/cmd
go/analysis/passes/shadow/cmd/shadowThe shadow command runs the shadow analyzer.
go/analysis/passes/shiftPackage shift defines an Analyzer that checks for shifts that exceed the width of an integer.
go/analysis/passes/sigchanyzerPackage sigchanyzer defines an Analyzer that detects misuse of unbuffered signal as argument to signal.Notify.
go/analysis/passes/slogPackage slog defines an Analyzer that checks for mismatched key-value pairs in log/slog calls.
go/analysis/passes/sortslicePackage sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument.
go/analysis/passes/stdmethodsPackage stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces.
go/analysis/passes/stdversionPackage stdversion reports uses of standard library symbols that are "too new" for the Go version in force in the referring file.
go/analysis/passes/stringintconvPackage stringintconv defines an Analyzer that flags type conversions from integers to strings.
go/analysis/passes/stringintconv/cmd
go/analysis/passes/stringintconv/cmd/stringintconvThe stringintconv command runs the stringintconv analyzer.
go/analysis/passes/structtagPackage structtag defines an Analyzer that checks struct field tags are well formed.
go/analysis/passes/testinggoroutinePackage testinggoroutine defines an Analyzerfor detecting calls to Fatal from a test goroutine.
go/analysis/passes/testsPackage tests defines an Analyzer that checks for common mistaken usages of tests and examples.
go/analysis/passes/timeformatPackage timeformat defines an Analyzer that checks for the use of time.Format or time.Parse calls with a bad format.
go/analysis/passes/unmarshalThe unmarshal package defines an Analyzer that checks for passing non-pointer or non-interface types to unmarshal and decode functions.
go/analysis/passes/unmarshal/cmd
go/analysis/passes/unmarshal/cmd/unmarshalThe unmarshal command runs the unmarshal analyzer.
go/analysis/passes/unreachablePackage unreachable defines an Analyzer that checks for unreachable code.
go/analysis/passes/unsafeptrPackage unsafeptr defines an Analyzer that checks for invalid conversions of uintptr to unsafe.Pointer.
go/analysis/passes/unusedresultPackage unusedresult defines an analyzer that checks for unused results of calls to certain pure functions.
go/analysis/passes/unusedresult/cmd
go/analysis/passes/unusedresult/cmd/unusedresultThe unusedresult command applies the golang.org/x/tools/go/analysis/passes/unusedresult analysis to the specified packages of Go source code.
go/analysis/passes/unusedwritePackage unusedwrite checks for unused writes to the elements of a struct or array object.
go/analysis/passes/usesgenericsPackage usesgenerics defines an Analyzer that checks for usage of generic features added in Go 1.18.
go/analysis/passes/waitgroupPackage waitgroup defines an Analyzer that detects simple misuses of sync.WaitGroup.
go/analysis/singlecheckerPackage singlechecker defines the main function for an analysis driver with only a single analysis.
go/analysis/unitcheckerThe unitchecker package defines the main function for an analysis driver that analyzes a single compilation unit during a build.
go/ast
go/ast/astutilPackage astutil contains common utilities for working with the Go AST.
go/ast/inspectorPackage inspector provides helper functions for traversal over the syntax trees of a package, including node filtering by type, and materialization of the traversal stack.
go/buildutilPackage buildutil provides utilities related to the go/build package in the standard library.
go/callgraphPackage callgraph defines the call graph and various algorithms and utilities to operate on it.
go/callgraph/chaPackage cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm.
go/callgraph/internal
go/callgraph/rtaThis 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.
go/callgraph/staticPackage static computes the call graph of a Go program containing only static call edges.
go/callgraph/vtaPackage vta computes the call graph of a Go program using the Variable Type Analysis (VTA) algorithm originally described in "Practical Virtual Method Call Resolution for Java," Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Raja Vallée-Rai, Patrick Lam, Etienne Gagnon, and Charles Godin.
go/callgraph/vta/internal
go/cfgPackage cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function.
go/expectPackage expect provides support for interpreting structured comments in Go source code (including go.mod and go.work files) as test expectations.
go/gccgoexportdataPackage gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler.
go/gcexportdataPackage gcexportdata provides functions for reading and writing export data, which is a serialized description of the API of a Go package including the names, kinds, types, and locations of all exported declarations.
go/internal
go/loaderPackage loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies.
go/packagesPackage packages loads Go packages for inspection and analysis.
go/packages/gopackagesThe 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.
go/packages/internal
go/packages/packagestestPackage packagestest creates temporary projects on disk for testing go tools on.
go/ssaPackage 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.
go/ssa/interpPackage ssa/interp defines an interpreter for the SSA representation of Go programs.
go/ssa/ssautil
go/types
go/types/internal
go/types/objectpathPackage objectpath defines a naming scheme for types.Objects (that is, named entities in Go programs) relative to their enclosing package.
go/types/typeutilPackage typeutil defines various utilities for types, such as Map, a hash table that maps types.Type to any value.
Version
v0.30.0 (latest)
Published
Feb 10, 2025
Platform
linux/amd64
Last checked
3 hours ago

Tools for package owners.