Skip to main content

unnecessary_to_list_in_spreads

Unnecessary use of 'toList' in a spread.

Description

#

The analyzer produces this diagnostic when toList is used to convert an Iterable to a List just before a spread operator is applied to the list. The spread operator can be applied to any Iterable, so the conversion isn't necessary.

Example

#

The following code produces this diagnostic because toList is invoked on the result of map, which is an Iterable that the spread operator could be applied to directly:

dart
List<String> toLowercase(List<String> strings) {
  return [
    ...strings.map((String s) => s.toLowerCase()).toList(),
  ];
}

Common fixes

#

Remove the invocation of toList:

dart
List<String> toLowercase(List<String> strings) {
  return [
    ...strings.map((String s) => s.toLowerCase()),
  ];
}