anchor.diff:      assert(renderObject is RenderBox);
       return (renderObject as RenderBox).localToGlobal(point);
     }
  +}
  +
  +bool _canSync(Widget a, Widget b) {
  +  return a.runtimeType == b.runtimeType && a.key == b.key;
   }
   
   
  
positive.code:       if (_ancestor is RenderObjectWrapper)
          _ancestor.insertChildRenderObject(this, slot);
      } else {
        assert(old.runtimeType == runtimeType);
        _renderObject = old.renderObject;
        _ancestor = old._ancestor;
        assert(_renderObject != null);
  
negative.code:       walker(child);
    }
  
    void insertChildRenderObject(RenderObjectWrapper child, Widget slot) {
      final renderObject = this.renderObject; // TODO(ianh): Remove this once the analyzer is cleverer
      RenderObject nextSibling = slot != null ? slot.renderObject : null;
      assert(nextSibling == null || nextSibling is RenderObject);
      assert(renderObject is ContainerRenderObjectMixin);
      renderObject.add(child.renderObject, before: nextSibling);
      assert(renderObject == this.renderObject); // TODO(ianh): Remove this once the analyzer is cleverer
    }
  
  