// errorcheck | |
// Copyright 2011 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 map declarations of many types, including erroneous ones. | |
// Does not compile. | |
package main | |
func main() {} | |
type v bool | |
var ( | |
// valid | |
_ map[int8]v | |
_ map[uint8]v | |
_ map[int16]v | |
_ map[uint16]v | |
_ map[int32]v | |
_ map[uint32]v | |
_ map[int64]v | |
_ map[uint64]v | |
_ map[int]v | |
_ map[uint]v | |
_ map[uintptr]v | |
_ map[float32]v | |
_ map[float64]v | |
_ map[complex64]v | |
_ map[complex128]v | |
_ map[bool]v | |
_ map[string]v | |
_ map[chan int]v | |
_ map[*int]v | |
_ map[struct{}]v | |
_ map[[10]int]v | |
// invalid | |
_ map[[]int]v // ERROR "invalid map key" | |
_ map[func()]v // ERROR "invalid map key" | |
_ map[map[int]int]v // ERROR "invalid map key" | |
_ map[T1]v // ERROR "invalid map key" | |
_ map[T2]v // ERROR "invalid map key" | |
_ map[T3]v // ERROR "invalid map key" | |
_ map[T4]v // ERROR "invalid map key" | |
_ map[T5]v | |
_ map[T6]v | |
_ map[T7]v | |
_ map[T8]v | |
) | |
type T1 []int | |
type T2 struct { F T1 } | |
type T3 []T4 | |
type T4 struct { F T3 } | |
type T5 *int | |
type T6 struct { F T5 } | |
type T7 *T4 | |
type T8 struct { F *T7 } |