length property Null safety

int length
inherited

The number of objects in this list.

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

Implementation

int get length => (_tail - _head) & (_table.length - 1);
void length=(int value)
inherited

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

set length(int value) {
  RangeError.checkNotNegative(value, "length");

  var delta = value - length;
  if (delta >= 0) {
    var needsToGrow = _table.length <= value;
    if (needsToGrow) _growTo(value);
    _tail = (_tail + delta) & (_table.length - 1);

    // If we didn't copy into a new table, make sure that we overwrite the
    // existing data so that users don't accidentally depend on it still
    // existing.
    if (!needsToGrow) fillRange(value - delta, value, _defaultValue);
  } else {
    removeRange(value, length);
  }
}