List<Widget> ensureUniqueKeysForList(Iterable<Widget> items, { int baseIndex: 0 })

Wrap each item in a KeyedSubtree whose key is based on the item's existing key or the sum of its list index and baseIndex.

Source

static List<Widget> ensureUniqueKeysForList(Iterable<Widget> items, { int baseIndex: 0 }) {
  if (items == null || items.isEmpty)
    return items;

  List<Widget> itemsWithUniqueKeys = <Widget>[];
  int itemIndex = baseIndex;
  for (Widget item in items) {
    itemsWithUniqueKeys.add(new KeyedSubtree.wrap(item, itemIndex));
    itemIndex += 1;
  }

  assert(!debugItemsHaveDuplicateKeys(itemsWithUniqueKeys));
  return itemsWithUniqueKeys;
}