--- /dev/null
+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()
+ }
+}