github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/test/testdata/nonamedreturns_custom.go (about) 1 //golangcitest:args -Enonamedreturns 2 //golangcitest:config_path testdata/configs/nonamedreturns.yml 3 package testdata 4 5 import "fmt" 6 7 type asdf struct { 8 test string 9 } 10 11 func noParams() { 12 return 13 } 14 15 var c = func() { 16 return 17 } 18 19 var d = func() error { 20 return nil 21 } 22 23 var e = func() (err error) { // want `named return "err" with type "error" found` 24 err = nil 25 return 26 } 27 28 var e2 = func() (_ error) { 29 return 30 } 31 32 func deferWithError() (err error) { // want `named return "err" with type "error" found` 33 defer func() { 34 err = nil // use flag to allow this 35 }() 36 return 37 } 38 39 var ( 40 f = func() { 41 return 42 } 43 44 g = func() error { 45 return nil 46 } 47 48 h = func() (err error) { // want `named return "err" with type "error" found` 49 err = nil 50 return 51 } 52 53 h2 = func() (_ error) { 54 return 55 } 56 ) 57 58 // this should not match as the implementation does not need named parameters (see below) 59 type funcDefintion func(arg1, arg2 interface{}) (num int, err error) 60 61 func funcDefintionImpl(arg1, arg2 interface{}) (int, error) { 62 return 0, nil 63 } 64 65 func funcDefintionImpl2(arg1, arg2 interface{}) (num int, err error) { // want `named return "num" with type "int" found` 66 return 0, nil 67 } 68 69 func funcDefintionImpl3(arg1, arg2 interface{}) (num int, _ error) { // want `named return "num" with type "int" found` 70 return 0, nil 71 } 72 73 func funcDefintionImpl4(arg1, arg2 interface{}) (_ int, _ error) { 74 return 0, nil 75 } 76 77 var funcVar = func() (msg string) { // want `named return "msg" with type "string" found` 78 msg = "c" 79 return msg 80 } 81 82 var funcVar2 = func() (_ string) { 83 msg := "c" 84 return msg 85 } 86 87 func test() { 88 a := funcVar() 89 _ = a 90 91 var function funcDefintion 92 function = funcDefintionImpl 93 i, err := function("", "") 94 _ = i 95 _ = err 96 function = funcDefintionImpl2 97 i, err = function("", "") 98 _ = i 99 _ = err 100 } 101 102 func good(i string) string { 103 return i 104 } 105 106 func bad(i string, a, b int) (ret1 string, ret2 interface{}, ret3, ret4 int, ret5 asdf) { // want `named return "ret1" with type "string" found` 107 x := "dummy" 108 return fmt.Sprintf("%s", x), nil, 1, 2, asdf{} 109 } 110 111 func bad2() (msg string, err error) { // want `named return "msg" with type "string" found` 112 msg = "" 113 err = nil 114 return 115 } 116 117 func myLog(format string, args ...interface{}) { 118 return 119 } 120 121 type obj struct{} 122 123 func (o *obj) func1() (err error) { return nil } // want `named return "err" with type "error" found` 124 125 func (o *obj) func2() (_ error) { return nil }