.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.1.1 / staticcheck / testdata / src / CheckEarlyDefer / CheckEarlyDefer.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.1.1/staticcheck/testdata/src/CheckEarlyDefer/CheckEarlyDefer.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.1.1/staticcheck/testdata/src/CheckEarlyDefer/CheckEarlyDefer.go
new file mode 100644 (file)
index 0000000..cc8c3a7
--- /dev/null
@@ -0,0 +1,38 @@
+package pkg
+
+import "io"
+
+func fn1() (io.ReadCloser, error) {
+       return nil, nil
+}
+
+type T struct {
+       rc io.ReadCloser
+}
+
+func fn3() (T, error) {
+       return T{}, nil
+}
+
+func fn2() {
+       rc, err := fn1()
+       defer rc.Close() // want `should check returned error before deferring rc\.Close`
+       if err != nil {
+               println()
+       }
+
+       rc, _ = fn1()
+       defer rc.Close()
+
+       rc, err = fn1()
+       if err != nil {
+               println()
+       }
+       defer rc.Close()
+
+       t, err := fn3()
+       defer t.rc.Close() // want `should check returned error before deferring t\.rc\.Close`
+       if err != nil {
+               println()
+       }
+}