Pular para o conteúdo principal

enum_mixin_with_instance_variable

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

Mixins applied to enums can't have instance variables.

Descrição

#

O analisador emite este diagnóstico quando um mixin aplicado a um enum declara uma ou mais variáveis de instância. Isso não é permitido porque os valores do enum são constantes, e não há nenhuma forma de o construtor do enum inicializar os campos do mixin.

Exemplo

#

O código a seguir gera este diagnóstico porque o mixin M define o campo de instância x:

dart
mixin M {
  int x = 0;
}
​
enum E with M { a }

Correções comuns

#

Se você precisa aplicar o mixin, então transforme todos os campos de instância em pares de getter e setter e implemente-os no enum, se necessário:

dart
mixin M {
  int get x => 0;
}
​
enum E with M { a }

Se você não precisa aplicar o mixin, então remova-o:

dart
enum E { a }

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