]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/vet: add test that copylock catches copying a sync.Map
authorManish Goregaokar <manishsmail@gmail.com>
Sat, 26 Aug 2017 06:10:50 +0000 (23:10 -0700)
committerRob Pike <r@golang.org>
Tue, 29 Aug 2017 02:33:15 +0000 (02:33 +0000)
fixes #21635

Change-Id: I78716d47b6a930074e5394f7171d5f545dfba0bc
Reviewed-on: https://go-review.googlesource.com/59690
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/vet/testdata/copylock_func.go

index 0f7ffcbccb1ab4ba084ca135afe9ae6a8bf24b42..280747a3bf46d3b54539a4c0af140f919674e3d7 100644 (file)
@@ -11,12 +11,14 @@ import "sync"
 
 func OkFunc(*sync.Mutex) {}
 func BadFunc(sync.Mutex) {} // ERROR "BadFunc passes lock by value: sync.Mutex"
+func BadFunc2(sync.Map)  {} // ERROR "BadFunc2 passes lock by value: sync.Map contains sync.Mutex"
 func OkRet() *sync.Mutex {}
 func BadRet() sync.Mutex {} // Don't warn about results
 
 var (
-       OkClosure  = func(*sync.Mutex) {}
-       BadClosure = func(sync.Mutex) {} // ERROR "func passes lock by value: sync.Mutex"
+       OkClosure   = func(*sync.Mutex) {}
+       BadClosure  = func(sync.Mutex) {} // ERROR "func passes lock by value: sync.Mutex"
+       BadClosure2 = func(sync.Map) {}   // ERROR "func passes lock by value: sync.Map contains sync.Mutex"
 )
 
 type EmbeddedRWMutex struct {