extension_ type_ inherited_ member_ conflict
Detalhes sobre o diagnóstico 'extension_type_inherited_member_conflict' produzido pelo analisador do Dart.
The extension type '{0}' has more than one distinct member named '{1}' from implemented types.
Descrição
#O analisador produz este diagnóstico quando um tipo de extensão implementa dois ou mais outros tipos, e pelo menos dois desses tipos declaram um membro com o mesmo nome.
Exemplo
#
O código a seguir produz este diagnóstico porque o tipo de extensão C
implementa tanto A quanto B, e ambos declaram um membro chamado
m:
class A {
void m() {}
}
extension type B(A a) {
void m() {}
}
extension type C(A a) implements A, B {}
Correções comuns
#Se o tipo de extensão não precisar implementar todos os tipos listados, remova todos, exceto um, dos tipos que introduzem os membros em conflito:
class A {
void m() {}
}
extension type B(A a) {
void m() {}
}
extension type C(A a) implements A {}
Se o tipo de extensão precisar implementar todos os tipos listados, mas for possível renomear os membros desses tipos, dê nomes únicos aos membros em conflito:
class A {
void m() {}
}
extension type B(A a) {
void n() {}
}
extension type C(A a) implements A, B {}
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ê.