| // 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() {}") | |
| } |