Pular para o conteúdo principal

no_combined_super_signature

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

Can't infer missing types in '{0}' from overridden methods: {1}.

Descrição

#

O analisador emite este diagnóstico quando há uma declaração de método para a qual um ou mais tipos precisam ser inferidos, e esses tipos não podem ser inferidos porque nenhum dos métodos sobrescritos tem um tipo de função que seja supertipo de todos os outros métodos sobrescritos, como especificado pela inferência de sobrescritaOverride inferenceComo os tipos ausentes em uma declaração de método são inferidos. Saiba mais.

Exemplo

#

O código a seguir gera este diagnóstico porque o método m declarado na classe C está sem o tipo de retorno e sem o tipo do parâmetro a, e nenhum dos tipos ausentes pode ser inferido para ele:

dart
abstract class A {
  A m(String a);
}
​
abstract class B {
  B m(int a);
}
​
abstract class C implements A, B {
  m(a);
}

Neste exemplo, a inferência de sobrescrita não pode ser realizada porque os métodos sobrescritos são incompatíveis destas formas:

  • Nenhum dos tipos de parâmetro (String e int) é supertipo do outro.
  • Nenhum dos tipos de retorno é subtipo do outro.

Correções comuns

#

Se possível, adicione tipos ao método na subclasse que sejam consistentes com os tipos de todos os métodos sobrescritos:

dart
abstract class A {
  A m(String a);
}
​
abstract class B {
  B m(int a);
}
​
abstract class C implements A, B {
  C m(Object 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ê.