modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue5581.go (about)

     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  }