Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| 
       Package analysis defines the interface between a modular static analysis and an analysis driver program. 
         | 
      Package analysis defines the interface between a modular static analysis and an analysis driver program. | 
| 
         
          
            analysistest
            
            
          
           
      Package analysistest provides utilities for testing analyzers. 
         | 
      Package analysistest provides utilities for testing analyzers. | 
| 
         
          
            internal/analysisflags
            
            
          
           
      Package analysisflags defines helpers for processing flags of analysis driver tools. 
         | 
      Package analysisflags defines helpers for processing flags of analysis driver tools. | 
| 
         
          
            internal/checker
            
            
          
           
      Package checker defines the implementation of the checker commands. 
         | 
      Package checker defines the implementation of the checker commands. | 
| 
         
          
            internal/facts
            
            
          
           
      Package facts defines a serializable set of analysis.Fact. 
         | 
      Package facts defines a serializable set of analysis.Fact. | 
| 
         
          
            multichecker
            
            
          
           
      Package multichecker defines the main function for an analysis driver with several analyzers. 
         | 
      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. 
         | 
      Package asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations. | 
| 
         
          
            passes/assign
            
            
          
           
      Package assign defines an Analyzer that detects useless assignments. 
         | 
      Package assign defines an Analyzer that detects useless assignments. | 
| 
         
          
            passes/atomic
            
            
          
           
      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. | 
| 
         
          
            passes/atomicalign
            
            
          
           
      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. | 
| 
         
          
            passes/bools
            
            
          
           
      Package bools defines an Analyzer that detects common mistakes involving boolean operators. 
         | 
      Package bools defines an Analyzer that detects common mistakes involving boolean operators. | 
| 
         
          
            passes/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. 
         | 
      Package buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it. | 
| 
         
          
            passes/buildtag
            
            
          
           
      Package buildtag defines an Analyzer that checks build tags. 
         | 
      Package buildtag defines an Analyzer that checks build tags. | 
| 
         
          
            passes/cgocall
            
            
          
           
      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. | 
| 
         
          
            passes/composite
            
            
          
           
      Package composite defines an Analyzer that checks for unkeyed composite literals. 
         | 
      Package composite defines an Analyzer that checks for unkeyed composite literals. | 
| 
         
          
            passes/copylock
            
            
          
           
      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. | 
| 
         
          
            passes/ctrlflow
            
            
          
           
      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. | 
| 
         
          
            passes/deepequalerrors
            
            
          
           
      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. | 
| 
         
          
            passes/errorsas
            
            
          
           
      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. | 
| 
         
          
            passes/fieldalignment
            
            
          
           
      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. | 
| 
         
          
            passes/findcall
            
            
          
           
      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. | 
| 
         
          
            passes/findcall/cmd/findcall
            
            command
          
           
      The findcall command runs the findcall analyzer. 
         | 
      The findcall command runs the findcall analyzer. | 
| 
         
          
            passes/framepointer
            
            
          
           
      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. | 
| 
         
          
            passes/httpresponse
            
            
          
           
      Package httpresponse defines an Analyzer that checks for mistakes using HTTP responses. 
         | 
      Package httpresponse defines an Analyzer that checks for mistakes using HTTP responses. | 
| 
         
          
            passes/ifaceassert
            
            
          
           
      Package ifaceassert defines an Analyzer that flags impossible interface-interface type assertions. 
         | 
      Package ifaceassert defines an Analyzer that flags impossible interface-interface type assertions. | 
| 
         
          
            passes/ifaceassert/cmd/ifaceassert
            
            command
          
           
      The ifaceassert command runs the ifaceassert analyzer. 
         | 
      The ifaceassert command runs the ifaceassert analyzer. | 
| 
         
          
            passes/inspect
            
            
          
           
      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. | 
| 
         
          
            passes/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. | 
| 
         
          
            passes/loopclosure
            
            
          
           
      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. | 
| 
         
          
            passes/lostcancel
            
            
          
           
      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. | 
| 
         
          
            passes/lostcancel/cmd/lostcancel
            
            command
          
           
      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. | 
| 
         
          
            passes/nilfunc
            
            
          
           
      Package nilfunc defines an Analyzer that checks for useless comparisons against nil. 
         | 
      Package nilfunc defines an Analyzer that checks for useless comparisons against nil. | 
| 
         
          
            passes/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. 
         | 
      Package nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons. | 
| 
         
          
            passes/nilness/cmd/nilness
            
            command
          
           
      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. | 
| 
         
          
            passes/pkgfact
            
            
          
           
      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. | 
| 
         
          
            passes/printf
            
            
          
           
      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. | 
| 
         
          
            passes/reflectvaluecompare
            
            
          
           
      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. | 
| 
         
          
            passes/shadow
            
            
          
           
      Package shadow defines an Analyzer that checks for shadowed variables. 
         | 
      Package shadow defines an Analyzer that checks for shadowed variables. | 
| 
         
          
            passes/shadow/cmd/shadow
            
            command
          
           
      The shadow command runs the shadow analyzer. 
         | 
      The shadow command runs the shadow analyzer. | 
| 
         
          
            passes/shift
            
            
          
           
      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. | 
| 
         
          
            passes/sigchanyzer
            
            
          
           
      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. | 
| 
         
          
            passes/sortslice
            
            
          
           
      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. | 
| 
         
          
            passes/stdmethods
            
            
          
           
      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. | 
| 
         
          
            passes/stringintconv
            
            
          
           
      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. | 
| 
         
          
            passes/stringintconv/cmd/stringintconv
            
            command
          
           
      The stringintconv command runs the stringintconv analyzer. 
         | 
      The stringintconv command runs the stringintconv analyzer. | 
| 
         
          
            passes/structtag
            
            
          
           
      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. | 
| 
         
          
            passes/tests
            
            
          
           
      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. | 
| 
         
          
            passes/unmarshal
            
            
          
           
      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. | 
| 
         
          
            passes/unmarshal/cmd/unmarshal
            
            command
          
           
      The unmarshal command runs the unmarshal analyzer. 
         | 
      The unmarshal command runs the unmarshal analyzer. | 
| 
         
          
            passes/unreachable
            
            
          
           
      Package unreachable defines an Analyzer that checks for unreachable code. 
         | 
      Package unreachable defines an Analyzer that checks for unreachable code. | 
| 
         
          
            passes/unsafeptr
            
            
          
           
      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. | 
| 
         
          
            passes/unusedresult
            
            
          
           
      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. | 
| 
         
          
            passes/unusedwrite
            
            
          
           
      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. | 
| 
         
          
            passes/usesgenerics
            
            
          
           
      Package usesgenerics defines an Analyzer that checks for usage of generic features added in Go 1.18. 
         | 
      Package usesgenerics defines an Analyzer that checks for usage of generic features added in Go 1.18. | 
| 
         
          
            singlechecker
            
            
          
           
      Package singlechecker defines the main function for an analysis driver with only a single analysis. 
         | 
      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. 
         | 
      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. 
         | 
      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. 
         | 
      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. | 
| 
       Package buildutil provides utilities related to the go/build package in the standard library. 
         | 
      Package buildutil provides utilities related to the go/build package in the standard library. | 
| 
       Package callgraph defines the call graph and various algorithms and utilities to operate on it. 
         | 
      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. 
         | 
      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. 
         | 
      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. 
         | 
      Package static computes the call graph of a Go program containing only static call edges. | 
| 
         
          
            vta
            
            
          
           
      Package 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. 
         | 
      Package 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. | 
| 
         
          
            vta/internal/trie
            
            
          
           
      trie implements persistent Patricia trie maps. 
         | 
      trie implements persistent Patricia trie maps. | 
| 
       Package cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function. 
         | 
      Package cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function. | 
| 
       Package expect provides support for interpreting structured comments in Go source code as test expectations. 
         | 
      Package expect provides support for interpreting structured comments in Go source code as test expectations. | 
| 
       Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler. 
         | 
      Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler. | 
| 
       Package gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler. 
         | 
      Package gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler. | 
| 
       internal
        | 
      |
| 
         
          
            gccgoimporter
            
            
          
           
      Package gccgoimporter implements Import for gccgo-generated object files. 
         | 
      Package gccgoimporter implements Import for gccgo-generated object files. | 
| 
         
          
            gcimporter
            
            
          
           
      Package gcimporter provides various functions for reading gc-generated object files that can be used to implement the Importer interface defined by the Go 1.5 standard library package. 
         | 
      Package gcimporter provides various functions for reading gc-generated object files that can be used to implement the Importer interface defined by the Go 1.5 standard library package. | 
| 
         
          
            packagesdriver
            
            
          
           
      Package packagesdriver fetches type sizes for go/packages and go/analysis. 
         | 
      Package packagesdriver fetches type sizes for go/packages and go/analysis. | 
| 
       Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies. 
         | 
      Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies. | 
| 
       Package packages loads Go packages for inspection and analysis. 
         | 
      Package packages loads Go packages for inspection and analysis. | 
| 
         
          
            gopackages
            
            command
          
           
      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. 
         | 
      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. 
         | 
      Package packagestest creates temporary projects on disk for testing go tools on. | 
| 
       Package pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994). 
         | 
      Package pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994). | 
| 
       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. 
         | 
      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. 
         | 
      Package ssa/interp defines an interpreter for the SSA representation of Go programs. | 
| 
       types
        | 
      |
| 
         
          
            objectpath
            
            
          
           
      Package objectpath defines a naming scheme for types.Objects (that is, named entities in Go programs) relative to their enclosing package. 
         | 
      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. 
         | 
      Package typeutil defines various utilities for types, such as Map, a mapping from types.Type to interface{} values. | 
| 
       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. 
         | 
      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. | 
 Click to show internal directories. 
   Click to hide internal directories.