Pular para o conteúdo principal

type_parameter_supertype_of_its_bound

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

'{0}' can't be a supertype of its upper bound.

Descrição

#

O analisador produz este diagnóstico quando o limite (bound) de um parâmetro de tipo (o tipo que segue a palavra-chave extends) é, direta ou indiretamente, o próprio parâmetro de tipo. Afirmar que o parâmetro de tipo deve ser igual a si mesmo, ou um subtipo de si mesmo, ou um subtipo de si mesmo não ajuda, porque ele sempre será igual a si mesmo.

Exemplos

#

O código a seguir produz este diagnóstico porque o limite de T é T:

dart
class C<T extends T> {}

O código a seguir produz este diagnóstico porque o limite de T1 é T2, e o limite de T2 é T1, tornando efetivamente o limite de T1 igual a T1:

dart
class C<T1 extends T2, T2 extends T1> {}

Correções comuns

#

Se o parâmetro de tipo precisa ser uma subclasse de algum tipo, então substitua o limite pelo tipo necessário:

dart
class C<T extends num> {}

Se o parâmetro de tipo pode ser qualquer tipo, então remova a cláusula extends:

dart
class C<T> {}

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