github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/result/processors/issues.go (about) 1 package processors 2 3 import ( 4 "fmt" 5 6 "github.com/chenfeining/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, fmt.Errorf("can't filter issue %#v: %w", issues[i], err) 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 }