anchor.diff:      redepthChild(child);
     }
   
  +  /// Disconnect the given node from this node.
  +  ///
     /// Subclasses should call this function when they lose a child.
     @protected
     @mustCallSuper
  
positive.code:     _owner = null;
    }
  
    AbstractNode _parent;
    /// The parent of this node in the tree.
    AbstractNode get parent => _parent;
  
    /// Subclasses should call this function when they acquire a new child.
    @protected
    @mustCallSuper
  
negative.code:     }
    }
  
    /// Adjust the [depth] of this node's children, if any.
    ///
    /// Override this method in subclasses with child nodes to call [redepthChild]
    /// for each child. Do not call this method directly.
    void redepthChildren() { }
  
    /// The owner for this node (null if unattached).
    ///
    /// The entire subtree that this node belongs to will have the same owner.
    Object get owner => _owner;
    Object _owner;
  
    /// Whether this node is in a tree whose root is attached to something.
    bool get attached => _owner != null;
  
    /// Mark this node as attached to the given owner.
    ///
    /// Typically called only from the [parent]'s [attach] method, and by the
    /// [owner] to mark the root of a tree as attached.
    ///
    /// Subclasses with children should [attach] all their children to the same
    /// [owner] whenever this method is called.
    @mustCallSuper
    void attach(@checked Object owner) {
  