Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type File ¶
type File struct {
PathToName map[string]string // path -> local name
NameToPath map[string]string // local name -> path
Idents map[*ast.Ident]*Name // ident -> resolved
Calls []*ast.CallExpr
}
File provides file-level name resolution results.
type Name ¶
type Name struct {
Package bool // package symbol
Local bool // locally defined symbol
ImportPath string // non-zero indicates it resolves to the package with the given import path
}
Name provides metadata for a single identifier.
type PkgDecl ¶
type PkgDecl struct {
Name string
File *est.File
Pos token.Pos
Type token.Token // CONST, TYPE, VAR, FUNC
Func *ast.FuncDecl // for Type == FUNC
Spec ast.Spec // for other types
Doc string
}
PkgDecl provides metadata for a package-level declaration.
type Resolution ¶
type Resolution struct {
Decls map[string]*PkgDecl // package-level declarations, keyed by name
Files map[*est.File]*File
}
Resolution represents the name resolution results.
func Resolve ¶
func Resolve(fset *token.FileSet, track TrackedPackages, pkg *est.Package) (*Resolution, error)
Resolve resolves information about the names (idents) in the given package. The reported error is of type scanner.ErrorList if non-nil.
type TrackedPackages ¶
TrackedPackages defines the set of packages to track, defined as a map from import path to package name.
It is used to allow Resolve to efficiently determine the name of a package given its import path, as one otherwise needs to parse the package source to find it.
Click to show internal directories.
Click to hide internal directories.