duplicate_ pattern_ field
Detalhes sobre o diagnóstico 'duplicate_pattern_field' produzido pelo analisador do Dart.
The field '{0}' is already matched in this pattern.
Descrição
#O analisador emite este diagnóstico quando um padrão de record compara o mesmo campo mais de uma vez, ou quando um padrão de objeto compara o mesmo getter mais de uma vez.
Exemplos
#
O código a seguir gera este diagnóstico porque o campo de record a é
comparado duas vezes no mesmo padrão de record:
void f(({int a, int b}) r) {
switch (r) {
case (a: 1, a: 2):
return;
}
}
O código a seguir gera este diagnóstico porque o getter f é comparado duas
vezes no mesmo padrão de objeto:
void f(Object o) {
switch (o) {
case C(f: 1, f: 2):
return;
}
}
class C {
int? f;
}
Correções comuns
#Se o padrão deve valer para mais de um valor do campo duplicado, então use um padrão de OU lógico:
void f(({int a, int b}) r) {
switch (r) {
case (a: 1, b: _) || (a: 2, b: _):
break;
}
}
Se o padrão deve comparar vários campos, então altere o nome de um dos campos:
void f(({int a, int b}) r) {
switch (r) {
case (a: 1, b: 2):
return;
}
}
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ê.