type go/ast.Node
90 uses
go/ast (current package)
ast.go#L32: type Node interface {
ast.go#L39: Node
ast.go#L45: Node
ast.go#L51: Node
ast.go#L893: Node
commentmap.go#L26: type CommentMap map[Node][]*CommentGroup
commentmap.go#L28: func (cmap CommentMap) addComment(n Node, c *CommentGroup) {
commentmap.go#L39: func nodeList(n Node) []Node {
commentmap.go#L40: var list []Node
commentmap.go#L41: Inspect(n, func(n Node) bool {
commentmap.go#L90: type nodeStack []Node
commentmap.go#L94: func (s *nodeStack) push(n Node) {
commentmap.go#L102: func (s *nodeStack) pop(pos token.Pos) (top Node) {
commentmap.go#L127: func NewCommentMap(fset *token.FileSet, node Node, comments []*CommentGroup) CommentMap {
commentmap.go#L147: p Node // previous node
commentmap.go#L149: pg Node // previous node group (enclosing nodes of "importance")
commentmap.go#L178: var assoc Node
commentmap.go#L229: func (cmap CommentMap) Update(old, new Node) Node {
commentmap.go#L240: func (cmap CommentMap) Filter(node Node) CommentMap {
commentmap.go#L242: Inspect(node, func(n Node) bool {
commentmap.go#L300: var nodes []Node
commentmap.go#L304: slices.SortFunc(nodes, func(a, b Node) int {
walk.go#L16: Visit(node Node) (w Visitor)
walk.go#L19: func walkList[N Node](v Visitor, list []N) {
walk.go#L33: func Walk(v Visitor, node Node) {
walk.go#L358: type inspector func(Node) bool
walk.go#L360: func (f inspector) Visit(node Node) Visitor {
walk.go#L371: func Inspect(node Node, f func(Node) bool) {
walk.go#L380: func Preorder(root Node) iter.Seq[Node] {
walk.go#L381: return func(yield func(Node) bool) {
walk.go#L383: Inspect(root, func(n Node) bool {
go/doc
example.go#L27: Code ast.Node
example.go#L335: func findDeclsAndUnresolved(body ast.Node, topDecls map[*ast.Object]ast.Decl, typMethods map[string][]ast.Decl) ([]ast.Decl, map[string]bool) {
example.go#L346: var inspectFunc func(ast.Node) bool
example.go#L347: inspectFunc = func(n ast.Node) bool {
example.go#L495: ast.Inspect(s, func(n ast.Node) bool {
go/parser
resolver.go#L250: func (r *resolver) Visit(node ast.Node) ast.Visitor {
go/printer
nodes.go#L1251: ast.Inspect(px.X, func(node ast.Node) bool {
nodes.go#L1803: func (p *printer) nodeSize(n ast.Node, maxSize int) (size int) {
nodes.go#L1832: func (p *printer) numLines(n ast.Node) int {
printer.go#L92: nodeSizes map[ast.Node]int
printer.go#L1049: func getDoc(n ast.Node) *ast.CommentGroup {
printer.go#L1069: func getLastComment(n ast.Node) *ast.CommentGroup {
printer.go#L1101: n, ok := node.(ast.Node)
printer.go#L1335: func newPrinter(cfg *Config, fset *token.FileSet, nodeSizes map[ast.Node]int) *printer {
printer.go#L1360: func (cfg *Config) fprint(output io.Writer, fset *token.FileSet, node any, nodeSizes map[ast.Node]int) (err error) {
printer.go#L1424: return cfg.fprint(output, fset, node, make(map[ast.Node]int))
go/types
api.go#L276: Implicits map[ast.Node]Object
api.go#L315: Scopes map[ast.Node]*Scope
decl.go#L360: node() ast.Node
decl.go#L376: func (d importDecl) node() ast.Node { return d.spec }
decl.go#L377: func (d constDecl) node() ast.Node { return d.spec }
decl.go#L378: func (d varDecl) node() ast.Node { return d.spec }
decl.go#L379: func (d typeDecl) node() ast.Node { return d.spec }
decl.go#L380: func (d funcDecl) node() ast.Node { return d.decl }
errors.go#L283: func inNode(node ast.Node, pos token.Pos) posSpan {
errors.go#L300: case ast.Node:
index.go#L433: func unpackIndexedExpr(n ast.Node) *indexedExpr {
recording.go#L156: func (check *Checker) recordImplicit(node ast.Node, obj Object) {
recording.go#L172: func (check *Checker) recordScope(node ast.Node, scope *Scope) {
stmt.go#L153: func (check *Checker) openScope(node ast.Node, comment string) {
util.go#L50: func startPos(n ast.Node) token.Pos { return n.Pos() }
util.go#L53: func endPos(n ast.Node) token.Pos { return n.End() }
golang.org/x/tools/go/packages
packages.go#L1190: Implicits: make(map[ast.Node]types.Object),
packages.go#L1192: Scopes: make(map[ast.Node]*types.Scope),
golang.org/x/tools/internal/typeparams
common.go#L30: func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) {
golang.org/x/tools/internal/typesinternal
types.go#L150: Implicits: map[ast.Node]types.Object{},
types.go#L152: Scopes: map[ast.Node]*types.Scope{},
gotest.tools/v3/internal/source
defers.go#L9: func scanToDeferLine(fileset *token.FileSet, node ast.Node, lineNum int) ast.Node {
defers.go#L10: var matchedNode ast.Node
defers.go#L11: ast.Inspect(node, func(node ast.Node) bool {
defers.go#L27: func guessDefer(node ast.Node) (ast.Node, error) {
defers.go#L41: func collectDefers(node ast.Node) []*ast.DeferStmt {
defers.go#L43: ast.Inspect(node, func(node ast.Node) bool {
source.go#L51: func getNodeAtLine(fileset *token.FileSet, astFile ast.Node, lineNum int) (ast.Node, error) {
source.go#L64: func scanToLine(fileset *token.FileSet, node ast.Node, lineNum int) ast.Node {
source.go#L65: var matchedNode ast.Node
source.go#L66: ast.Inspect(node, func(node ast.Node) bool {
source.go#L79: func getCallExprArgs(fileset *token.FileSet, astFile ast.Node, line int) ([]ast.Expr, error) {
source.go#L103: func (v *callExprVisitor) Visit(node ast.Node) ast.Visitor {
source.go#L121: func FormatNode(node ast.Node) (string, error) {
source.go#L136: ast.Node