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  }