| // 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 | 
 |  | 
 | 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 } | 
 |  | 
 | func main() { | 
 | 	m := make(map[int]int) | 
 | 	delete()        // ERROR "missing arguments|not enough arguments" | 
 | 	delete(m)       // ERROR "missing second \(key\) argument|not enough arguments" | 
 | 	delete(m, 2, 3) // ERROR "too many arguments" | 
 | 	delete(1, m)    // ERROR "first argument to delete must be map|argument 1 must be a map|is not a map" | 
 | } |