anchor.diff:  }
   
   /// An element that uses a [RenderObjectWidget] as its configuration.
  +///
  +/// [RenderObjectElement] objects have an associated [RenderObject] widget in
  +/// the render tree, which handles concrete operations like laying out,
  +/// painting, and hit testing.
  +///
  +/// Contrast with [ComponentElement].
   abstract class RenderObjectElement extends BuildableElement {
     /// Creates an element that uses the given widget as its configuration.
     RenderObjectElement(RenderObjectWidget widget) : super(widget);
  
positive.code: ///
  /// Rather than creating a [RenderObject] directly, a [ComponentElement] creates
  /// [RenderObject]s indirectly by creating other [Element]s.
  abstract class ComponentElement extends BuildableElement {
    /// Creates an element that uses the given widget as its configuration.
    ComponentElement(Widget widget) : super(widget);
  
negative.code:   /// Only one [buildScope] can be active at a time.
    ///
    /// A [buildScope] implies a [lockState] scope as well.
    void buildScope(BuildableElement context, [VoidCallback callback]) {
      if (callback == null && _dirtyElements.isEmpty)
        return;
      assert(context != null);
  