1 // errorcheck 2 3 // Used to emit a spurious "invalid recursive type" error. 4 // See golang.org/issue/5581. 5 6 // Copyright 2013 The Go Authors. All rights reserved. 7 // Use of this source code is governed by a BSD-style 8 // license that can be found in the LICENSE file. 9 10 package main 11 12 import "fmt" 13 14 func NewBar() *Bar { return nil } 15 16 func (x *Foo) Method() (int, error) { 17 for y := range x.m { 18 _ = y.A 19 } 20 return 0, nil 21 } 22 23 type Foo struct { 24 m map[*Bar]int 25 } 26 27 type Bar struct { 28 A *Foo 29 B chan Blah // ERROR "undefined.*Blah" 30 } 31 32 func main() { 33 fmt.Println("Hello, playground") 34 } 35