gitee.com/wgliang/goreporter@v0.0.0-20180902115603-df1b20f7c5d0/linters/interfacer/testdata/files/compare.go (about) 1 package foo 2 3 type Reader interface { 4 Read([]byte) (int, error) 5 } 6 7 type Closer interface { 8 Close() error 9 } 10 11 type ReadCloser interface { 12 Reader 13 Closer 14 } 15 16 func CompareNil(rc ReadCloser) { // WARN rc can be Closer 17 if rc != nil { 18 rc.Close() 19 } 20 } 21 22 func CompareIface(rc ReadCloser) { // WARN rc can be Closer 23 if rc != ReadCloser(nil) { 24 rc.Close() 25 } 26 } 27 28 func CompareIfaceDiff(rc ReadCloser) { // WARN rc can be Closer 29 if rc != Reader(nil) { 30 rc.Close() 31 } 32 } 33 34 type mint int 35 36 func (m mint) Close() error { 37 return nil 38 } 39 40 func CompareStruct(m mint) { // WARN m can be Closer 41 if m != mint(3) { 42 m.Close() 43 } 44 } 45 46 func CompareStructVar(m mint) { // WARN m can be Closer 47 m2 := mint(2) 48 if m == m2 { 49 m.Close() 50 } 51 } 52 53 func CompareLit(m mint) { 54 if m != 3 { 55 m.Close() 56 } 57 }