github.com/golangci/go-tools@v0.0.0-20190318060251-af6baa5dc196/staticcheck/testdata/src/CheckUnreadVariableValues/CheckUnreadVariableValues.go (about)

     1  package pkg
     2  
     3  func fn1() {
     4  	var x int
     5  	x = gen() // MATCH /this value of x is never used/
     6  	x = gen()
     7  	println(x)
     8  
     9  	var y int
    10  	if true {
    11  		y = gen() // MATCH /this value of y is never used/
    12  	}
    13  	y = gen()
    14  	println(y)
    15  }
    16  
    17  func gen() int {
    18  	println() // make it unpure
    19  	return 0
    20  }
    21  
    22  func fn2() {
    23  	x, y := gen(), gen()
    24  	x, y = gen(), gen()
    25  	println(x, y)
    26  }
    27  
    28  // MATCH:23 /this value of x is never used/
    29  // MATCH:23 /this value of y is never used/
    30  
    31  func fn3() {
    32  	x := uint32(0)
    33  	if true {
    34  		x = 1
    35  	} else {
    36  		x = 2
    37  	}
    38  	println(x)
    39  }
    40  
    41  func gen2() (int, int) {
    42  	println()
    43  	return 0, 0
    44  }
    45  
    46  func fn4() {
    47  	x, y := gen2() // MATCH /this value of x is never used/
    48  	println(y)
    49  	x, y = gen2()
    50  	x, y = gen2()
    51  	println(x, y)
    52  }
    53  
    54  // MATCH:49 /this value of x is never used/
    55  // MATCH:49 /this value of y is never used/
    56  
    57  func fn5(m map[string]string) {
    58  	v, ok := m[""]
    59  	v, ok = m[""]
    60  	println(v, ok)
    61  }
    62  
    63  // MATCH:58 /this value of v is never used/
    64  // MATCH:58 /this value of ok is never used/
    65  
    66  func fn6() {
    67  	x := gen()
    68  	// Do not report variables if they've been assigned to the blank identifier
    69  	_ = x
    70  }
    71  
    72  func fn7() {
    73  	func() {
    74  		var x int
    75  		x = gen() // MATCH /this value of x is never used/
    76  		x = gen()
    77  		println(x)
    78  	}()
    79  }