github.com/Johnny2210/revive@v1.0.8-0.20210625134200-febf37ccd0f5/testdata/golint/if-return.go (about) 1 // Test of redundant if err != nil 2 3 // Package pkg ... 4 package pkg 5 6 func f() error { 7 if err := f(); err != nil { 8 g() 9 return err 10 } 11 return nil 12 } 13 14 func g() error { 15 if err := f(); err != nil { // MATCH /redundant if ...; err != nil check, just return error instead./ 16 return err 17 } 18 return nil 19 } 20 21 func h() error { 22 if err, x := f(), 1; err != nil { 23 return err 24 } 25 return nil 26 } 27 28 func i() error { 29 a := 1 30 if err := f(); err != nil { 31 a++ 32 return err 33 } 34 return nil 35 } 36 37 func j() error { 38 var a error 39 if err := f(); err != nil { 40 return err 41 } 42 return a 43 } 44 45 func k() error { 46 if err := f(); err != nil { 47 // TODO: handle error better 48 return err 49 } 50 return nil 51 } 52 53 func l() (interface{}, error) { 54 if err := f(); err != nil { 55 return nil, err 56 } 57 if err := f(); err != nil { 58 return nil, err 59 } 60 if err := f(); err != nil { 61 return nil, err 62 } 63 // Phew, it worked 64 return nil 65 } 66 67 func m() error { 68 if err := f(); err != nil { 69 return err 70 } 71 if err := f(); err != nil { 72 return err 73 } 74 if err := f(); err != nil { 75 return err 76 } 77 // Phew, it worked again. 78 return nil 79 } 80 81 func multi() error { 82 a := 0 83 var err error 84 // unreachable code after return statements is intentional to check that it 85 // doesn't confuse the linter. 86 if true { 87 a++ 88 if err := f(); err != nil { // MATCH /redundant if ...; err != nil check, just return error instead./ 89 return err 90 } 91 return nil 92 a++ 93 } else { 94 a++ 95 if err = f(); err != nil { // MATCH /redundant if ...; err != nil check, just return error instead./ 96 return err 97 } 98 return nil 99 a++ 100 } 101 }