Pular para o conteúdo principal

collection_methods_unrelated_type

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

The argument type '{0}' isn't related to '{1}'.

Descrição

#

O analisador emite este diagnóstico quando qualquer um de vários métodos das bibliotecas principais é invocado com argumentos de um tipo inadequado. Esses métodos são aqueles que não fornecem um tipo específico o bastante para o parâmetro, o que impede a verificação de tipos normal de detectar o erro.

Os argumentos verificados são:

  • um argumento de Iterable<E>.contains deve estar relacionado a E
  • um argumento de List<E>.remove deve estar relacionado a E
  • um argumento de Map<K, V>.containsKey deve estar relacionado a K
  • um argumento de Map<K, V>.containsValue deve estar relacionado a V
  • um argumento de Map<K, V>.remove deve estar relacionado a K
  • um argumento de Map<K, V>.[] deve estar relacionado a K
  • um argumento de Queue<E>.remove deve estar relacionado a E
  • um argumento de Set<E>.lookup deve estar relacionado a E
  • um argumento de Set<E>.remove deve estar relacionado a E

Exemplo

#

O código a seguir produz este diagnóstico porque o argumento de contains é uma String, que não é atribuível a int, o tipo dos elementos da lista l:

dart
bool f(List<int> l) => l.contains('1');

Correções comuns

#

Se o tipo dos elementos estiver correto, altere o argumento para ter o mesmo tipo:

dart
bool f(List<int> l) => l.contains(1);

Se o tipo do argumento estiver correto, altere o tipo dos elementos:

dart
bool f(List<String> l) => l.contains('1');

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