dead_ null_ aware_ expression
Detalhes sobre o diagnóstico 'dead_null_aware_expression' produzido pelo analisador do Dart.
The left operand can't be null, so the right operand is never executed.
Descrição
#O analisador emite este diagnóstico em dois casos.
O primeiro é quando o operando da esquerda de um operador ?? não pode ser null. O operando da direita só é avaliado se o operando da esquerda tiver o valor
null, e, como o operando da esquerda não pode ser null, o operando da direita nunca é avaliado.
O segundo é quando o lado esquerdo de uma atribuição que usa o operador ??= não pode ser
null. O lado direito só é avaliado se o lado esquerdo tiver o valor null, e, como o lado esquerdo não pode ser
null, o lado direito nunca é avaliado.
Exemplos
#O código a seguir produz este diagnóstico porque x não pode ser null:
int f(int x) {
return x ?? 0;
}
O código a seguir produz este diagnóstico porque f não pode ser null:
class C {
int f = -1;
void m(int x) {
f ??= x;
}
}
Correções comuns
#
Se o diagnóstico for emitido para um operador ??, remova o operador ?? e o operando da direita:
int f(int x) {
return x;
}
Se o diagnóstico for emitido para uma atribuição, e a atribuição não for necessária, remova a atribuição:
class C {
int f = -1;
void m(int x) {}
}
Se a atribuição for necessária, mas deveria depender de outra condição, reescreva o código para usar
= e a condição diferente:
class C {
int f = -1;
void m(int x) {
if (f < 0) {
f = x;
}
}
}
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.