class A {
void foo() {
boolean a,b;
if(a == b) { }
if(a == a) { } // Noncompliant [[sc=13;ec=14;secondary=5]] {{Identical sub-expressions on both sides of operator "=="}}
if(a != a) { } // Noncompliant [[sc=13;ec=14]] {{Identical sub-expressions on both sides of operator "!="}}
if(a || a) { } // Noncompliant
if(a && a) { } // Noncompliant
if(a == b || a == b) {} // Noncompliant [[sc=18;ec=24]]
if(a || b || a) {} // Noncompliant
if(a || a || b) {} // Noncompliant
if(a || b || c || e && a) {}
if(a && b && c && e && a) {} // Noncompliant [[sc=28;ec=29]]
if(b
|| a
|| a) {} // Noncompliant [[sc=12;ec=13;secondary=15]]
double d = 0.0d;
float f = 0.0f;
if(f != f) {} //valid test for NaN
if(d != d) {} //valid test for NaN
int j,l;
int k = 1 << 1; //exclude this case for bit masks
j = 12 - k -k; //case why minus is excluded.
j = k - k; // Noncompliant
j = k*3/12%2 - k*3/12%2; // Noncompliant
}
}