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