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 10package main 11 12import "fmt" 13 14func NewBar() *Bar { return nil } 15 16func (x *Foo) Method() (int, error) { 17 for y := range x.m { 18 _ = y.A 19 } 20 return 0, nil 21} 22 23type Foo struct { 24 m map[*Bar]int 25} 26 27type Bar struct { 28 A *Foo 29 B chan Blah // ERROR "undefined.*Blah" 30} 31 32func main() { 33 fmt.Println("Hello, playground") 34} 35