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
diff --git a/.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 b/.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
new file mode 100644 (file)
index 0000000..18530cd
--- /dev/null
@@ -0,0 +1,72 @@
+package pkg
+
+func fn() {
+       var m = map[string][]string{}
+
+       if _, ok := m["k1"]; ok { // want `unnecessary guard around map access`
+               m["k1"] = append(m["k1"], "v1", "v2")
+       } else {
+               m["k1"] = []string{"v1", "v2"}
+       }
+
+       if _, ok := m["k1"]; ok {
+               m["k1"] = append(m["k1"], "v1", "v2")
+       } else {
+               m["k1"] = []string{"v1"}
+       }
+
+       if _, ok := m["k1"]; ok {
+               m["k2"] = append(m["k2"], "v1")
+       } else {
+               m["k1"] = []string{"v1"}
+       }
+
+       k1 := "key"
+       if _, ok := m[k1]; ok { // want `unnecessary guard around map access`
+               m[k1] = append(m[k1], "v1", "v2")
+       } else {
+               m[k1] = []string{"v1", "v2"}
+       }
+
+       // ellipsis is not currently supported
+       v := []string{"v1", "v2"}
+       if _, ok := m["k1"]; ok {
+               m["k1"] = append(m["k1"], v...)
+       } else {
+               m["k1"] = v
+       }
+
+       var m2 map[string]int
+       if _, ok := m2["k"]; ok { // want `unnecessary guard around map access`
+               m2["k"] += 4
+       } else {
+               m2["k"] = 4
+       }
+
+       if _, ok := m2["k"]; ok {
+               m2["k"] += 4
+       } else {
+               m2["k"] = 3
+       }
+
+       if _, ok := m2["k"]; ok { // want `unnecessary guard around map access`
+               m2["k"]++
+       } else {
+               m2["k"] = 1
+       }
+
+       if _, ok := m2["k"]; ok {
+               m2["k"] -= 1
+       } else {
+               m2["k"] = 1
+       }
+}
+
+// this used to cause a panic in the pattern package
+func fn2() {
+       var obj interface{}
+
+       if _, ok := obj.(map[string]interface{})["items"]; ok {
+               obj.(map[string]interface{})["version"] = 1
+       }
+}