Pular para o conteúdo principal

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:

dart
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:

dart
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:

dart
class A {
  void m() {}
}
​
extension type B(A a) {
  void n() {}
}
​
extension type C(A a) implements A, B {}

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