Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type File ¶
type File struct {
Name string // file name ("foo.go")
Pkg *Package // package it belongs to
FSPath paths.FS // where the file lives on disk
Imports map[paths.Pkg]ast.Node // imports in the file, keyed by import path pointed at the import spec
TestFile bool // whether the file is a test file
// contains filtered or unexported fields
}
func (*File) ASTInspector ¶
ASTInspector returns an AST inspector that's optimized for finding nodes of particular types. See inspector.Inspector for more information.
type FileNames ¶
type FileNames struct {
// contains filtered or unexported fields
}
FileNames contains name resolution results for a single file.
func (*FileNames) ResolvePkgLevelRef ¶
func (f *FileNames) ResolvePkgLevelRef(expr ast.Expr) (name QualifiedName, ok bool)
ResolvePkgLevelRef resolves the node to the package-level reference it refers to. Expr must be either *ast.Ident or *ast.SelectorExpr. If it doesn't refer to a package-level reference it returns ok == false.
type Loader ¶
type Loader struct {
// contains filtered or unexported fields
}
A Loader provides lazy loading of package information.
func (*Loader) LoadPkg ¶
LoadPkg loads a package. If the package contains no Go files to build, it returns (nil, false).
func (*Loader) MainModule ¶
MainModule returns the parsed main module.
func (*Loader) MustLoadPkg ¶
MustLoadPkg loads a package. If the package contains no Go files, it bails out.
func (*Loader) RuntimeModule ¶ added in v1.16.0
RuntimeModule returns the parsed runtime module.
type Module ¶
type Module struct {
RootDir paths.FS // the dir containing go.mod
Path paths.Mod // module path
Version string // module version
// contains filtered or unexported fields
}
Module describes a Go module.
type Package ¶
type PkgDeclInfo ¶
type PkgDeclInfo struct {
Name string
File *File
Pos token.Pos
Doc string
// Type describes what type of declaration this is.
// It's one of CONST, TYPE, VAR, or FUNC.
Type token.Token
// Spec is the spec for this declaration and GenDecl the declaration block
// it belongs to. They are set only when Type != FUNC.
Spec ast.Spec
GenDecl *ast.GenDecl
// Func is the function declaration, if Type == FUNC.
Func *ast.FuncDecl // for Type == FUNC
// Recv is the receiver type, if Type == FUNC and the function is a method.
Recv *PkgDeclInfo
}
PkgDeclInfo provides metadata for a package-level declaration.
func (*PkgDeclInfo) QualifiedName ¶ added in v1.16.0
func (i *PkgDeclInfo) QualifiedName() QualifiedName
type PkgNames ¶
type PkgNames struct {
// PkgDecls contains package-level declarations, keyed by name.
PkgDecls map[string]*PkgDeclInfo
// Funcs are all the func declarations.
Funcs []*PkgDeclInfo
// contains filtered or unexported fields
}
PkgNames contains name information that's package-global.
type QualifiedName ¶
A QualifiedName is the combination of a package path and a package-level name. It can be used to uniquely reference a package-level declaration.
func Q ¶
func Q(pkgPath paths.Pkg, name string) QualifiedName
Q is a helper function to construct a QualifiedName.
func (QualifiedName) NaiveDisplayName ¶
func (q QualifiedName) NaiveDisplayName() string
NaiveDisplayName returns the name as "pkgname.Name" by assuming the package name is equal to the last path component.