﻿# V8040\. The value of the variable is overwritten before it is used\.

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

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

```cpp
func createUser(req *http.Request) error {
  user, err := parseUser(req)
  if err != nil {
    return err
  }

  err = validateUser(user)
  err = saveUser(user)

  return err
}
```

Возвращаемое значение функции `validateUser` присваивается переменной `err`\. На следующей строке этой же переменной присваивается новое значение\. Следовательно, результат `validateUser` не был обработан\.

Для исправления нужно добавить проверку переменной `err` сразу после присваивания ей возвращаемого значения `validateUser`:

```cpp
func createUser(req *http.Request) error {
  user, err := parseUser(req)
  if err != nil {
    return err
  }

  err = validateUser(user)

  if err != nil {
    return err
  }

  err = saveUser(user)

  return err
}
```