anchor.diff:        _nodesNeedingPaint = new List<RenderObject>();
         for (RenderObject node in dirtyNodes..sort((a, b) => a.depth - b.depth)) {
           if (node._needsPaint && node.attached)
  -          node._updatePaintingCanvas();
  +          node._repaint();
         };
         assert(_nodesNeedingPaint.length == 0);
       } finally {
  
positive.code:     assert(!_needsPaint);
    }
  
    bool get createNewDisplayList => false;
    Rect get paintBounds;
    void debugPaint(PaintingContext context, Offset offset) { }
    void paint(PaintingContext context, Offset offset) { }
  
negative.code: 
    static List<RenderObject> _nodesNeedingPaint = new List<RenderObject>();
  
    bool _needsPaint = true;
    bool get needsPaint => _needsPaint;
  
  