// +build ignore package F1 import "sync" func example(n int) { var x struct { mutex sync.RWMutex } var y struct { sync.RWMutex } type l struct { sync.RWMutex } var z struct { l } var a struct { *l } var b struct{ Lock func() } // Match x.mutex.Lock() // Match y.Lock() // Match indirect z.Lock() // Should be no match however currently matches due to: // https://golang.org/issue/8584 // Will start failing when this is fixed then just change golden to // No match pointer indirect // a.Lock() a.Lock() // No match b.Lock() }