astutil

package
v0.82.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package astutil provides shared AST/type helper functions used by linters.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalledOSFunc added in v0.82.3

func CalledOSFunc(pass *analysis.Pass, call *ast.CallExpr, allowedNames ...string) (*types.Func, bool)

CalledOSFunc reports whether call resolves to a function in package os. If allowedNames are provided, the function name must match one of them.

func ContextContextType added in v0.82.3

func ContextContextType(pass *analysis.Pass) types.Type

ContextContextType returns the types.Type for context.Context, or nil if the context package is not imported.

func ContextParamName added in v0.82.3

func ContextParamName(pass *analysis.Pass, fn *ast.FuncType) (string, bool)

ContextParamName returns the name of the first context.Context parameter in fn, and true, or "", false if none exists.

func EnclosingFuncType added in v0.82.3

func EnclosingFuncType(node ast.Node) *ast.FuncType

EnclosingFuncType extracts a function type from a FuncDecl or FuncLit node.

func FlipComparisonOp added in v0.82.3

func FlipComparisonOp(op token.Token) token.Token

FlipComparisonOp returns the comparison operator with left and right operands swapped.

func Inspector added in v0.79.4

func Inspector(pass *analysis.Pass) (*inspector.Inspector, error)

Inspector extracts the *inspector.Inspector from pass.ResultOf. It returns an error if the result has an unexpected type.

func IsFmtErrorf

func IsFmtErrorf(pass *analysis.Pass, call *ast.CallExpr) bool

IsFmtErrorf reports whether call is a call to fmt.Errorf (including aliases).

func IsGoOrDeferClosure added in v0.82.3

func IsGoOrDeferClosure(funcLitCur inspector.Cursor) bool

IsGoOrDeferClosure reports whether the FuncLit at funcLitCur is the direct callee of a go or defer statement, handling parenthesized forms like defer (func(){})().

func IsLocalObject

func IsLocalObject(obj types.Object) bool

IsLocalObject reports whether obj is a local (non-package-scope) object.

func IsPkgSelector added in v0.80.5

func IsPkgSelector(pass *analysis.Pass, sel *ast.SelectorExpr, pkgPath string) bool

IsPkgSelector reports whether sel is a selector on an imported package with the given import path.

func IsStringLiteral

func IsStringLiteral(expr ast.Expr) bool

IsStringLiteral reports whether expr is a string literal.

func NodeText added in v0.79.4

func NodeText(fset *token.FileSet, node ast.Node) string

NodeText formats node as Go source text using go/printer.

func RhsExprForIndex

func RhsExprForIndex(rhs []ast.Expr, idx int) (ast.Expr, bool)

RhsExprForIndex returns the RHS expression mapped to idx when available. When rhs has a single expression, only idx==0 is considered mapped.

func Root added in v0.82.2

func Root(pass *analysis.Pass) (inspector.Cursor, error)

Root extracts the inspector root cursor from pass.ResultOf. It returns an error if the inspect result has an unexpected type.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL