Pular para o conteúdo principal

missing_named_pattern_field_name

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

The getter name is not specified explicitly, and the pattern is not a variable.

Descrição

#

O analisador gera este diagnóstico quando, dentro de um padrão de objeto, a especificação de uma propriedade e o padrão usado para casar com o valor da propriedade não têm:

  • um nome de getter antes dos dois-pontos
  • um padrão de variável a partir do qual o nome do getter possa ser inferido

Exemplo

#

O código a seguir gera este diagnóstico porque não há nome de getter antes dos dois-pontos e nenhum padrão de variável depois deles no padrão de objeto (C(:0)):

dart
abstract class C {
  int get f;
}
​
void f(C c) {
  switch (c) {
    case C(:0):
      break;
  }
}

Correções comuns

#

Se você precisa usar o valor real da propriedade dentro do escopo do padrão, então adicione um padrão de variável cujo nome seja o mesmo da propriedade que está sendo casada:

dart
abstract class C {
  int get f;
}
​
void f(C c) {
  switch (c) {
    case C(:var f) when f == 0:
      print(f);
  }
}

Se você não precisa usar o valor real da propriedade dentro do escopo do padrão, então adicione o nome da propriedade que está sendo casada antes dos dois-pontos:

dart
abstract class C {
  int get f;
}
​
void f(C c) {
  switch (c) {
    case C(f: 0):
      break;
  }
}

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