| Index: sky/sdk/lib/rendering/flex.dart | 
| diff --git a/sky/sdk/lib/rendering/flex.dart b/sky/sdk/lib/rendering/flex.dart | 
| index e883e51612b6cd1eb8177098dd9e213c9edde22f..4eee1bd854f656ec197e50fd8fe62c4d044d35af 100644 | 
| --- a/sky/sdk/lib/rendering/flex.dart | 
| +++ b/sky/sdk/lib/rendering/flex.dart | 
| @@ -110,6 +110,7 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | 
| } else { | 
| inflexibleSpace += childSize(child, childConstraints); | 
| } | 
| +        assert(child.parentData is FlexBoxParentData); | 
| child = child.parentData.nextSibling; | 
| } | 
| double mainSize = maxFlexFractionSoFar * totalFlex + inflexibleSpace; | 
| @@ -172,6 +173,7 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | 
| inflexibleSpace += mainSize; | 
| maxCrossSize = math.max(maxCrossSize, crossSize); | 
| } | 
| +        assert(child.parentData is FlexBoxParentData); | 
| child = child.parentData.nextSibling; | 
| } | 
|  | 
| @@ -199,6 +201,7 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | 
| } | 
| maxCrossSize = math.max(maxCrossSize, crossSize); | 
| } | 
| +        assert(child.parentData is FlexBoxParentData); | 
| child = child.parentData.nextSibling; | 
| } | 
|  | 
| @@ -243,6 +246,13 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | 
| childSize: (c, innerConstraints) => c.getMaxIntrinsicHeight(innerConstraints)); | 
| } | 
|  | 
| +  double getDistanceToActualBaseline(TextBaseline baseline) { | 
| +    assert(!needsLayout); | 
| +    if (_direction == FlexDirection.horizontal) | 
| +      return defaultGetDistanceToHighestActualBaseline(baseline); | 
| +    return defaultGetDistanceToFirstActualBaseline(baseline); | 
| +  } | 
| + | 
| int _getFlex(RenderBox child) { | 
| assert(child.parentData is FlexBoxParentData); | 
| return child.parentData.flex != null ? child.parentData.flex : 0; | 
| @@ -267,6 +277,7 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | 
| double freeSpace = mainSize; | 
| RenderBox child = firstChild; | 
| while (child != null) { | 
| +      assert(child.parentData is FlexBoxParentData); | 
| totalChildren++; | 
| int flex = _getFlex(child); | 
| if (flex > 0) { | 
| @@ -306,6 +317,7 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | 
| usedSpace += _getMainSize(child); | 
| crossSize = math.max(crossSize, _getCrossSize(child)); | 
| } | 
| +      assert(child.parentData is FlexBoxParentData); | 
| child = child.parentData.nextSibling; | 
| } | 
|  | 
| @@ -352,6 +364,7 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl | 
| double childMainPosition = leadingSpace; | 
| child = firstChild; | 
| while (child != null) { | 
| +      assert(child.parentData is FlexBoxParentData); | 
| double childCrossPosition; | 
| switch (_alignItems) { | 
| case FlexAlignItems.flexStart: | 
|  |