github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/staticcheck/sa4000/testdata/src/example.com/CheckLhsRhsIdentical/CheckLhsRhsIdentical.go (about) 1 package pkg 2 3 import "math/rand" 4 5 type Float float64 6 7 type Floats [5]float64 8 type Ints [5]int 9 10 type T1 struct { 11 A float64 12 B float64 13 } 14 15 type T2 struct { 16 A float64 17 B int 18 } 19 20 func fn(a int, s []int, f1 float64, f2 Float, fs Floats, is Ints, t1 T1, t2 T2) { 21 if 0 == 0 { //@ diag(`identical expressions`) 22 println() 23 } 24 if 1 == 1 { //@ diag(`identical expressions`) 25 println() 26 } 27 if a == a { //@ diag(`identical expressions`) 28 println() 29 } 30 if a != a { //@ diag(`identical expressions`) 31 println() 32 } 33 if s[0] == s[0] { //@ diag(`identical expressions`) 34 println() 35 } 36 if 1&1 == 1 { //@ diag(`identical expressions`) 37 println() 38 } 39 if (1 + 2 + 3) == (1 + 2 + 3) { //@ diag(`identical expressions`) 40 println() 41 } 42 if f1 == f1 { 43 println() 44 } 45 if f1 != f1 { 46 println() 47 } 48 if f1 > f1 { 49 println() 50 } 51 if f1-f1 == 0 { 52 println() 53 } 54 if f2 == f2 { 55 println() 56 } 57 if fs == fs { 58 println() 59 } 60 if is == is { //@ diag(`identical expressions`) 61 println() 62 } 63 if t1 == t1 { 64 println() 65 } 66 if t2 == t2 { //@ diag(`identical expressions`) 67 println() 68 } 69 } 70 71 func fn2() { 72 _ = rand.Int() - rand.Int() 73 _ = rand.Int31() - rand.Int31() 74 _ = rand.Int31n(0) - rand.Int31n(0) 75 _ = rand.Int63() - rand.Int63() 76 _ = rand.Int63n(0) - rand.Int63n(0) 77 _ = rand.Intn(0) - rand.Intn(0) 78 _ = rand.Uint32() - rand.Uint32() 79 _ = rand.Uint64() - rand.Uint64() 80 _ = rand.ExpFloat64() - rand.ExpFloat64() 81 _ = rand.Float32() - rand.Float32() 82 _ = rand.Float64() - rand.Float64() 83 _ = rand.NormFloat64() - rand.NormFloat64() 84 85 var rng *rand.Rand 86 _ = rng.Int() - rng.Int() 87 _ = rng.Int31() - rng.Int31() 88 _ = rng.Int31n(0) - rng.Int31n(0) 89 _ = rng.Int63() - rng.Int63() 90 _ = rng.Int63n(0) - rng.Int63n(0) 91 _ = rng.Intn(0) - rng.Intn(0) 92 _ = rng.Uint32() - rng.Uint32() 93 _ = rng.Uint64() - rng.Uint64() 94 _ = rng.ExpFloat64() - rng.ExpFloat64() 95 _ = rng.Float32() - rng.Float32() 96 _ = rng.Float64() - rng.Float64() 97 _ = rng.NormFloat64() - rng.NormFloat64() 98 99 // not flagged; the return value is an interface and might be a float. 100 _ = rand.NewSource(0) == rand.NewSource(0) 101 }