1
0
mirror of https://github.com/golang/go synced 2024-11-05 15:46:11 -07:00
go/cmd/vet
Josh Bleecher Snyder 866b24e166 cmd/vet: check for sync types being copied during function calls
Using a type containing a sync type directly
in a function call (whether as a receiver,
a param, or a return value) is an easy way
to accidentally copy a lock or other sync primitive.
Check for it.

The test as implemented does not provide 100%
coverage; see the discussion near the bottom of
testdata/copylock.go for shortcomings.

Fixes golang/go#6729.

R=adg, r, dsymonds
CC=golang-dev
https://golang.org/cl/23420043
2013-12-09 20:14:28 -08:00
..
testdata cmd/vet: check for sync types being copied during function calls 2013-12-09 20:14:28 -08:00
whitelist cmd/vet: move whitelist to its own package 2013-08-20 15:39:49 -07:00
asmdecl.go go.tools/cmd/vet: handle symbolic TEXT annotations 2013-11-01 11:49:11 -07:00
assign.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
atomic.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
buildtag.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
composite.go cmd/vet: move whitelist to its own package 2013-08-20 15:39:49 -07:00
copylock.go cmd/vet: check for sync types being copied during function calls 2013-12-09 20:14:28 -08:00
deadcode.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
doc.go go.tools/cmd/vet: the composite test is about keys, not tags 2013-08-03 12:19:59 +10:00
main.go cmd/vet: check for sync types being copied during function calls 2013-12-09 20:14:28 -08:00
method.go go.tools/cmd/vet: Update canonical method check for new xml.Marshaler/Unmarshaler interfaces 2013-10-07 11:10:36 -07:00
nilfunc.go go.tools/cmd/vet: detect useless function comparisons 2013-08-20 16:11:01 +10:00
print.go go.tools/cmd/vet: update for fmt handling %b for complex numbers 2013-09-16 08:18:27 +10:00
rangeloop.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
shadow.go go.tools/cmd/vet: add check for shadowed variables 2013-06-21 11:27:53 -07:00
structtag.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
types.go cmd/vet: check for sync types being copied during function calls 2013-12-09 20:14:28 -08:00
vet_test.go go.tools/cmd/vet: add check for shadowed variables 2013-06-21 11:27:53 -07:00