github.com/serversong/goreporter@v0.0.0-20200325104552-3cfaf44fd178/linters/interfacer/testdata/files/unexported.go (about)

     1  package foo
     2  
     3  type Closer interface {
     4  	Close()
     5  }
     6  
     7  type ReadCloser interface {
     8  	Closer
     9  	Read()
    10  }
    11  
    12  type myFunc func(rc ReadCloser, err error) int
    13  
    14  func MyFuncImpl(rc ReadCloser, err error) int {
    15  	rc.Close()
    16  	return 0
    17  }
    18  
    19  func MyFuncWrong(rc ReadCloser, err error) { // WARN rc can be Closer
    20  	rc.Close()
    21  }
    22  
    23  type myIface interface {
    24  	Foo(rc ReadCloser, i int64)
    25  }
    26  
    27  func FooImpl(rc ReadCloser, i int64) {
    28  	rc.Close()
    29  }
    30  
    31  type St struct{}
    32  
    33  func (s *St) Foo(rc ReadCloser, i int64) {}
    34  
    35  func DoNotSuggestUnexportedIface(s *St, rc ReadCloser) {
    36  	a := int64(3)
    37  	s.Foo(rc, a)
    38  }