github.com/songshiyun/revive@v1.1.5-0.20220323112655-f8433a19b3c5/testdata/constant-logical-expr.go (about)

     1  package fixtures
     2  
     3  import "fmt"
     4  
     5  // from github.com/ugorji/go/codec/helper.go
     6  func isNaN(f float64) bool { return f != f } // MATCH /expression always evaluates to false/
     7  
     8  func skip(f float64) bool { return f != g }
     9  
    10  func foo1(f float64) bool { return foo2(2.) > foo2(2.) } // MATCH /expression always evaluates to false/
    11  
    12  func foo2(f float64) bool { return f < f } // MATCH /expression always evaluates to false/
    13  
    14  func foo3(f float64) bool { return f <= f } // MATCH /expression always evaluates to true/
    15  
    16  func foo4(f float64) bool { return f >= f } // MATCH /expression always evaluates to true/
    17  
    18  func foo5(f float64) bool { return f == f } // MATCH /expression always evaluates to true/
    19  
    20  func foo6(f float64) bool { return fmt.Sprintf("%s", buf1.Bytes()) == fmt.Sprintf("%s", buf1.Bytes()) } // MATCH /expression always evaluates to true/
    21  
    22  func foo7(f float64) bool {
    23  	return fFoo(fBar(isNaN(10.), bpar), 10000) || fFoo(fBar(isNaN(10.), bpar), 10000) // MATCH /left and right hand-side sub-expressions are the same/
    24  }
    25  
    26  func foo8(f float64) bool {
    27  	return fFoo(fBar(isNaN(10.), bpar), 10000) && fFoo(fBar(isNaN(10.), bpar), 10000) // MATCH /left and right hand-side sub-expressions are the same/
    28  }