anchor.diff:      assert(child != null);
       assert(child.parentData != null);
       child.parentData.detach();
  -    if (child._relayoutSubtreeRoot != child) {
  -      child._relayoutSubtreeRoot = null;
  -      child._needsLayout = true;
  -    }
  +    child._cleanRelayoutSubtreeRoot();
       super.dropChild(child);
       markNeedsLayout();
     }
  
positive.code:   void detachChildren() {
      if (_child != null)
        _child.detach();
    }
    String debugDescribeChildren(String prefix) {
      if (child != null)
  
negative.code:       scheduler.ensureVisualUpdate();
      }
    }
    void _cleanRelayoutSubtreeRoot() {
      if (_relayoutSubtreeRoot != this) {
        _relayoutSubtreeRoot = null;
        _needsLayout = true;
        _cleanRelayoutSubtreeRootChildren();
      }
    }
    void _cleanRelayoutSubtreeRootChildren() { } // workaround for lack of inter-class mixins in Dart
    void scheduleInitialLayout() {
      assert(attached);
      assert(parent == null);
  