anchor.diff:        markNeedsLayout();
       }
     }
  +
  +  bool _overflowOccurredDuringLayout = false;
   
     void setupParentData(RenderBox child) {
       if (child.parentData is! FlexBoxParentData)
  
positive.code:         break;
      }
  
      switch (_direction) {
        case FlexDirection.horizontal:
          size = constraints.constrain(new Size(mainSize, crossSize));
          crossSize = size.height;
          break;
        case FlexDirection.vertical:
          size = constraints.constrain(new Size(crossSize, mainSize));
          crossSize = size.width;
          break;
      }
  
      // Position elements
      double childMainPosition = leadingSpace;
  
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);
      }
    }
  }
  