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:
                  
List<String> toLowercase(List<String> strings) {
  return [
    ...strings.map((String s) => s.toLowerCase()).toList(),
  ];
}
                      
                      
                      
                    Common fixes
#Remove the invocation of toList:
List<String> toLowercase(List<String> strings) {
  return [
    ...strings.map((String s) => s.toLowerCase()),
  ];
}
                      
                      
                      
                    Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-1. View source or report an issue.