// Validate reports an error if any of the analyzers are misconfigured. // Checks include: // that the name is a valid identifier; // that the Doc is not empty; // that the Run is non-nil; // that the Requires graph is acyclic; // that analyzer fact types are unique; // that each fact type is a pointer. // // Analyzer names need not be unique, though this may be confusing. func Validate(analyzers []*Analyzer) error { … } func validIdent(name string) bool { … } type CycleInRequiresGraphError … func (e *CycleInRequiresGraphError) Error() string { … }