// 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 )