go/ast | Package ast declares the types used to represent syntax trees for Go packages. |
go/types | Package types declares the data types and implements the algorithms for type-checking of Go packages. |
golang.org/x/tools/go/analysis | Package analysis defines the interface between a modular static analysis and an analysis driver program. |
golang.org/x/tools/go/analysis/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. |
golang.org/x/tools/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. |
golang.org/x/tools/go/cfg | Package cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function. |
golang.org/x/tools/go/types/typeutil | Package typeutil defines various utilities for types, such as Map, a hash table that maps types.Type to any value. |
log | Package log implements a simple logging package. |
reflect | Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types. |