anchor.diff:    }
   
     E removeLast() {
  -    _DoubleLinkedQueueEntry lastEntry = _sentinel._previous;
  +    _DoubleLinkedQueueEntry lastEntry = _sentinel._previousLink;
       E result = lastEntry._remove();
       _elementCount--;
       return result;
     }
   
     E removeFirst() {
  -    _DoubleLinkedQueueEntry firstEntry = _sentinel._next;
  +    _DoubleLinkedQueueEntry firstEntry = _sentinel._nextLink;
       E result = firstEntry._remove();
       _elementCount--;
       return result;
     }
   
     bool remove(Object o) {
  -    _DoubleLinkedQueueEntry<E> entry = _sentinel._next;
  +    _DoubleLinkedQueueEntry<E> entry = _sentinel._nextLink;
       while (!identical(entry, _sentinel)) {
         if (entry.element == o) {
           entry._remove();
           _elementCount--;
           return true;
         }
  -      entry = entry._next;
  +      entry = entry._nextLink;
       }
       return false;
     }
   
     void _filter(bool test(E element), bool removeMatching) {
  -    _DoubleLinkedQueueEntry<E> entry = _sentinel._next;
  +    _DoubleLinkedQueueEntry<E> entry = _sentinel._nextLink;
       while (!identical(entry, _sentinel)) {
  -      _DoubleLinkedQueueEntry<E> next = entry._next;
  +      _DoubleLinkedQueueEntry<E> next = entry._nextLink;
         if (identical(removeMatching, test(entry.element))) {
           entry._remove();
           _elementCount--;
  
positive.code:       throw new ConcurrentModificationError(_sentinel._queue);
      }
      _current = elementEntry.element;
      _nextEntry = elementEntry._next;
      return true;
    }
  
  
negative.code:  */
  class _DoubleLinkedQueueSentinel<E> extends _DoubleLinkedQueueEntry<E> {
    _DoubleLinkedQueueSentinel(DoubleLinkedQueue queue) : super(queue) {
      _previousLink = this;
      _nextLink = this;
    }
  
    _DoubleLinkedQueueElement _asNonSentinelEntry() {
  