github.com/mvdan/interfacer@v0.0.0-20180901003855-c20040233aed/check/testdata/files/wanted_type.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 Conn struct{}
    13  
    14  func (c Conn) Close() {}
    15  
    16  func DoClose(c Conn) { // WARN c can be Closer
    17  	c.Close()
    18  }
    19  
    20  func DoCloseConn(c Conn) {
    21  	c.Close()
    22  }
    23  
    24  func DoCloseConnection(c Conn) {
    25  	c.Close()
    26  }
    27  
    28  type bar struct{}
    29  
    30  func (f *bar) Close() {}
    31  
    32  func barClose(b *bar) {
    33  	b.Close()
    34  }
    35  
    36  func DoCloseFoobar(b *bar) { // WARN b can be Closer
    37  	b.Close()
    38  }
    39  
    40  type NetConn struct{}
    41  
    42  func (n NetConn) Close() {}
    43  
    44  func closeConn(conn *NetConn) {
    45  	conn.Close()
    46  }