From 6963aef0e9e4e80c3e0d1a5549ab347658705017 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 13 Mar 2024 15:51:24 +0100 Subject: [PATCH 1/5] chore: simplify comparators --- pkg/result/processors/sort_results.go | 165 +++++++-------------- pkg/result/processors/sort_results_test.go | 36 ++--- 2 files changed, 66 insertions(+), 135 deletions(-) diff --git a/pkg/result/processors/sort_results.go b/pkg/result/processors/sort_results.go index 01ccc9943e06..dddf643c03b3 100644 --- a/pkg/result/processors/sort_results.go +++ b/pkg/result/processors/sort_results.go @@ -35,11 +35,11 @@ func NewSortResults(cfg *config.Config) *SortResults { cmps: map[string][]comparator{ // For sorting we are comparing (in next order): // file names, line numbers, position, and finally - giving up. - orderNameFile: {&byFileName{}, &byLine{}, &byColumn{}}, + orderNameFile: {byFileName(), byLine(), byColumn()}, // For sorting we are comparing: linter name - orderNameLinter: {&byLinter{}}, + orderNameLinter: {byLinter()}, // For sorting we are comparing: severity - orderNameSeverity: {&bySeverity{}}, + orderNameSeverity: {bySeverity()}, }, cfg: &cfg.Output, } @@ -115,77 +115,32 @@ type comparator interface { fmt.Stringer } -var ( - _ comparator = (*byFileName)(nil) - _ comparator = (*byLine)(nil) - _ comparator = (*byColumn)(nil) - _ comparator = (*byLinter)(nil) - _ comparator = (*bySeverity)(nil) -) - -type byFileName struct{ next comparator } - -func (cmp *byFileName) Next() comparator { return cmp.next } +var _ comparator = (*baseComparator)(nil) -func (cmp *byFileName) AddNext(c comparator) comparator { - cmp.next = c - return cmp +type baseComparator struct { + name string + compare func(a, b *result.Issue) compareResult + next comparator } -func (cmp *byFileName) Compare(a, b *result.Issue) compareResult { - res := compareResult(strings.Compare(a.FilePath(), b.FilePath())) - if !res.isNeutral() { - return res - } - - if next := cmp.Next(); next != nil { - return next.Compare(a, b) - } - - return res -} - -func (cmp *byFileName) String() string { - return comparatorToString("byFileName", cmp) -} - -type byLine struct{ next comparator } - -func (cmp *byLine) Next() comparator { return cmp.next } +func (cmp *baseComparator) Next() comparator { return cmp.next } -func (cmp *byLine) AddNext(c comparator) comparator { +func (cmp *baseComparator) AddNext(c comparator) comparator { cmp.next = c return cmp } -func (cmp *byLine) Compare(a, b *result.Issue) compareResult { - res := numericCompare(a.Line(), b.Line()) - if !res.isNeutral() { - return res - } - - if next := cmp.Next(); next != nil { - return next.Compare(a, b) +func (cmp *baseComparator) String() string { + s := cmp.name + if cmp.Next() != nil { + s += " > " + cmp.Next().String() } - return res -} - -func (cmp *byLine) String() string { - return comparatorToString("byLine", cmp) -} - -type byColumn struct{ next comparator } - -func (cmp *byColumn) Next() comparator { return cmp.next } - -func (cmp *byColumn) AddNext(c comparator) comparator { - cmp.next = c - return cmp + return s } -func (cmp *byColumn) Compare(a, b *result.Issue) compareResult { - res := numericCompare(a.Column(), b.Column()) +func (cmp *baseComparator) Compare(a, b *result.Issue) compareResult { + res := cmp.compare(a, b) if !res.isNeutral() { return res } @@ -197,60 +152,49 @@ func (cmp *byColumn) Compare(a, b *result.Issue) compareResult { return res } -func (cmp *byColumn) String() string { - return comparatorToString("byColumn", cmp) -} - -type byLinter struct{ next comparator } - -func (cmp *byLinter) Next() comparator { return cmp.next } - -func (cmp *byLinter) AddNext(c comparator) comparator { - cmp.next = c - return cmp -} - -func (cmp *byLinter) Compare(a, b *result.Issue) compareResult { - res := compareResult(strings.Compare(a.FromLinter, b.FromLinter)) - if !res.isNeutral() { - return res - } - - if next := cmp.Next(); next != nil { - return next.Compare(a, b) +func byFileName() *baseComparator { + return &baseComparator{ + name: "byFileName", + compare: func(a, b *result.Issue) compareResult { + return compareResult(strings.Compare(a.FilePath(), b.FilePath())) + }, } - - return res } -func (cmp *byLinter) String() string { - return comparatorToString("byLinter", cmp) -} - -type bySeverity struct{ next comparator } - -func (cmp *bySeverity) Next() comparator { return cmp.next } - -func (cmp *bySeverity) AddNext(c comparator) comparator { - cmp.next = c - return cmp +func byLine() *baseComparator { + return &baseComparator{ + name: "byLine", + compare: func(a, b *result.Issue) compareResult { + return numericCompare(a.Line(), b.Line()) + }, + } } -func (cmp *bySeverity) Compare(a, b *result.Issue) compareResult { - res := severityCompare(a.Severity, b.Severity) - if !res.isNeutral() { - return res +func byColumn() *baseComparator { + return &baseComparator{ + name: "byColumn", + compare: func(a, b *result.Issue) compareResult { + return numericCompare(a.Column(), b.Column()) + }, } +} - if next := cmp.Next(); next != nil { - return next.Compare(a, b) +func byLinter() *baseComparator { + return &baseComparator{ + name: "byLinter", + compare: func(a, b *result.Issue) compareResult { + return compareResult(strings.Compare(a.FromLinter, b.FromLinter)) + }, } - - return res } -func (cmp *bySeverity) String() string { - return comparatorToString("bySeverity", cmp) +func bySeverity() *baseComparator { + return &baseComparator{ + name: "bySeverity", + compare: func(a, b *result.Issue) compareResult { + return severityCompare(a.Severity, b.Severity) + }, + } } func mergeComparators(cmps []comparator) (comparator, error) { @@ -313,12 +257,3 @@ func numericCompare(a, b int) compareResult { return equal } - -func comparatorToString(name string, c comparator) string { - s := name - if c.Next() != nil { - s += " > " + c.Next().String() - } - - return s -} diff --git a/pkg/result/processors/sort_results_test.go b/pkg/result/processors/sort_results_test.go index ef73d5bb9437..67579e95c053 100644 --- a/pkg/result/processors/sort_results_test.go +++ b/pkg/result/processors/sort_results_test.go @@ -89,7 +89,7 @@ func testCompareValues(t *testing.T, cmp comparator, name string, tests []compar } func TestCompareByLine(t *testing.T) { - testCompareValues(t, &byLine{}, "Compare By Line", []compareTestCase{ + testCompareValues(t, byLine(), "Compare By Line", []compareTestCase{ {issues[0], issues[1], less}, // 10 vs 11 {issues[0], issues[0], equal}, // 10 vs 10 {issues[3], issues[3], equal}, // 10 vs 10 @@ -105,7 +105,7 @@ func TestCompareByLine(t *testing.T) { } func TestCompareByFileName(t *testing.T) { //nolint:dupl - testCompareValues(t, &byFileName{}, "Compare By File Name", []compareTestCase{ + testCompareValues(t, byFileName(), "Compare By File Name", []compareTestCase{ {issues[0], issues[1], greater}, // file_windows.go vs file_linux.go {issues[1], issues[2], greater}, // file_linux.go vs file_darwin.go {issues[2], issues[3], equal}, // file_darwin.go vs file_darwin.go @@ -120,7 +120,7 @@ func TestCompareByFileName(t *testing.T) { //nolint:dupl } func TestCompareByColumn(t *testing.T) { //nolint:dupl - testCompareValues(t, &byColumn{}, "Compare By Column", []compareTestCase{ + testCompareValues(t, byColumn(), "Compare By Column", []compareTestCase{ {issues[0], issues[1], greater}, // 80 vs 70 {issues[1], issues[2], none}, // 70 vs zero value {issues[3], issues[3], equal}, // 60 vs 60 @@ -135,7 +135,7 @@ func TestCompareByColumn(t *testing.T) { //nolint:dupl } func TestCompareByLinter(t *testing.T) { //nolint:dupl - testCompareValues(t, &byLinter{}, "Compare By Linter", []compareTestCase{ + testCompareValues(t, byLinter(), "Compare By Linter", []compareTestCase{ {issues[0], issues[1], greater}, // b vs a {issues[1], issues[2], less}, // a vs c {issues[2], issues[3], equal}, // c vs c @@ -150,7 +150,7 @@ func TestCompareByLinter(t *testing.T) { //nolint:dupl } func TestCompareBySeverity(t *testing.T) { - testCompareValues(t, &bySeverity{}, "Compare By Severity", []compareTestCase{ + testCompareValues(t, bySeverity(), "Compare By Severity", []compareTestCase{ {issues[0], issues[1], greater}, // medium vs low {issues[1], issues[2], less}, // low vs high {issues[2], issues[3], equal}, // high vs high @@ -167,11 +167,7 @@ func TestCompareBySeverity(t *testing.T) { } func TestCompareNested(t *testing.T) { - var cmp = &byFileName{ - next: &byLine{ - next: &byColumn{}, - }, - } + cmp := byFileName().AddNext(byLine().AddNext(byColumn())) testCompareValues(t, cmp, "Nested Comparing", []compareTestCase{ {issues[1], issues[0], less}, // file_linux.go vs file_windows.go @@ -188,7 +184,7 @@ func TestCompareNested(t *testing.T) { } func TestNumericCompare(t *testing.T) { - var tests = []struct { + tests := []struct { a, b int expected compareResult }{ @@ -214,10 +210,10 @@ func TestNumericCompare(t *testing.T) { } func TestNoSorting(t *testing.T) { - var tests = make([]result.Issue, len(issues)) + tests := make([]result.Issue, len(issues)) copy(tests, issues) - var sr = NewSortResults(&config.Config{}) + sr := NewSortResults(&config.Config{}) results, err := sr.Process(tests) require.NoError(t, err) @@ -225,12 +221,12 @@ func TestNoSorting(t *testing.T) { } func TestSorting(t *testing.T) { - var tests = make([]result.Issue, len(issues)) + tests := make([]result.Issue, len(issues)) copy(tests, issues) - var cfg = config.Config{} + cfg := config.Config{} cfg.Output.SortResults = true - var sr = NewSortResults(&cfg) + sr := NewSortResults(&cfg) results, err := sr.Process(tests) require.NoError(t, err) @@ -245,22 +241,22 @@ func Test_mergeComparators(t *testing.T) { }{ { desc: "one", - cmps: []comparator{&byLinter{}}, + cmps: []comparator{byLinter()}, expected: "byLinter", }, { desc: "two", - cmps: []comparator{&byLinter{}, &byFileName{}}, + cmps: []comparator{byLinter(), byFileName()}, expected: "byLinter > byFileName", }, { desc: "all", - cmps: []comparator{&bySeverity{}, &byLinter{}, &byFileName{}, &byLine{}, &byColumn{}}, + cmps: []comparator{bySeverity(), byLinter(), byFileName(), byLine(), byColumn()}, expected: "bySeverity > byLinter > byFileName > byLine > byColumn", }, { desc: "all reverse", - cmps: []comparator{&byColumn{}, &byLine{}, &byFileName{}, &byLinter{}, &bySeverity{}}, + cmps: []comparator{byColumn(), byLine(), byFileName(), byLinter(), bySeverity()}, expected: "byColumn > byLine > byFileName > byLinter > bySeverity", }, } From 905f4b7407a5f31eaec306a180a9866c68cd6bae Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 13 Mar 2024 15:59:06 +0100 Subject: [PATCH 2/5] chore: use nesting instead of slice --- pkg/result/processors/sort_results.go | 22 +++++++++++++++------- pkg/result/processors/sort_results_test.go | 5 +++++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/pkg/result/processors/sort_results.go b/pkg/result/processors/sort_results.go index dddf643c03b3..fcbe538149a4 100644 --- a/pkg/result/processors/sort_results.go +++ b/pkg/result/processors/sort_results.go @@ -25,21 +25,21 @@ const ( var _ Processor = (*SortResults)(nil) type SortResults struct { - cmps map[string][]comparator + cmps map[string]comparator cfg *config.Output } func NewSortResults(cfg *config.Config) *SortResults { return &SortResults{ - cmps: map[string][]comparator{ + cmps: map[string]comparator{ // For sorting we are comparing (in next order): // file names, line numbers, position, and finally - giving up. - orderNameFile: {byFileName(), byLine(), byColumn()}, + orderNameFile: byFileName().AddNext(byLine().AddNext(byColumn())), // For sorting we are comparing: linter name - orderNameLinter: {byLinter()}, + orderNameLinter: byLinter(), // For sorting we are comparing: severity - orderNameSeverity: {bySeverity()}, + orderNameSeverity: bySeverity(), }, cfg: &cfg.Output, } @@ -58,7 +58,7 @@ func (sr SortResults) Process(issues []result.Issue) ([]result.Issue, error) { var cmps []comparator for _, name := range sr.cfg.SortOrder { if c, ok := sr.cmps[name]; ok { - cmps = append(cmps, c...) + cmps = append(cmps, c) } else { return nil, fmt.Errorf("unsupported sort-order name %q", name) } @@ -203,12 +203,20 @@ func mergeComparators(cmps []comparator) (comparator, error) { } for i := 0; i < len(cmps)-1; i++ { - cmps[i].AddNext(cmps[i+1]) + findComparatorTip(cmps[i]).AddNext(cmps[i+1]) } return cmps[0], nil } +func findComparatorTip(cmp comparator) comparator { + if cmp.Next() != nil { + return findComparatorTip(cmp.Next()) + } + + return cmp +} + func severityCompare(a, b string) compareResult { // The position inside the slice define the importance (lower to higher). classic := []string{"low", "medium", "high", "warning", "error"} diff --git a/pkg/result/processors/sort_results_test.go b/pkg/result/processors/sort_results_test.go index 67579e95c053..66a877b90ba2 100644 --- a/pkg/result/processors/sort_results_test.go +++ b/pkg/result/processors/sort_results_test.go @@ -254,6 +254,11 @@ func Test_mergeComparators(t *testing.T) { cmps: []comparator{bySeverity(), byLinter(), byFileName(), byLine(), byColumn()}, expected: "bySeverity > byLinter > byFileName > byLine > byColumn", }, + { + desc: "nested", + cmps: []comparator{bySeverity(), byFileName().AddNext(byLine().AddNext(byColumn())), byLinter()}, + expected: "bySeverity > byFileName > byLine > byColumn > byLinter", + }, { desc: "all reverse", cmps: []comparator{byColumn(), byLine(), byFileName(), byLinter(), bySeverity()}, From f84c4a58aae0140a1c1c36c55aef9490fb62d582 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 13 Mar 2024 16:12:06 +0100 Subject: [PATCH 3/5] chore: remove useless interface --- pkg/result/processors/sort_results.go | 53 +++++++++------------- pkg/result/processors/sort_results_test.go | 14 +++--- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/pkg/result/processors/sort_results.go b/pkg/result/processors/sort_results.go index fcbe538149a4..ab3ca274698a 100644 --- a/pkg/result/processors/sort_results.go +++ b/pkg/result/processors/sort_results.go @@ -25,14 +25,14 @@ const ( var _ Processor = (*SortResults)(nil) type SortResults struct { - cmps map[string]comparator + cmps map[string]*comparator cfg *config.Output } func NewSortResults(cfg *config.Config) *SortResults { return &SortResults{ - cmps: map[string]comparator{ + cmps: map[string]*comparator{ // For sorting we are comparing (in next order): // file names, line numbers, position, and finally - giving up. orderNameFile: byFileName().AddNext(byLine().AddNext(byColumn())), @@ -55,7 +55,7 @@ func (sr SortResults) Process(issues []result.Issue) ([]result.Issue, error) { sr.cfg.SortOrder = []string{orderNameFile} } - var cmps []comparator + var cmps []*comparator for _, name := range sr.cfg.SortOrder { if c, ok := sr.cmps[name]; ok { cmps = append(cmps, c) @@ -107,30 +107,21 @@ func (c compareResult) String() string { } } -// comparator describes how to implement compare for two "issues". -type comparator interface { - Compare(a, b *result.Issue) compareResult - Next() comparator - AddNext(comparator) comparator - fmt.Stringer -} - -var _ comparator = (*baseComparator)(nil) - -type baseComparator struct { +// baseComparator describes how to implement compare for two "issues". +type comparator struct { name string compare func(a, b *result.Issue) compareResult - next comparator + next *comparator } -func (cmp *baseComparator) Next() comparator { return cmp.next } +func (cmp *comparator) Next() *comparator { return cmp.next } -func (cmp *baseComparator) AddNext(c comparator) comparator { +func (cmp *comparator) AddNext(c *comparator) *comparator { cmp.next = c return cmp } -func (cmp *baseComparator) String() string { +func (cmp *comparator) String() string { s := cmp.name if cmp.Next() != nil { s += " > " + cmp.Next().String() @@ -139,7 +130,7 @@ func (cmp *baseComparator) String() string { return s } -func (cmp *baseComparator) Compare(a, b *result.Issue) compareResult { +func (cmp *comparator) Compare(a, b *result.Issue) compareResult { res := cmp.compare(a, b) if !res.isNeutral() { return res @@ -152,8 +143,8 @@ func (cmp *baseComparator) Compare(a, b *result.Issue) compareResult { return res } -func byFileName() *baseComparator { - return &baseComparator{ +func byFileName() *comparator { + return &comparator{ name: "byFileName", compare: func(a, b *result.Issue) compareResult { return compareResult(strings.Compare(a.FilePath(), b.FilePath())) @@ -161,8 +152,8 @@ func byFileName() *baseComparator { } } -func byLine() *baseComparator { - return &baseComparator{ +func byLine() *comparator { + return &comparator{ name: "byLine", compare: func(a, b *result.Issue) compareResult { return numericCompare(a.Line(), b.Line()) @@ -170,8 +161,8 @@ func byLine() *baseComparator { } } -func byColumn() *baseComparator { - return &baseComparator{ +func byColumn() *comparator { + return &comparator{ name: "byColumn", compare: func(a, b *result.Issue) compareResult { return numericCompare(a.Column(), b.Column()) @@ -179,8 +170,8 @@ func byColumn() *baseComparator { } } -func byLinter() *baseComparator { - return &baseComparator{ +func byLinter() *comparator { + return &comparator{ name: "byLinter", compare: func(a, b *result.Issue) compareResult { return compareResult(strings.Compare(a.FromLinter, b.FromLinter)) @@ -188,8 +179,8 @@ func byLinter() *baseComparator { } } -func bySeverity() *baseComparator { - return &baseComparator{ +func bySeverity() *comparator { + return &comparator{ name: "bySeverity", compare: func(a, b *result.Issue) compareResult { return severityCompare(a.Severity, b.Severity) @@ -197,7 +188,7 @@ func bySeverity() *baseComparator { } } -func mergeComparators(cmps []comparator) (comparator, error) { +func mergeComparators(cmps []*comparator) (*comparator, error) { if len(cmps) == 0 { return nil, errors.New("no comparator") } @@ -209,7 +200,7 @@ func mergeComparators(cmps []comparator) (comparator, error) { return cmps[0], nil } -func findComparatorTip(cmp comparator) comparator { +func findComparatorTip(cmp *comparator) *comparator { if cmp.Next() != nil { return findComparatorTip(cmp.Next()) } diff --git a/pkg/result/processors/sort_results_test.go b/pkg/result/processors/sort_results_test.go index 66a877b90ba2..c0f178cf6470 100644 --- a/pkg/result/processors/sort_results_test.go +++ b/pkg/result/processors/sort_results_test.go @@ -76,7 +76,7 @@ type compareTestCase struct { expected compareResult } -func testCompareValues(t *testing.T, cmp comparator, name string, tests []compareTestCase) { +func testCompareValues(t *testing.T, cmp *comparator, name string, tests []compareTestCase) { t.Parallel() for i := 0; i < len(tests); i++ { @@ -236,32 +236,32 @@ func TestSorting(t *testing.T) { func Test_mergeComparators(t *testing.T) { testCases := []struct { desc string - cmps []comparator + cmps []*comparator expected string }{ { desc: "one", - cmps: []comparator{byLinter()}, + cmps: []*comparator{byLinter()}, expected: "byLinter", }, { desc: "two", - cmps: []comparator{byLinter(), byFileName()}, + cmps: []*comparator{byLinter(), byFileName()}, expected: "byLinter > byFileName", }, { desc: "all", - cmps: []comparator{bySeverity(), byLinter(), byFileName(), byLine(), byColumn()}, + cmps: []*comparator{bySeverity(), byLinter(), byFileName(), byLine(), byColumn()}, expected: "bySeverity > byLinter > byFileName > byLine > byColumn", }, { desc: "nested", - cmps: []comparator{bySeverity(), byFileName().AddNext(byLine().AddNext(byColumn())), byLinter()}, + cmps: []*comparator{bySeverity(), byFileName().AddNext(byLine().AddNext(byColumn())), byLinter()}, expected: "bySeverity > byFileName > byLine > byColumn > byLinter", }, { desc: "all reverse", - cmps: []comparator{byColumn(), byLine(), byFileName(), byLinter(), bySeverity()}, + cmps: []*comparator{byColumn(), byLine(), byFileName(), byLinter(), bySeverity()}, expected: "byColumn > byLine > byFileName > byLinter > bySeverity", }, } From 4f92ccdb7d8dd16ba56e6118790a280db8f81098 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 13 Mar 2024 16:22:36 +0100 Subject: [PATCH 4/5] chore: rename AddNext by SetNext --- pkg/result/processors/sort_results.go | 6 +++--- pkg/result/processors/sort_results_test.go | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/result/processors/sort_results.go b/pkg/result/processors/sort_results.go index ab3ca274698a..31e8f3243644 100644 --- a/pkg/result/processors/sort_results.go +++ b/pkg/result/processors/sort_results.go @@ -35,7 +35,7 @@ func NewSortResults(cfg *config.Config) *SortResults { cmps: map[string]*comparator{ // For sorting we are comparing (in next order): // file names, line numbers, position, and finally - giving up. - orderNameFile: byFileName().AddNext(byLine().AddNext(byColumn())), + orderNameFile: byFileName().SetNext(byLine().SetNext(byColumn())), // For sorting we are comparing: linter name orderNameLinter: byLinter(), // For sorting we are comparing: severity @@ -116,7 +116,7 @@ type comparator struct { func (cmp *comparator) Next() *comparator { return cmp.next } -func (cmp *comparator) AddNext(c *comparator) *comparator { +func (cmp *comparator) SetNext(c *comparator) *comparator { cmp.next = c return cmp } @@ -194,7 +194,7 @@ func mergeComparators(cmps []*comparator) (*comparator, error) { } for i := 0; i < len(cmps)-1; i++ { - findComparatorTip(cmps[i]).AddNext(cmps[i+1]) + findComparatorTip(cmps[i]).SetNext(cmps[i+1]) } return cmps[0], nil diff --git a/pkg/result/processors/sort_results_test.go b/pkg/result/processors/sort_results_test.go index c0f178cf6470..c75b0bbeb8db 100644 --- a/pkg/result/processors/sort_results_test.go +++ b/pkg/result/processors/sort_results_test.go @@ -167,7 +167,7 @@ func TestCompareBySeverity(t *testing.T) { } func TestCompareNested(t *testing.T) { - cmp := byFileName().AddNext(byLine().AddNext(byColumn())) + cmp := byFileName().SetNext(byLine().SetNext(byColumn())) testCompareValues(t, cmp, "Nested Comparing", []compareTestCase{ {issues[1], issues[0], less}, // file_linux.go vs file_windows.go @@ -256,7 +256,7 @@ func Test_mergeComparators(t *testing.T) { }, { desc: "nested", - cmps: []*comparator{bySeverity(), byFileName().AddNext(byLine().AddNext(byColumn())), byLinter()}, + cmps: []*comparator{bySeverity(), byFileName().SetNext(byLine().SetNext(byColumn())), byLinter()}, expected: "bySeverity > byFileName > byLine > byColumn > byLinter", }, { From 3bd6f04d3bb3f3aa1d552584e0ccbf80953e25cf Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Wed, 13 Mar 2024 19:29:45 +0100 Subject: [PATCH 5/5] review Co-authored-by: Oleksandr Redko --- pkg/result/processors/sort_results.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/result/processors/sort_results.go b/pkg/result/processors/sort_results.go index 31e8f3243644..8e4af57e6332 100644 --- a/pkg/result/processors/sort_results.go +++ b/pkg/result/processors/sort_results.go @@ -107,7 +107,7 @@ func (c compareResult) String() string { } } -// baseComparator describes how to implement compare for two "issues". +// comparator describes how to implement compare for two "issues". type comparator struct { name string compare func(a, b *result.Issue) compareResult