Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201028153306-37f0764111ff / go / ssa / interp / testdata / static.go
1 package main
2
3 // Static tests of SSA builder (via the sanity checker).
4 // Dynamic semantics are not exercised.
5
6 func init() {
7         // Regression test for issue 6806.
8         ch := make(chan int)
9         select {
10         case n, _ := <-ch:
11                 _ = n
12         default:
13                 // The default case disables the simplification of
14                 // select to a simple receive statement.
15         }
16
17         // value,ok-form receive where TypeOf(ok) is a named boolean.
18         type mybool bool
19         var x int
20         var y mybool
21         select {
22         case x, y = <-ch:
23         default:
24                 // The default case disables the simplification of
25                 // select to a simple receive statement.
26         }
27         _ = x
28         _ = y
29 }
30
31 var a int
32
33 // Regression test for issue 7840 (covered by SSA sanity checker).
34 func bug7840() bool {
35         // This creates a single-predecessor block with a φ-node.
36         return false && a == 0 && a == 0
37 }
38
39 // A blocking select (sans "default:") cannot fall through.
40 // Regression test for issue 7022.
41 func bug7022() int {
42         var c1, c2 chan int
43         select {
44         case <-c1:
45                 return 123
46         case <-c2:
47                 return 456
48         }
49 }
50
51 // Parens should not prevent intrinsic treatment of built-ins.
52 // (Regression test for a crash.)
53 func init() {
54         _ = (new)(int)
55         _ = (make)([]int, 0)
56 }
57
58 func main() {}