anchor.diff:        }
       }
   
  -    bool searchForOldNode() {
  +    void searchForOldNode() {
         if (currentNode.key == null)
  -        return false; // never re-order these nodes
  +        return; // never re-order these nodes
   
         ensureOldIdMap();
         oldNode = oldNodeIdMap[currentNode.key];
         if (oldNode == null)
  -        return false;
  +        return;
   
         oldNodeIdMap[currentNode.key] = null; // mark it reordered
         assert(renderObject is ContainerRenderObjectMixin);
         assert(old.renderObject is ContainerRenderObjectMixin);
         assert(oldNode.renderObject != null);
   
  -      if (old.renderObject == renderObject) {
  -        renderObject.move(oldNode.renderObject, before: nextSibling);
  -      } else {
  -        (old.renderObject as ContainerRenderObjectMixin).remove(oldNode.renderObject); // TODO(ianh): Remove cast once the analyzer is cleverer
  -        renderObject.add(oldNode.renderObject, before: nextSibling);
  -      }
  -
  -      return true;
  +      renderObject.move(oldNode.renderObject, before: nextSibling);
       }
   
       // Scan forwards, this time we may re-order;
  
positive.code:       if (_ancestor is RenderObjectWrapper)
          _ancestor.insertChildRoot(this, slot);
      } else {
        assert(old is RenderObjectWrapper);
        _renderObject = old.renderObject;
        _ancestor = old._ancestor;
        assert(_renderObject != null);
  
negative.code:   }
  }
  
  // RenderObjectWrappers correspond to a desired state of a
  // RenderObject. They are fully immutable, except that a Widget which
  // is a Component which lives within a RenderObjectWrapper's children
  // list may be in-place replaced with the "old" instance if it has
  // become stateful.
  abstract class RenderObjectWrapper extends Widget {
  
  