目次

collection_methods_unrelated_type

関連のない型の引数を使用した様々なコレクションメソッドの呼び出し。

このルールはDart 2.19から利用可能です。

ルールセット:core推奨flutter

詳細

#

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

これを行うと、コレクションの要素に対して`==`が呼び出され、ほとんどの場合`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`

analysis_options.yaml
yaml
linter:
  rules:
    - collection_methods_unrelated_type