honnef.co/go/tools@v0.4.7/staticcheck/testdata/src/example.com/CheckSillyBitwiseOps/CheckSillyBitwiseOps.go (about)

     1  package pkg
     2  
     3  const a = 0
     4  
     5  const (
     6  	b = iota
     7  	c
     8  )
     9  
    10  const (
    11  	y = 42
    12  
    13  	d = iota
    14  )
    15  
    16  func fn(x int) {
    17  	println(x | 0)        //@ diag(`x | 0 always equals x`)
    18  	println(x & 0)        //@ diag(`x & 0 always equals 0`)
    19  	println(x ^ 0)        //@ diag(`x ^ 0 always equals x`)
    20  	println((x << 5) | 0) //@ diag(`(x << 5) | 0 always equals (x << 5)`)
    21  	println(x | 1)
    22  	println(x << 0)
    23  
    24  	println(x | a)
    25  	println(x | b) //@ diag(`x | b always equals x; b is defined as iota`)
    26  	println(x & b) //@ diag(`x & b always equals 0; b is defined as iota`)
    27  	println(x | c)
    28  
    29  	// d is iota, but its value is 1
    30  	println(x | d)
    31  }