+++ /dev/null
-package main
-
-// Tests of channel 'peers' query.
-// See go.tools/guru/guru_test.go for explanation.
-// See peers.golden for expected query results.
-
-var a2 int
-
-func main() {
- chA := make(chan *int)
- a1 := 1
- chA <- &a1
-
- chA2 := make(chan *int, 2)
- if a2 == 0 {
- chA = chA2
- }
-
- chB := make(chan *int)
- b := 3
- chB <- &b
-
- <-chA // @pointsto pointsto-chA "chA"
- <-chA2 // @pointsto pointsto-chA2 "chA2"
- <-chB // @pointsto pointsto-chB "chB"
-
- select {
- case rA := <-chA: // @peers peer-recv-chA "<-"
- _ = rA // @pointsto pointsto-rA "rA"
- case rB := <-chB: // @peers peer-recv-chB "<-"
- _ = rB // @pointsto pointsto-rB "rB"
-
- case <-chA: // @peers peer-recv-chA' "<-"
-
- case chA2 <- &a2: // @peers peer-send-chA' "<-"
- }
-
- for range chA {
- }
-
- close(chA) // @peers peer-close-chA "chA"
-
- chC := make(chan *int)
- (close)(chC) // @peers peer-close-chC "chC"
-
- close := func(ch chan *int) chan *int {
- return ch
- }
-
- close(chC) <- &b // @peers peer-send-chC "chC"
- <-close(chC) // @peers peer-recv-chC "chC"
-}