メインコンテンツにスキップ

collection_methods_unrelated_type

安定版
コア

型が関連しない様々なコレクションメソッドの呼び出し。

詳細

#

しないでください:型が関連しない引数で特定のコレクションメソッドを呼び出すこと。

これはコレクションの要素に対して==を呼び出し、ほとんどの場合falseを返します。

コレクションメソッドに渡される引数は、以下のようにコレクションの型に関連している必要があります。

  • Iterable<E>.containsへの引数はEに関連している必要があります。
  • List<E>.removeへの引数はEに関連している必要があります。
  • Map<K, V>.containsKeyへの引数はKに関連している必要があります。
  • Map<K, V>.containsValueへの引数はVに関連している必要があります。
  • Map<K, V>.removeへの引数はKに関連している必要があります。
  • Map<K, V>.[]への引数はKに関連している必要があります。
  • Queue<E>.removeへの引数はEに関連している必要があります。
  • Set<E>.lookupへの引数はEに関連している必要があります。
  • Set<E>.removeへの引数はEに関連している必要があります。

悪い例

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

悪い例

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

良い例

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

良い例

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

有効にする

#

collection_methods_unrelated_typeルールを有効にするには、analysis_options.yamlファイルのlinter > rulesの下にcollection_methods_unrelated_typeを追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - collection_methods_unrelated_type

代わりに、YAMLマップ構文を使用してリンタルールを構成している場合は、linter > rulesの下にcollection_methods_unrelated_type: trueを追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    collection_methods_unrelated_type: true