illegal_ concrete_ enum_ member
Detalhes sobre o diagnóstico 'illegal_concrete_enum_member' produzido pelo analisador do Dart.
A concrete instance member named '{0}' can't be declared in a class that implements 'Enum'.
A concrete instance member named '{0}' can't be inherited from '{1}' in a class that implements 'Enum'.
Descrição
#
O analisador produz este diagnóstico quando uma declaração de enum, uma classe
que implementa Enum, ou um mixin com restrição de superclasse Enum, declara
ou herda um membro de instância concreto chamado index, hashCode
ou ==.
Exemplos
#
O código a seguir produz este diagnóstico porque o enum E declara um
getter de instância chamado index:
enum E {
v;
@override
int get index => 0;
}
O código a seguir produz este diagnóstico porque a classe C, que
implementa Enum, declara um campo de instância chamado hashCode:
abstract class C implements Enum {
@override
int hashCode = 0;
}
O código a seguir produz este diagnóstico porque a classe C, que
implementa Enum indiretamente por meio da classe A, declara um
getter de instância chamado hashCode:
abstract class A implements Enum {}
abstract class C implements A {
@override
int get hashCode => 0;
}
O código a seguir produz este diagnóstico porque o mixin M, que
tem Enum na cláusula on, declara um operador explícito chamado
==:
mixin M on Enum {
@override
bool operator ==(Object other) => false;
}
Correções comuns
#Renomeie o membro em conflito:
enum E {
v;
int get getIndex => 0;
}
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ê.