length property Null safety

int length
override

The number of objects in this list.

The valid indices for a list are 0 through length - 1.

Implementation

@override
int get length {
  _context.enforceReadPolicy(_atom);

  _atom.reportObserved();
  return _list.length;
}
void length=(int value)
override

Changes the length of this list.

The list must be growable. If newLength is greater than current length, new entries are initialized to null, so newLength must not be greater than the current length if the element type E is non-nullable.

Implementation

@override
set length(int value) {
  /// There is no need to enforceWritePolicy since we are conditionally wrapping in an Action.
  _context.conditionallyRunInAction(() {
    if (value < _list.length) {
      final removed = _list.sublist(value);
      _list.length = value;
      _notifyRangeUpdate(value, null, removed);
    } else if (value > _list.length) {
      final index = _list.length;
      _list.length = value;
      _notifyRangeUpdate(index, _list.sublist(index), null);
    }
  }, _atom);
}