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. |
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/appends
Package appends defines an Analyzer that detects if there is only one variable in append.
|
Package appends defines an Analyzer that detects if there is only one variable in append. |
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/defers
Package defers defines an Analyzer that checks for common mistakes in defer statements.
|
Package defers defines an Analyzer that checks for common mistakes in defer statements. |
passes/defers/cmd/defers
The defers command runs the defers analyzer.
|
The defers command runs the defers analyzer. |
passes/directive
Package directive defines an Analyzer that checks known Go toolchain directives.
|
Package directive defines an Analyzer that checks known Go toolchain directives. |
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
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/httpmux/cmd/httpmux
The httpmux command runs the httpmux analyzer.
|
The httpmux command runs the httpmux analyzer. |
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
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 (github.com/block/ftl-golang-tools/go/ast/inspector.Inspector) for the syntax trees of a package.
|
Package inspect defines an Analyzer that provides an AST inspector (github.com/block/ftl-golang-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
The lostcancel command applies the github.com/block/ftl-golang-tools/go/analysis/passes/lostcancel analysis to the specified packages of Go source code.
|
The lostcancel command applies the github.com/block/ftl-golang-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
The nilness command applies the github.com/block/ftl-golang-tools/go/analysis/passes/nilness analysis to the specified packages of Go source code.
|
The nilness command applies the github.com/block/ftl-golang-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
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/slog
Package slog defines an Analyzer that checks for mismatched key-value pairs in log/slog calls.
|
Package slog defines an Analyzer that checks for mismatched key-value pairs in log/slog calls. |
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/stdversion
Package stdversion reports uses of standard library symbols that are "too new" for the Go version in force in the referring file.
|
Package stdversion reports uses of standard library symbols that are "too new" for the Go version in force in the referring file. |
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
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/testinggoroutine
Package testinggoroutine defines an Analyzerfor detecting calls to Fatal from a test goroutine.
|
Package testinggoroutine defines an Analyzerfor detecting calls to Fatal from a test goroutine. |
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/timeformat
Package timeformat defines an Analyzer that checks for the use of time.Format or time.Parse calls with a bad format.
|
Package timeformat defines an Analyzer that checks for the use of time.Format or time.Parse calls with a bad format. |
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
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/unusedresult/cmd/unusedresult
The unusedresult command applies the github.com/block/ftl-golang-tools/go/analysis/passes/unusedresult analysis to the specified packages of Go source code.
|
The unusedresult command applies the github.com/block/ftl-golang-tools/go/analysis/passes/unusedresult analysis to the specified packages of Go source code. |
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. |
programmaticchecker
Package programmaticchecker provides a mechanism for running a set of analyzers on a package programmatically.
|
Package programmaticchecker provides a mechanism for running a set of analyzers on a package programmatically. |
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 (including go.mod and go.work files) as test expectations.
|
Package expect provides support for interpreting structured comments in Go source code (including go.mod and go.work files) 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. |
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
The gopackages command is a diagnostic tool that demonstrates how to use github.com/block/ftl-golang-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 github.com/block/ftl-golang-tools/go/packages to load, parse, type-check, and print one or more Go packages. |
internal/nodecount
The nodecount program illustrates the use of packages.Load to print the frequency of occurrence of each type of syntax node among the selected packages.
|
The nodecount program illustrates the use of packages.Load to print the frequency of occurrence of each type of syntax node among the selected 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 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. |
types
|
|
internal/play
The play program is a playground for go/types: a simple web-based text editor into which the user can enter a Go program, select a region, and see type information about it.
|
The play program is a playground for go/types: a simple web-based text editor into which the user can enter a Go program, select a region, and see type information about it. |
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 any values.
|
Package typeutil defines various utilities for types, such as Map, a mapping from types.Type to any values. |
Click to show internal directories.
Click to hide internal directories.