Skip to content

Commit b12f51f

Browse files
authored
Simplify sortIssues implementation (#1277)
1 parent 54c2185 commit b12f51f

File tree

1 file changed

+10
-21
lines changed

1 file changed

+10
-21
lines changed

cmd/gosec/sort_issues.go

+10-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package main
22

33
import (
4-
"sort"
4+
"cmp"
5+
"slices"
56
"strconv"
67
"strings"
78

@@ -14,26 +15,14 @@ func extractLineNumber(s string) int {
1415
return lineNumber
1516
}
1617

17-
type sortBySeverity []*issue.Issue
18-
19-
func (s sortBySeverity) Len() int { return len(s) }
20-
21-
func (s sortBySeverity) Less(i, j int) bool {
22-
if s[i].Severity == s[j].Severity {
23-
if s[i].What == s[j].What {
24-
if s[i].File == s[j].File {
25-
return extractLineNumber(s[i].Line) > extractLineNumber(s[j].Line)
26-
}
27-
return s[i].File > s[j].File
28-
}
29-
return s[i].What > s[j].What
30-
}
31-
return s[i].Severity > s[j].Severity
32-
}
33-
34-
func (s sortBySeverity) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
35-
3618
// sortIssues sorts the issues by severity in descending order
3719
func sortIssues(issues []*issue.Issue) {
38-
sort.Sort(sortBySeverity(issues))
20+
slices.SortFunc(issues, func(i, j *issue.Issue) int {
21+
return -cmp.Or(
22+
cmp.Compare(i.Severity, j.Severity),
23+
cmp.Compare(i.What, j.What),
24+
cmp.Compare(i.File, j.File),
25+
cmp.Compare(extractLineNumber(i.Line), extractLineNumber(j.Line)),
26+
)
27+
})
3928
}

0 commit comments

Comments
 (0)