V8021. Using a unary operator several times is meaningless or reverses the result.
Анализатор обнаружил унарный оператор !, ^, - или +, который два раза подряд применяется к одному выражению. Повторное применение оператора + является избыточным. В случае других операторов это приведёт к отмене эффекта первого применения.
Рассмотрим пример:
func foo() {
....
for _, u := range users {
if !(!hideInactive) && !u.IsActive {
continue
}
....
}
}
Здесь оператор ! дважды применяется к переменной hideInactive, что эквивалентно отсутствию отрицания. Такая ошибка может возникнуть из-за опечатки при расстановке скобок в условии.
Корректный код:
if !(!hideInactive && !u.IsActive) {
continue
}