conflicting_ generic_ interfaces
Detalhes sobre o diagnóstico 'conflicting_generic_interfaces' produzido pelo analisador do Dart.
The {0} '{1}' can't implement both '{2}' and '{3}' because the type arguments are different.
Descrição
#O analisador emite este diagnóstico quando uma classe tenta implementar uma interface genérica várias vezes, e os valores dos argumentos de tipo não são os mesmos.
Exemplo
#
O código a seguir produz este diagnóstico porque C é definida para implementar tanto I<int>
(porque estende A) quanto I<String> (porque implementa B), mas
int e String não são o mesmo tipo:
class I<T> {}
class A implements I<int> {}
class B implements I<String> {}
class C extends A implements B {}
Correções comuns
#
Refaça a hierarquia de tipos para evitar essa situação. Por exemplo, você pode tornar um ou ambos os tipos herdados genéricos, de modo que
C possa especificar o mesmo tipo para ambos os argumentos de tipo:
class I<T> {}
class A<S> implements I<S> {}
class B implements I<String> {}
class C extends A<String> implements 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ê.