constant_ pattern_ never_ matches_ value_ type
Detalhes sobre o diagnóstico 'constant_pattern_never_matches_value_type' produzido pelo analisador do Dart.
The matched value type '{0}' can never be equal to this constant of type '{1}'.
Descrição
#O analisador emite este diagnóstico quando um padrão constante nunca pode corresponder ao valor que está sendo testado, porque o tipo da constante sabidamente nunca corresponde ao tipo do valor.
Exemplo
#
O código a seguir produz este diagnóstico porque o tipo do padrão constante (true) é bool, o tipo do valor que está sendo comparado (x) é
int, e um booleano nunca pode corresponder a um inteiro:
void f(int x) {
if (x case true) {}
}
Correções comuns
#Se o tipo do valor estiver correto, reescreva o padrão para que seja compatível:
void f(int x) {
if (x case 3) {}
}
Se o tipo da constante estiver correto, reescreva o valor para que seja compatível:
void f(bool x) {
if (x case true) {}
}
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ê.