...
1package F1
2
3import "sync"
4
5func 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.RLock()
30
31 // Match
32 y.RLock()
33
34 // Match indirect
35 z.RLock()
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.RLock()
43
44 // No match
45 b.Lock()
46}
View as plain text