remove method Null safety

bool remove (
  1. Object? o

Remove a single instance of value from the queue.

Returns true if a value was removed, or false if the queue contained no element equal to value.


bool remove(Object? o) {
  _DoubleLinkedQueueEntry<E> entry =
      _sentinel._nextLink as _DoubleLinkedQueueEntry<E>;
  while (!identical(entry, _sentinel)) {
    bool equals = (entry._element == o);
    if (!identical(this, entry._queue)) {
      // Entry must still be in the queue.
      throw ConcurrentModificationError(this);
    if (equals) {
      return true;
    entry = entry._nextLink as _DoubleLinkedQueueEntry<E>;
  return false;