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