aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gocapturedrefrace_test.go14
-rw-r--r--testdata/simple.go6
-rw-r--r--testdata/struct_reference.go2
3 files changed, 18 insertions, 4 deletions
diff --git a/gocapturedrefrace_test.go b/gocapturedrefrace_test.go
new file mode 100644
index 0000000..d2e82b2
--- /dev/null
+++ b/gocapturedrefrace_test.go
@@ -0,0 +1,14 @@
+package gocapturedrefrace_test
+
+import (
+ "testing"
+
+ "golang.org/x/tools/go/analysis/analysistest"
+ "gopkg.teddywing.com/gocapturedrefrace"
+)
+
+func Test(t *testing.T) {
+ testdata := analysistest.TestData()
+
+ analysistest.Run(t, testdata, gocapturedrefrace.Analyzer, ".")
+}
diff --git a/testdata/simple.go b/testdata/simple.go
index 76fb5d5..8002953 100644
--- a/testdata/simple.go
+++ b/testdata/simple.go
@@ -8,8 +8,8 @@ func main() {
copied := 0
go func(copied int) {
- capturedReference += 1
- capturedReference2 += 1
+ capturedReference += 1 // want "captured reference capturedReference in goroutine closure"
+ capturedReference2 += 1 // want "captured reference capturedReference2 in goroutine closure"
copied += 1
if capturedReference == 1 {
@@ -36,6 +36,6 @@ func argumentReference() {
s := aStruct{field: 0}
go func(s *aStruct) {
- s.field += 1
+ s.field += 1 // want "reference s in goroutine closure"
}(&s)
}
diff --git a/testdata/struct_reference.go b/testdata/struct_reference.go
index 5ebc31d..98d627f 100644
--- a/testdata/struct_reference.go
+++ b/testdata/struct_reference.go
@@ -10,6 +10,6 @@ func (s *AStruct) setField(value string) {
func (s *AStruct) method2() {
go func() {
- s.setField("test")
+ s.setField("test") // want "captured reference s in goroutine closure"
}()
}