﻿# V6080\. Consider checking for misprints\. It's possible that an assigned variable should be checked in the next condition\.

Анализатор обнаружил ситуацию, когда проверка переменной может быть пропущена в следующем 'if' после присваивания или инициализации\.

К примеру, ошибочным можно считать такой код:

```cpp
int ret = foo(....);
if (ret != -1) { .... }
....
int ret2 = bar(....);
if (ret != -1) { .... }    // <=
```

Часто бывают случаи, когда надо проверить возвращаемое значение какой\-либо функции\. Однако, можно допустить ошибку, указав другую переменную внутри условия 'if'\. Чаще всего подобная ошибка возникает, когда фрагмент кода копируется, но в нём забывают заменить имя переменной в условии\. В рассмотренном примере в условии забыли заменить имя 'ret' на 'ret2'\.

Исправленный вариант:

```cpp
int ret2 = bar(....);
if (ret2 != -1) { .... }
```

Или же можно допустить ошибку в таком случае:

```cpp
this.data = calculate(data, ....);
if (data != -1) ....;
```

Переменная и поле имеют одинаковые имена, из\-за чего их легко перепутать\.

Диагностика является эвристической\. Во время своей работы она сравнивает имена переменных и на основании этого делает предположения о наличии опечатки\. Также производится базовая проверка типов для уменьшения количества ложных срабатываний\.