in gazelle/bzl/gazelle.go [261:281]
func getBzlFileLoads(path string) ([]string, error) {
f, err := ioutil.ReadFile(path)
if err != nil {
return nil, fmt.Errorf("ioutil.ReadFile(%q) error: %v", path, err)
}
ast, err := build.ParseBuild(path, f)
if err != nil {
return nil, fmt.Errorf("build.Parse(%q) error: %v", f, err)
}
var loads []string
build.WalkOnce(ast, func(expr *build.Expr) {
n := *expr
if l, ok := n.(*build.LoadStmt); ok {
loads = append(loads, l.Module.Value)
}
})
sort.Strings(loads)
return loads, nil
}