insertAll method

void insertAll(
  1. int index,
  2. Iterable<E> iterable
)

Implementation

void insertAll(int index, Iterable<E> iterable) {
  // Add directly to the underlying `List` then check elements there, for
  // performance. Roll back the changes if validation fails.
  var safeList = _safeList;
  var lengthBefore = safeList.length;
  safeList.insertAll(index, iterable);
  if (!_needsNullCheck) return;
  var insertedLength = safeList.length - lengthBefore;
  try {
    for (var i = index; i != index + insertedLength; ++i) {
      _checkElement(safeList[i]);
    }
  } catch (_) {
    safeList.removeRange(index, index + insertedLength);
    rethrow;
  }
}