Pular para o conteúdo principal

unnecessary_null_comparison

Detalhes sobre o diagnóstico 'unnecessary_null_comparison' produzido pelo analisador do Dart.

The operand can't be 'null', so the condition is always 'false'.

The operand can't be 'null', so the condition is always 'true'.

The operand must be 'null', so the condition is always 'false'.

The operand must be 'null', so the condition is always 'true'.

Descrição

#

O analisador emite este diagnóstico quando encontra uma comparação de igualdade (== ou !=) com um dos operandos sendo null e o outro operando não podendo ser null. Essas comparações são sempre true ou sempre false, então não servem para nada.

Exemplos

#

O código a seguir produz este diagnóstico porque x nunca pode ser null, então a comparação sempre resulta em true:

dart
void f(int x) {
  if (x != null) {
    print(x);
  }
}

O código a seguir produz este diagnóstico porque x nunca pode ser null, então a comparação sempre resulta em false:

dart
void f(int x) {
  if (x == null) {
    throw ArgumentError("x can't be null");
  }
}

Correções comuns

#

Se o outro operando deveria poder ser null, altere o tipo desse operando:

dart
void f(int? x) {
  if (x != null) {
    print(x);
  }
}

Se o outro operando realmente não pode ser null, remova a condição:

dart
void f(int x) {
  print(x);
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.