Skip to content

Commit d6c6e6b

Browse files
authored
analyzer: add tests for #360 (#361)
1 parent b223b6f commit d6c6e6b

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package regression
2+
3+
import "strings"
4+
5+
func _(s1, s2 string) {
6+
_ = map[int]int{
7+
strings.Compare("", ""): 0, // want `\Qdon't use strings.Compare`
8+
}
9+
10+
_ = map[int]int{
11+
10: strings.Compare("", ""), // want `\Qdon't use strings.Compare`
12+
}
13+
14+
_ = map[int]string{
15+
10: "a",
16+
strings.Compare(s1, s2): s2, // want `\Qdon't use strings.Compare`
17+
20: "b",
18+
}
19+
20+
_ = map[int]string{
21+
10: "a",
22+
20: "b",
23+
strings.Compare(s1, s2): s2, // want `\Qdon't use strings.Compare`
24+
}
25+
26+
_ = map[int]string{
27+
strings.Compare(s1, s2): s2, // want `\Qdon't use strings.Compare`
28+
10: "a",
29+
20: "b",
30+
}
31+
32+
}

analyzer/testdata/src/regression/rules.go

+7
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,10 @@ func issue315(m dsl.Matcher) {
6464
!m["arg"].Type.Is(`error`),
6565
).Report(`return concrete type instead of $arg`).At(m["name"])
6666
}
67+
68+
func issue360(m dsl.Matcher) {
69+
m.Match(`$_{$*_, $_: strings.Compare($s1, $_), $*_}`,
70+
`$_{$*_, strings.Compare($s1, $_): $_, $*_}`).
71+
Report(`don't use strings.Compare`).
72+
At(m["s1"])
73+
}

0 commit comments

Comments
 (0)