github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/test/testdata/wastedassign.go (about) 1 //golangcitest:args -Ewastedassign 2 package testdata 3 4 import "strings" 5 6 func pa(x int) int { 7 return x + 1 8 } 9 10 func multiple(val interface{}, times uint) interface{} { 11 12 switch hogehoge := val.(type) { 13 case int: 14 return 12 15 case string: 16 return strings.Repeat(hogehoge, int(times)) 17 default: 18 return nil 19 } 20 } 21 22 func noUseParams(params string) int { 23 a := 12 24 println(a) 25 return a 26 } 27 28 func f(param int) int { 29 println(param) 30 useOutOfIf := 1212121 // want "assigned to useOutOfIf, but reassigned without using the value" 31 ret := 0 32 if false { 33 useOutOfIf = 200 // want "assigned to useOutOfIf, but never used afterwards" 34 return 0 35 } else if param == 100 { 36 useOutOfIf = 100 // want "assigned to useOutOfIf, but reassigned without using the value" 37 useOutOfIf = 201 38 useOutOfIf = pa(useOutOfIf) 39 useOutOfIf += 200 // want "assigned to useOutOfIf, but reassigned without using the value" 40 } else { 41 useOutOfIf = 100 42 useOutOfIf += 100 43 useOutOfIf = pa(useOutOfIf) 44 useOutOfIf += 200 // want "assigned to useOutOfIf, but reassigned without using the value" 45 } 46 47 if false { 48 useOutOfIf = 200 // want "assigned to useOutOfIf, but never used afterwards" 49 return 0 50 } else if param == 200 { 51 useOutOfIf = 100 // want "assigned to useOutOfIf, but reassigned without using the value" 52 useOutOfIf = 201 53 useOutOfIf = pa(useOutOfIf) 54 useOutOfIf += 200 55 } else { 56 useOutOfIf = 100 57 useOutOfIf += 100 58 useOutOfIf = pa(useOutOfIf) 59 useOutOfIf += 200 60 } 61 // useOutOfIf = 12 62 println(useOutOfIf) 63 useOutOfIf = 192 64 useOutOfIf += 100 65 useOutOfIf += 200 // want "assigned to useOutOfIf, but never used afterwards" 66 return ret 67 } 68 69 func checkLoopTest() int { 70 hoge := 12 71 noUse := 1111 72 println(noUse) 73 74 noUse = 1111 // want "assigned to noUse, but never used afterwards" 75 for { 76 if hoge == 14 { 77 break 78 } 79 hoge = hoge + 1 80 } 81 return hoge 82 } 83 84 func r(param int) int { 85 println(param) 86 useOutOfIf := 1212121 87 ret := 0 88 if false { 89 useOutOfIf = 200 // want "assigned to useOutOfIf, but never used afterwards" 90 return 0 91 } else if param == 100 { 92 ret = useOutOfIf 93 } else if param == 200 { 94 useOutOfIf = 100 // want "assigned to useOutOfIf, but reassigned without using the value" 95 useOutOfIf = 100 96 useOutOfIf = pa(useOutOfIf) 97 useOutOfIf += 200 // want "assigned to useOutOfIf, but reassigned without using the value" 98 } 99 useOutOfIf = 12 100 println(useOutOfIf) 101 useOutOfIf = 192 102 useOutOfIf += 100 103 useOutOfIf += 200 // want "assigned to useOutOfIf, but never used afterwards" 104 return ret 105 } 106 107 func mugen() { 108 var i int 109 var hoge int 110 for { 111 hoge = 5 // want "assigned to hoge, but reassigned without using the value" 112 // break 113 } 114 115 println(i) 116 println(hoge) 117 return 118 } 119 120 func mugenG[T ~int](hoge T) { 121 var i int 122 for { 123 hoge = 5 // want "assigned to hoge, but reassigned without using the value" 124 // break 125 } 126 127 println(i) 128 println(hoge) 129 return 130 } 131 132 func noMugen() { 133 var i int 134 var hoge int 135 for { 136 hoge = 5 137 break 138 } 139 140 println(i) 141 println(hoge) 142 return 143 } 144 145 func reassignInsideLoop() { 146 bar := func(b []byte) ([]byte, error) { return b, nil } 147 var err error 148 var rest []byte 149 for { 150 rest, err = bar(rest) 151 if err == nil { 152 break 153 } 154 } 155 return 156 } 157 158 func reassignInsideLoop2() { 159 var x int = 0 160 var y int = 1 161 for i := 1; i < 3; i++ { 162 x += y 163 y *= 2 * i 164 } 165 println(x) 166 }