anchor.diff:      assert(newWidget != null);
       assert(newWidget.key != null);
       final _Key key = new _Key.fromWidget(newWidget);
  -    Widget oldWidget = layoutState._childrenByKey[key];
  +    Widget oldWidget = _childrenByKey[key];
       newWidget = syncChild(newWidget, oldWidget, _omit);
       assert(newWidget != null);
       // Update the offsets based on the newWidget's dimensions.
  
positive.code:       return false;
      });
      return null;
    }
  
    void didMount() {
      renderObject.callback = layout;
      renderObject.totalExtentCallback = _noIntrinsicDimensions;
      renderObject.maxCrossAxisDimensionCallback = _noIntrinsicDimensions;
      renderObject.minCrossAxisDimensionCallback = _noIntrinsicDimensions;
      super.didMount();
    }
  
    void didUnmount() {
      renderObject.callback = null;
      renderObject.totalExtentCallback = null;
      renderObject.maxCrossAxisDimensionCallback = null;
      renderObject.minCrossAxisDimensionCallback = null;
      super.didUnmount();
    }
  
    int _findIndexForOffsetBeforeOrAt(double offset) {
  
negative.code:       return null;
      assert(widget.key != null); // items in lists must have keys
      final _Key key = new _Key.fromWidget(widget);
      Widget oldWidget = _childrenByKey[key];
      widget = syncChild(widget, oldWidget, _omit);
      if (index >= offsets.length - 1) {
        assert(index == offsets.length - 1);
  