package analysisinternal
import "golang.org/x/tools/internal/analysisinternal"
Package analysisinternal exposes internal-only fields from go/analysis.
Index ¶
- Variables
- func IsZeroValue(expr ast.Expr) bool
- func MatchingIdents(typs []types.Type, node ast.Node, pos token.Pos, info *types.Info, pkg *types.Package) map[types.Type][]string
- func StmtToInsertVarBefore(path []ast.Node) ast.Stmt
- func TypeErrorEndPos(fset *token.FileSet, src []byte, start token.Pos) token.Pos
- func TypeExpr(f *ast.File, pkg *types.Package, typ types.Type) ast.Expr
- func WalkASTWithParent(n ast.Node, f func(n ast.Node, parent ast.Node) bool)
- func ZeroValue(f *ast.File, pkg *types.Package, typ types.Type) ast.Expr
- type TypeErrorPass
Variables ¶
var ( GetTypeErrors func(p interface{}) []types.Error SetTypeErrors func(p interface{}, errors []types.Error) )
DiagnoseFuzzTests controls whether the 'tests' analyzer diagnoses fuzz tests in Go 1.18+.
Functions ¶
func IsZeroValue ¶
IsZeroValue checks whether the given expression is a 'zero value' (as determined by output of analysisinternal.ZeroValue)
func MatchingIdents ¶
func MatchingIdents(typs []types.Type, node ast.Node, pos token.Pos, info *types.Info, pkg *types.Package) map[types.Type][]string
MatchingIdents finds the names of all identifiers in 'node' that match any of the given types. 'pos' represents the position at which the identifiers may be inserted. 'pos' must be within the scope of each of identifier we select. Otherwise, we will insert a variable at 'pos' that is unrecognized.
func StmtToInsertVarBefore ¶
StmtToInsertVarBefore returns the ast.Stmt before which we can safely insert a new variable. Some examples:
Basic Example: z := 1 y := z + x If x is undeclared, then this function would return `y := z + x`, so that we can insert `x := ` on the line before `y := z + x`.
If stmt example: if z == 1 { } else if z == y {} If y is undeclared, then this function would return `if z == 1 {`, because we cannot insert a statement between an if and an else if statement. As a result, we need to find the top of the if chain to insert `y := ` before.
func TypeErrorEndPos ¶
func TypeExpr ¶
TypeExpr returns syntax for the specified type. References to named types from packages other than pkg are qualified by an appropriate package name, as defined by the import environment of file.
func WalkASTWithParent ¶
WalkASTWithParent walks the AST rooted at n. The semantics are similar to ast.Inspect except it does not call f(nil).
func ZeroValue ¶
Types ¶
type TypeErrorPass ¶
type TypeErrorPass string
const ( NoNewVars TypeErrorPass = "nonewvars" NoResultValues TypeErrorPass = "noresultvalues" UndeclaredName TypeErrorPass = "undeclaredname" )
Source Files ¶
analysis.go
- Version
- v0.3.0
- Published
- Nov 9, 2022
- Platform
- js/wasm
- Imports
- 6 packages
- Last checked
- 6 hours ago –
Tools for package owners.