Pular para o conteúdo principal

collection_methods_unrelated_type

Saiba mais sobre a regra de lint collection_methods_unrelated_type.

Estável
Core
Lançado no Dart 2.19

Invocação de vários métodos de coleção com argumentos de tipos não relacionados.

Detalhes

#

NÃO FAÇA invocar certos métodos de coleção com um argumento de tipo não relacionado.

Fazer isso invocará == nos elementos da coleção e provavelmente retornará false.

Um argumento passado a um método de coleção deve estar relacionado ao tipo da coleção da seguinte forma:

  • 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

RUIM:

dart
void someFunction() {
  var list = <int>[];
  if (list.contains('1')) print('someFunction'); // LINT
}

RUIM:

dart
void someFunction() {
  var set = <int>{};
  set.remove('1'); // LINT
}

BOM:

dart
void someFunction() {
  var list = <int>[];
  if (list.contains(1)) print('someFunction'); // OK
}

BOM:

dart
void someFunction() {
  var set = <int>{};
  set.remove(1); // OK
}

Ativar

#

Para ativar a regra collection_methods_unrelated_type, adicione collection_methods_unrelated_type em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - collection_methods_unrelated_type

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione collection_methods_unrelated_type: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    collection_methods_unrelated_type: true

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