func main() { flag.Parse() importPaths := gotool.ImportPaths(flag.Args()) if len(importPaths) == 0 { return } var conf loader.Config conf.Fset = fset for _, importPath := range importPaths { conf.Import(importPath) } prog, err := conf.Load() if err != nil { log.Fatal(err) } for _, pkg := range prog.InitialPackages() { for _, file := range pkg.Files { ast.Inspect(file, func(node ast.Node) bool { if s, ok := node.(*ast.StructType); ok { malign(node.Pos(), pkg.Types[s].Type.(*types.Struct)) } return true }) } } }
func main() { flag.Parse() var conf loader.Config conf.Fset = fset for _, arg := range flag.Args() { conf.Import(arg) } prog, err := conf.Load() if err != nil { log.Fatal(err) } var v visitor for _, pkg := range prog.InitialPackages() { v.pkg = pkg for _, file := range pkg.Files { ast.Walk(&v, file) } } }