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