Pular para o conteúdo principal

invalid_reference_to_generative_enum_constructor

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

Generative enum constructors can only be used to create an enum constant.

Generative enum constructors can't be torn off.

Descrição

#

O analisador produz este diagnóstico quando um construtor generativo definido em um enum é usado em qualquer lugar que não seja para criar uma das constantes do enum ou como destino de um redirecionamento a partir de outro construtor do mesmo enum.

Exemplo

#

O código a seguir produz este diagnóstico porque o construtor de E está sendo usado para criar uma instância na função f:

dart
enum E {
  a(0);
​
  const E(int x);
}
​
E f() => const E(2);

Correções comuns

#

Se houver um valor de enum com o mesmo valor, ou se você adicionar essa constante, então referencie a constante diretamente:

dart
enum E {
  a(0),
  b(2);
​
  const E(int x);
}
​
E f() => E.b;

Se você precisar usar uma invocação de construtor, então use um construtor de fábrica:

dart
enum E {
  a(0);
​
  const E(int x);
​
  factory E.c(int x) => a;
}
​
E f() => E.c(2);

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