github.com/nozzle/golangci-lint@v1.49.0-nz3/pkg/result/processors/issues.go (about) 1 package processors 2 3 import ( 4 "github.com/pkg/errors" 5 6 "github.com/golangci/golangci-lint/pkg/result" 7 ) 8 9 func filterIssues(issues []result.Issue, filter func(i *result.Issue) bool) []result.Issue { 10 retIssues := make([]result.Issue, 0, len(issues)) 11 for i := range issues { 12 if filter(&issues[i]) { 13 retIssues = append(retIssues, issues[i]) 14 } 15 } 16 17 return retIssues 18 } 19 20 func filterIssuesErr(issues []result.Issue, filter func(i *result.Issue) (bool, error)) ([]result.Issue, error) { 21 retIssues := make([]result.Issue, 0, len(issues)) 22 for i := range issues { 23 ok, err := filter(&issues[i]) 24 if err != nil { 25 return nil, errors.Wrapf(err, "can't filter issue %#v", issues[i]) 26 } 27 28 if ok { 29 retIssues = append(retIssues, issues[i]) 30 } 31 } 32 33 return retIssues, nil 34 } 35 36 func transformIssues(issues []result.Issue, transform func(i *result.Issue) *result.Issue) []result.Issue { 37 retIssues := make([]result.Issue, 0, len(issues)) 38 for i := range issues { 39 newI := transform(&issues[i]) 40 if newI != nil { 41 retIssues = append(retIssues, *newI) 42 } 43 } 44 45 return retIssues 46 }