1
2
3
4
5 package race_test
6
7 import (
8 "fmt"
9 "testing"
10 )
11
12 var issue12664 = "hi"
13
14 func TestRaceIssue12664(t *testing.T) {
15 c := make(chan struct{})
16 go func() {
17 issue12664 = "bye"
18 close(c)
19 }()
20 fmt.Println(issue12664)
21 <-c
22 }
23
24 type MyI interface {
25 foo()
26 }
27
28 type MyT int
29
30 func (MyT) foo() {
31 }
32
33 var issue12664_2 MyT = 0
34
35 func TestRaceIssue12664_2(t *testing.T) {
36 c := make(chan struct{})
37 go func() {
38 issue12664_2 = 1
39 close(c)
40 }()
41 func(x MyI) {
42
43 if x.(MyT) == -1 {
44 close(c)
45 }
46 }(issue12664_2)
47 <-c
48 }
49
50 var issue12664_3 MyT = 0
51
52 func TestRaceIssue12664_3(t *testing.T) {
53 c := make(chan struct{})
54 go func() {
55 issue12664_3 = 1
56 close(c)
57 }()
58 var r MyT
59 var i any = r
60 issue12664_3 = i.(MyT)
61 <-c
62 }
63
64 var issue12664_4 MyT = 0
65
66 func TestRaceIssue12664_4(t *testing.T) {
67 c := make(chan struct{})
68 go func() {
69 issue12664_4 = 1
70 close(c)
71 }()
72 var r MyT
73 var i MyI = r
74 issue12664_4 = i.(MyT)
75 <-c
76 }
77
View as plain text