Documentation ¶
Overview ¶
Package code answers structural and type questions about Go code.
Index ¶
- func BoolConst(pass *analysis.Pass, expr ast.Expr) bool
- func CallName(pass *analysis.Pass, call *ast.CallExpr) string
- func ExprToInt(pass *analysis.Pass, expr ast.Expr) (int64, bool)
- func ExprToString(pass *analysis.Pass, expr ast.Expr) (string, bool)
- func File(pass *analysis.Pass, node Positioner) *ast.File
- func Generator(pass *analysis.Pass, pos token.Pos) (facts.Generator, bool)
- func IsBoolConst(pass *analysis.Pass, expr ast.Expr) bool
- func IsCallTo(pass *analysis.Pass, node ast.Node, name string) bool
- func IsCallToAny(pass *analysis.Pass, node ast.Node, names ...string) bool
- func IsGenerated(pass *analysis.Pass, pos token.Pos) bool
- func IsGoVersion(pass *analysis.Pass, minor int) bool
- func IsInTest(pass *analysis.Pass, node Positioner) bool
- func IsMain(pass *analysis.Pass) bool
- func IsMainLike(pass *analysis.Pass) bool
- func IsNil(pass *analysis.Pass, expr ast.Expr) bool
- func IsOfType(pass *analysis.Pass, expr ast.Expr, name string) bool
- func Match(pass *analysis.Pass, q pattern.Pattern, node ast.Node) (*pattern.Matcher, bool)
- func MatchAndEdit(pass *analysis.Pass, before, after pattern.Pattern, node ast.Node) (*pattern.Matcher, []analysis.TextEdit, bool)
- func MayHaveSideEffects(pass *analysis.Pass, expr ast.Expr, purity facts.PurityResult) bool
- func Preorder(pass *analysis.Pass, fn func(ast.Node), types ...ast.Node)
- func PreorderStack(pass *analysis.Pass, fn func(ast.Node, []ast.Node), types ...ast.Node)
- func SelectorName(pass *analysis.Pass, expr *ast.SelectorExpr) string
- type Positioner
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Generator ¶
Generator returns the generator that generated the file containing pos. It ignores //line directives.
func IsGenerated ¶
IsGenerated reports whether pos is in a generated file, It ignores //line directives.
func IsMainLike ¶
IsMainLike reports whether the package being processed is a main-like package. A main-like package is a package that is package main, or that is intended to be used by a tool framework such as cobra to implement a command.
Note that this function errs on the side of false positives; it may return true for packages that aren't main-like. IsMainLike is intended for analyses that wish to suppress diagnostics for main-like packages to avoid false positives.
func MatchAndEdit ¶
func MayHaveSideEffects ¶
MayHaveSideEffects reports whether expr may have side effects. If the purity argument is nil, this function implements a purely syntactic check, meaning that any function call may have side effects, regardless of the called function's body. Otherwise, purity will be consulted to determine the purity of function calls.
func PreorderStack ¶
func SelectorName ¶
func SelectorName(pass *analysis.Pass, expr *ast.SelectorExpr) string