func (this DepthWalker) Visit(node ast.Node) ast.Visitor { if node == nil { return this + 1 } buffer := "" for i := 0; i < int(this); i++ { buffer += " " } fmt.Printf("%sPos: %d %s\n", buffer, node.Pos(), AllSources.Position(node.Pos())) fmt.Printf("%sEnd: %d %s\n", buffer, node.End(), AllSources.Position(node.End())) fmt.Printf("%s%T\n", buffer, node) fmt.Printf("%s%v\n", buffer, node) if e, ok := node.(ast.Expr); ok { obj, typ := types.ExprType(e, LocalImporter) fmt.Printf("%s%v\n", buffer, obj) fmt.Printf("%s%v\n", buffer, typ) } fmt.Println() switch n := node.(type) { } return this + 1 }