Skip to main content

prefer_for_elements_to_map_fromiterable

Use 'for' elements when building maps from iterables.

Description

#

The analyzer produces this diagnostic when Map.fromIterable is used to build a map that could be built using the for element.

Example

#

The following code produces this diagnostic because fromIterable is being used to build a map that could be built using a for element:

dart
void f(Iterable<String> data) {
  Map<String, int>.fromIterable(
    data,
    key: (element) => element,
    value: (element) => element.length,
  );
}

Common fixes

#

Use a for element to build the map:

dart
void f(Iterable<String> data) {
  <String, int>{
    for (var element in data)
      element: element.length
  };
}