anchor.diff:  
   class BlockParentData extends BoxParentData with ContainerParentDataMixin<RenderBox> { }
   
  -class RenderBlock extends RenderBox with ContainerRenderObjectMixin<RenderBox, BlockParentData>,
  -                                         RenderBoxContainerDefaultsMixin<RenderBox, BlockParentData> {
  +abstract class RenderBlockBase extends RenderBox with ContainerRenderObjectMixin<RenderBox, BlockParentData>,
  +                                                      RenderBoxContainerDefaultsMixin<RenderBox, BlockParentData> {
  +
     // lays out RenderBox children in a vertical stack
     // uses the maximum width provided by the parent
  -  // sizes itself to the height of its child stack
   
     bool _hasVisualOverflow = false;
   
  -  RenderBlock({
  +  RenderBlockBase({
       List<RenderBox> children
     }) {
       addAll(children);
  
positive.code:   }
  
    void paint(PaintingCanvas canvas, Offset offset) {
      if (_hasVisualOverflow) {
        canvas.save();
        canvas.clipRect(offset & size);
      }
      defaultPaint(canvas, offset);
      if (_hasVisualOverflow) {
        canvas.restore();
      }
  
negative.code:     return defaultComputeDistanceToFirstActualBaseline(baseline);
    }
  
    double _childrenHeight;
    double get childrenHeight => _childrenHeight;
  
    void markNeedsLayout() {
      _childrenHeight = null;
      super.markNeedsLayout();
    }
  
    void performLayout() {
      assert(constraints is BoxConstraints);
      double width = constraints.constrainWidth(constraints.maxWidth);
  