anchor.diff:          break;
       }
   
  +    Size desiredSize;
       switch (_direction) {
         case FlexDirection.horizontal:
  -        size = constraints.constrain(new Size(mainSize, crossSize));
  +        desiredSize = new Size(mainSize, crossSize);
  +        size = constraints.constrain(desiredSize);
           crossSize = size.height;
           break;
         case FlexDirection.vertical:
  +        desiredSize = new Size(crossSize, mainSize);
           size = constraints.constrain(new Size(crossSize, mainSize));
           crossSize = size.width;
           break;
       }
  +    _overflowOccurredDuringLayout = desiredSize != size;
   
       // Position elements
       double childMainPosition = leadingSpace;
  
positive.code:       markNeedsLayout();
      }
    }
  
    void setupParentData(RenderBox child) {
      if (child.parentData is! FlexBoxParentData)
  
negative.code:   }
  
    void paint(PaintingCanvas canvas, Offset offset) {
      if (_overflowOccurredDuringLayout) {
        canvas.save();
        canvas.clipRect(offset & size);
        defaultPaint(canvas, offset);
        canvas.restore();
      } else {
        defaultPaint(canvas, offset);
      }
    }
  }
  