| // runoutput | 
 |  | 
 | // Copyright 2014 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 7867. | 
 |  | 
 | package main | 
 |  | 
 | import "fmt" | 
 |  | 
 | const tpl = ` | 
 | func Test%d(t %s) { | 
 | 	_ = t | 
 | 	_ = t | 
 | } | 
 | ` | 
 |  | 
 | func main() { | 
 | 	fmt.Println("package main") | 
 | 	types := []string{ | 
 | 		// These types always passed | 
 | 		"bool", "int", "rune", | 
 | 		"*int", "uintptr", | 
 | 		"float32", "float64", | 
 | 		"chan struct{}", | 
 | 		"map[string]struct{}", | 
 | 		"func()", "func(string)error", | 
 |  | 
 | 		// These types caused compilation failures | 
 | 		"complex64", "complex128", | 
 | 		"struct{}", "struct{n int}", "struct{e error}", "struct{m map[string]string}", | 
 | 		"string", | 
 | 		"[4]byte", | 
 | 		"[]byte", | 
 | 		"interface{}", "error", | 
 | 	} | 
 | 	for i, typ := range types { | 
 | 		fmt.Printf(tpl, i, typ) | 
 | 	} | 
 | 	fmt.Println("func main() {}") | 
 | } |