gitee.com/wgliang/goreporter@v0.0.0-20180902115603-df1b20f7c5d0/linters/interfacer/testdata/files/used_func.go (about) 1 package foo 2 3 type Closer interface { 4 Close() 5 } 6 7 type ReadCloser interface { 8 Read(p []byte) (n int, err error) 9 Closer 10 } 11 12 func Wrong(rc ReadCloser) { // WARN rc can be Closer 13 rc.Close() 14 } 15 16 func receiver(f func(ReadCloser)) { 17 var rc ReadCloser 18 f(rc) 19 } 20 21 func Correct(rc ReadCloser) { 22 rc.Close() 23 } 24 25 func CorrectUse() { 26 receiver(Correct) 27 } 28 29 var holder func(ReadCloser) 30 31 func Correct2(rc ReadCloser) { 32 rc.Close() 33 } 34 35 func CorrectAssign() { 36 holder = Correct2 37 } 38 39 func CorrectLit() { 40 f := func(rc ReadCloser) { 41 rc.Close() 42 } 43 receiver(f) 44 } 45 46 func CorrectLitAssign() { 47 f := func(rc ReadCloser) { 48 rc.Close() 49 } 50 var f2 func(ReadCloser) 51 f2 = f 52 f2(nil) 53 } 54 55 func CorrectLitDecl() { 56 f := func(rc ReadCloser) { 57 rc.Close() 58 } 59 var f2 func(ReadCloser) = f 60 f2(nil) 61 }