| // errorcheck |
| |
| // Copyright 2013 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. |
| |
| // Issue 4813: use of constant floats as indices. |
| |
| package main |
| |
| var A [3]int |
| var S []int |
| var T string |
| |
| const ( |
| i = 1 |
| f = 2.0 |
| f2 = 2.1 |
| c = complex(2, 0) |
| c2 = complex(2, 1) |
| ) |
| |
| var ( |
| vf = f |
| vc = c |
| ) |
| |
| var ( |
| a1 = A[i] |
| a2 = A[f] |
| a3 = A[f2] // ERROR "truncated|must be integer" |
| a4 = A[c] |
| a5 = A[c2] // ERROR "truncated|must be integer" |
| a6 = A[vf] // ERROR "non-integer|must be integer" |
| a7 = A[vc] // ERROR "non-integer|must be integer" |
| |
| s1 = S[i] |
| s2 = S[f] |
| s3 = S[f2] // ERROR "truncated|must be integer" |
| s4 = S[c] |
| s5 = S[c2] // ERROR "truncated|must be integer" |
| s6 = S[vf] // ERROR "non-integer|must be integer" |
| s7 = S[vc] // ERROR "non-integer|must be integer" |
| |
| t1 = T[i] |
| t2 = T[f] |
| t3 = T[f2] // ERROR "truncated|must be integer" |
| t4 = T[c] |
| t5 = T[c2] // ERROR "truncated|must be integer" |
| t6 = T[vf] // ERROR "non-integer|must be integer" |
| t7 = T[vc] // ERROR "non-integer|must be integer" |
| ) |