diff --git a/analyzer/testdata/src/regression/issue360.go b/analyzer/testdata/src/regression/issue360.go new file mode 100644 index 00000000..98f1cd23 --- /dev/null +++ b/analyzer/testdata/src/regression/issue360.go @@ -0,0 +1,32 @@ +package regression + +import "strings" + +func _(s1, s2 string) { + _ = map[int]int{ + strings.Compare("", ""): 0, // want `\Qdon't use strings.Compare` + } + + _ = map[int]int{ + 10: strings.Compare("", ""), // want `\Qdon't use strings.Compare` + } + + _ = map[int]string{ + 10: "a", + strings.Compare(s1, s2): s2, // want `\Qdon't use strings.Compare` + 20: "b", + } + + _ = map[int]string{ + 10: "a", + 20: "b", + strings.Compare(s1, s2): s2, // want `\Qdon't use strings.Compare` + } + + _ = map[int]string{ + strings.Compare(s1, s2): s2, // want `\Qdon't use strings.Compare` + 10: "a", + 20: "b", + } + +} diff --git a/analyzer/testdata/src/regression/rules.go b/analyzer/testdata/src/regression/rules.go index 808d33bc..3ee755b0 100644 --- a/analyzer/testdata/src/regression/rules.go +++ b/analyzer/testdata/src/regression/rules.go @@ -64,3 +64,10 @@ func issue315(m dsl.Matcher) { !m["arg"].Type.Is(`error`), ).Report(`return concrete type instead of $arg`).At(m["name"]) } + +func issue360(m dsl.Matcher) { + m.Match(`$_{$*_, $_: strings.Compare($s1, $_), $*_}`, + `$_{$*_, strings.Compare($s1, $_): $_, $*_}`). + Report(`don't use strings.Compare`). + At(m["s1"]) +}