# V3109. The same sub-expression is present on both sides of the operator. The expression is incorrect or it can be simplified.

The analyzer detected identical subexpressions in the left and the right part of an expression with a comparison operator. This operation is incorrect or meaningless, or can be simplified.

Consider the following example:

    if ((x – y) >= (x - z)) {};

The 'x' variable in this fragment is obviously not necessary and can be removed from both parts of the expression. This is what the simplified version of the code would look like:

    if (y <= z) {};

The next example:

    if (x1 == x1 + 1) {};

This code contains a true error, as the expression will be false at any value of the 'x1' variable. Perhaps the programmer made a typo, and the code was actually meant to look like this:

    if (x2 == x1 + 1) {};

One more example:

    if (x < x * y) {};

This expression can also be simplified by removing the 'x' variable:

    if (y > 1) {};