Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.0.1-2020.1.5 / simple / testdata / src / CheckUnnecessaryGuard / LintUnnecessaryGuard.go
1 package pkg
2
3 func fn() {
4         var m = map[string][]string{}
5
6         if _, ok := m["k1"]; ok { // want `unnecessary guard around map access`
7                 m["k1"] = append(m["k1"], "v1", "v2")
8         } else {
9                 m["k1"] = []string{"v1", "v2"}
10         }
11
12         if _, ok := m["k1"]; ok {
13                 m["k1"] = append(m["k1"], "v1", "v2")
14         } else {
15                 m["k1"] = []string{"v1"}
16         }
17
18         if _, ok := m["k1"]; ok {
19                 m["k2"] = append(m["k2"], "v1")
20         } else {
21                 m["k1"] = []string{"v1"}
22         }
23
24         k1 := "key"
25         if _, ok := m[k1]; ok { // want `unnecessary guard around map access`
26                 m[k1] = append(m[k1], "v1", "v2")
27         } else {
28                 m[k1] = []string{"v1", "v2"}
29         }
30
31         // ellipsis is not currently supported
32         v := []string{"v1", "v2"}
33         if _, ok := m["k1"]; ok {
34                 m["k1"] = append(m["k1"], v...)
35         } else {
36                 m["k1"] = v
37         }
38
39         var m2 map[string]int
40         if _, ok := m2["k"]; ok { // want `unnecessary guard around map access`
41                 m2["k"] += 4
42         } else {
43                 m2["k"] = 4
44         }
45
46         if _, ok := m2["k"]; ok {
47                 m2["k"] += 4
48         } else {
49                 m2["k"] = 3
50         }
51
52         if _, ok := m2["k"]; ok { // want `unnecessary guard around map access`
53                 m2["k"]++
54         } else {
55                 m2["k"] = 1
56         }
57
58         if _, ok := m2["k"]; ok {
59                 m2["k"] -= 1
60         } else {
61                 m2["k"] = 1
62         }
63 }
64
65 // this used to cause a panic in the pattern package
66 func fn2() {
67         var obj interface{}
68
69         if _, ok := obj.(map[string]interface{})["items"]; ok {
70                 obj.(map[string]interface{})["version"] = 1
71         }
72 }