Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Errors ¶
Errors contains a list of parser errors or a list of typechecker errors for the given package.
type ImportCycleError ¶
ImportCycleErrors is returned when encountering an import cycle. The list of packages is a list from the root package to the leaf package that imports one of the packages in the list.
func (*ImportCycleError) Error ¶
func (e *ImportCycleError) Error() string
type Package ¶
type Package struct { *Program *build.Package Imports map[string]*Package Importing bool Files []*ast.File Pkg *types.Package types.Info }
Package holds a loaded package, its imports, and its parsed files.
func (*Package) Check ¶
Check runs the package through the typechecker. The package must already be loaded and all dependencies must have been checked already.
Idempotent.
type Program ¶
type Program struct { Build *build.Context OverlayBuild *build.Context ShouldOverlay func(path string) bool Packages map[string]*Package TypeChecker types.Config Dir string // current working directory (for error reporting) CFlags []string // contains filtered or unexported fields }
Program holds all packages and some metadata about the program as a whole.
func (*Program) Import ¶
Import loads the given package relative to srcDir (for the vendor directory). It only loads the current package without recursion.
func (*Program) ImportFile ¶
ImportFile loads and parses the import statements in the given path and creates a pseudo-package out of it.
func (*Program) LoadSSA ¶
LoadSSA constructs the SSA form of the loaded packages.
The program must already be parsed and type-checked with the .Parse() method.
type RefMap ¶ added in v0.5.0
type RefMap struct {
// contains filtered or unexported fields
}
RefMap is a convenient way to store opaque references that can be passed to C. It is useful if an API uses function pointers and you cannot pass a Go pointer but only a C pointer.
func (*RefMap) Get ¶ added in v0.5.0
Get returns a stored value previously inserted with Put. Use the same reference as you got from Put.