# V2007. This expression can be simplified. One of the operands in the operation equals NN. Probably it is a mistake.

Данное диагностическое правило добавлено по просьбе пользователей.

Анализатор позволяет обнаружить ряд мест с подозрительными бинарными операциями, где можно упростить код для повышения его читаемости.

Подозрительные бинарные операции:

- '^', '+', '-', '<<', '>>', где один из операндов равен 0;
- '&', где один из операндов равен -1;
- '*', '/', '%', где один из операндов равен 1.

Диагностическое правило V2007 помогает выполнять рефакторинг кода и иногда выявлять ошибки.

Примеры конструкций, на которые анализатор выдаст данное диагностическое сообщение:

    int X = 1 ^ 0;
    int Y = 2 / X;

Приведённый код можно упростить. Пример корректного кода:

    int X = 1;
    int Y = 2;

Для сокращения количества ложных сообщений, есть несколько исключений. Например, диагностическое сообщение V2007 не выдаётся в случае, если подозрительное выражение находится в макросе или является индексом массива.

Данная диагностика классифицируется как:

CWE-480