// PreorderSeq returns an iterator that visits all the // nodes of the files supplied to New in depth-first order. // It visits each node n before n's children. // The complete traversal sequence is determined by ast.Inspect. // // The types argument, if non-empty, enables type-based // filtering of events: only nodes whose type matches an // element of the types slice are included in the sequence. func (in *Inspector) PreorderSeq(types ...ast.Node) iter.Seq[ast.Node] { … } // All[N] returns an iterator over all the nodes of type N. // N must be a pointer-to-struct type that implements ast.Node. // // Example: // // for call := range All[*ast.CallExpr](in) { ... } func All[N interface { … }