1 package F1 2 3 import "sync" 4 5 func example(n int) { 6 var x struct { 7 mutex sync.RWMutex 8 } 9 10 var y struct { 11 sync.RWMutex 12 } 13 14 type l struct { 15 sync.RWMutex 16 } 17 18 var z struct { 19 l 20 } 21 22 var a struct { 23 *l 24 } 25 26 var b struct{ Lock func() } 27 28 // Match 29 x.mutex.Lock() 30 31 // Match 32 y.Lock() 33 34 // Match indirect 35 z.Lock() 36 37 // Should be no match however currently matches due to: 38 // https://golang.org/issue/8584 39 // Will start failing when this is fixed then just change golden to 40 // No match pointer indirect 41 // a.Lock() 42 a.Lock() 43 44 // No match 45 b.Lock() 46 } 47