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