go/

directory
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2024 License: BSD-3-Clause

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
cgo
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.
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.
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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL