anchor.diff:        assert(child.parentData is FlexBoxParentData);
         double childCrossPosition;
         switch (_alignItems) {
  +        case FlexAlignItems.stretch:
           case FlexAlignItems.start:
             childCrossPosition = 0.0;
             break;
  
positive.code:   start,
    end,
    center,
  }
  
  typedef double _ChildSizingFunction(RenderBox child, BoxConstraints constraints);
  
negative.code:       if (flex > 0) {
          totalFlex += child.parentData.flex;
        } else {
          BoxConstraints innerConstraints;
          if (alignItems == FlexAlignItems.stretch) {
            switch (_direction) {
              case FlexDirection.horizontal:
                innerConstraints = new BoxConstraints(maxWidth: constraints.maxWidth,
                                                      minHeight: constraints.minHeight,
                                                      maxHeight: constraints.maxHeight);
                break;
              case FlexDirection.vertical:
                innerConstraints = new BoxConstraints(minWidth: constraints.minWidth,
                                                      maxWidth: constraints.maxWidth,
                                                      maxHeight: constraints.maxHeight);
                break;
            }
          } else {
            innerConstraints = constraints.loosen();
          }
          child.layout(innerConstraints, parentUsesSize: true);
          freeSpace -= _getMainSize(child);
          crossSize = math.max(crossSize, _getCrossSize(child));
  