1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
| // run
|
| // Copyright 2009 The Go Authors. All rights reserved.
| // Use of this source code is governed by a BSD-style
| // license that can be found in the LICENSE file.
|
| // Test that predeclared names can be redeclared by the user.
|
| package main
|
| import (
| "fmt"
| "runtime"
| )
|
| func main() {
| n :=
| append +
| bool +
| byte +
| complex +
| complex64 +
| complex128 +
| cap +
| close +
| delete +
| error +
| false +
| float32 +
| float64 +
| imag +
| int +
| int8 +
| int16 +
| int32 +
| int64 +
| len +
| make +
| new +
| nil +
| panic +
| print +
| println +
| real +
| recover +
| rune +
| string +
| true +
| uint +
| uint8 +
| uint16 +
| uint32 +
| uint64 +
| uintptr +
| iota
| if n != NUM*(NUM-1)/2 {
| fmt.Println("BUG: wrong n", n, NUM*(NUM-1)/2)
| runtime.Breakpoint() // panic is inaccessible
| }
| }
|
| const (
| // cannot use iota here, because iota = 38 below
| append = 1
| bool = 2
| byte = 3
| complex = 4
| complex64 = 5
| complex128 = 6
| cap = 7
| close = 8
| delete = 9
| error = 10
| false = 11
| float32 = 12
| float64 = 13
| imag = 14
| int = 15
| int8 = 16
| int16 = 17
| int32 = 18
| int64 = 19
| len = 20
| make = 21
| new = 22
| nil = 23
| panic = 24
| print = 25
| println = 26
| real = 27
| recover = 28
| rune = 29
| string = 30
| true = 31
| uint = 32
| uint8 = 33
| uint16 = 34
| uint32 = 35
| uint64 = 36
| uintptr = 37
| iota = 38
| NUM = 39
| )
|
|