fillRange method Null safety

  1. @override
void fillRange(
  1. int start,
  2. int end,
  3. [T? fill]
)
override

Overwrites a range of elements with fillValue.

Sets the positions greater than or equal to start and less than end, to fillValue.

The provided range, given by start and end, must be valid. A range from start to end is valid if 0 ≤ startendlength. An empty range (with end == start) is valid.

Example:

var list = List.filled(5, -1);
print(list); //  [-1, -1, -1, -1, -1]
list.fillRange(1, 3, 4);
print(list); //  [-1, 4, 4, -1, -1]

If the element type is not nullable, the fillValue must be provided and must be non-null.

Implementation

@override
void fillRange(int start, int end, [T? fill]) {
  _context.conditionallyRunInAction(() {
    if (end > start) {
      final oldContents = _list.sublist(start, end);
      _list.fillRange(start, end, fill);
      final newContents = _list.sublist(start, end);
      _notifyRangeUpdate(start, newContents, oldContents);
    }
  }, _atom);
}