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/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. |
reflect | Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types. |