# V3183. Code formatting implies that the statement should not be a part of the 'then' branch that belongs to the preceding 'if' statement.

Анализатор обнаружил инструкцию, относящуюся к оператору 'if'. При этом форматирование не соответствует логике исполнения: код может содержать ошибку.

Рассмотрим пример:

    string GetArgumentPositionStr(Argument argument)
    {
      if (argument.first)
        return "first";

      if (argument.second)

      if (argument.third)
        return "third";

      return String.Empty;
    }

В данном примере пропущена 'then' ветвь условной конструкции 'if (argument.second)'. Из-за этого ошибочный фрагмент кода будет работать так же, как и приведённый ниже:

    if (argument.second)
    {
      if (argument.third)
        return "third";
    }

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

    string GetArgumentPositionStr(Argument argument)
    {
      if (argument.first)
        return "first";

      if (argument.second)
        return "second";

      if (argument.third)
        return "third";

      return String.Empty;
    }

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

CWE-670