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 / CheckGuardedDelete / LintGuardedDelete.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/CheckGuardedDelete/LintGuardedDelete.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.0.1-2020.1.5/simple/testdata/src/CheckGuardedDelete/LintGuardedDelete.go
new file mode 100644 (file)
index 0000000..b246342
--- /dev/null
@@ -0,0 +1,44 @@
+// Package pkg ...
+package pkg
+
+func fn(m map[int]int) {
+       if _, ok := m[0]; ok { // want `unnecessary guard`
+               delete(m, 0)
+       }
+       if _, ok := m[0]; !ok {
+               delete(m, 0)
+       }
+       if _, ok := m[0]; ok {
+               println("deleting")
+               delete(m, 0)
+       }
+       if v, ok := m[0]; ok && v > 0 {
+               delete(m, 0)
+       }
+
+       var key int
+       if _, ok := m[key]; ok { // want `unnecessary guard`
+               delete(m, key)
+       }
+       if _, ok := m[key]; ok {
+               delete(m, 0)
+       }
+       if _, ok := m[key]; ok {
+               delete(m, key)
+       } else {
+               println("not deleted")
+       }
+
+       var ok bool
+       if _, ok = m[key]; ok {
+               delete(m, 0)
+       }
+       if ok {
+               println("deleted")
+       }
+
+       delete := func(a, b interface{}) {}
+       if _, ok := m[0]; ok {
+               delete(m, 0)
+       }
+}