package main import ( "os" "reflect" "runtime" "testshared/depBase" ) // Having a function declared in the main package triggered // golang.org/issue/18250 func DeclaredInMain() { } type C struct { } func F() *C { return nil } var slicePtr interface{} = &[]int{} func main() { defer depBase.ImplementedInAsm() // This code below causes various go.itab.* symbols to be generated in // the executable. Similar code in ../depBase/dep.go results in // exercising https://golang.org/issues/17594 reflect.TypeOf(os.Stdout).Elem() runtime.GC() depBase.V = depBase.F() + 1 var c *C if reflect.TypeOf(F).Out(0) != reflect.TypeOf(c) { panic("bad reflection results, see golang.org/issue/18252") } sp := reflect.New(reflect.TypeOf(slicePtr).Elem()) s := sp.Interface() if reflect.TypeOf(s) != reflect.TypeOf(slicePtr) { panic("bad reflection results, see golang.org/issue/18729") } }