--- /dev/null
+package pkg
+
+import "sync"
+
+var r sync.Mutex
+var rw sync.RWMutex
+
+func fn1() {
+ r.Lock()
+ defer r.Lock() // want `deferring Lock right after having locked already; did you mean to defer Unlock`
+}
+
+func fn2() {
+ r.Lock()
+ defer r.Unlock()
+}
+
+func fn3() {
+ println("")
+ defer r.Lock()
+}
+
+func fn4() {
+ rw.RLock()
+ defer rw.RLock() // want `deferring RLock right after having locked already; did you mean to defer RUnlock`
+}
+
+func fn5() {
+ rw.RLock()
+ defer rw.Lock()
+}
+
+func fn6() {
+ r.Lock()
+ defer rw.Lock()
+}