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 }