== Why is this an issue? Using the same value on either side of a binary operator is almost always a mistake. In the case of logical operators, it is either a copy/paste error and therefore a bug, or it is simply wasted code, and should be simplified. In the case of arithmetic operators, having the same value on both sides of an operator yields predictable results, and should be simplified. === Noncompliant code example [source,cobol] ---- * always true IF X = X PERFORM SECTION1. END-IF. * always false IF X <> X PERFORM SECTION2. END-IF. * if the first one is true, the second one is too IF X = Y AND X = Y PERFORM SECTION3. END-IF. * if the first one is true, the second one is too IF X = Y OR X = Y PERFORM SECTION4. END-IF. * always 1 COMPUTE X = Y / Y. * always 0 COMPUTE X = Y - Y. ---- === Exceptions This rule ignores ``++*++`` and ``+``. include::../see.adoc[] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] include::../highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]