Pular para o conteúdo principal

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:

dart
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:

dart
void f(int x) {
  if (x case 3) {}
}

Se o tipo da constante estiver correto, reescreva o valor para que seja compatível:

dart
void f(bool x) {
  if (x case true) {}
}

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ê.