anchor.diff:      });
       final Element parent = element._parent;
       if (parent != null) {
  +      parent.forgetChild(element);
         parent.deactivateChild(element);
  -      parent.forgetChild(element);
       }
       assert(element._parent == null);
       owner._inactiveElements.remove(element);
  
positive.code:   ///
    /// This method (indirectly) calls [deactivate] on the child.
    ///
    /// The caller is responsible from removing the child from its child model.
    /// Typically [deactivateChild] is called by the element itself while it is
    /// updating its child model; however, during [GlobalKey] reparenting, the new
    /// parent proactively calls [deactivateChild] and then uses [forgetChild] to
    /// update this object's child model.
    @protected
    void deactivateChild(Element child) {
      assert(child != null);
  
negative.code:   /// This updates the child model such that, e.g., [visitChildren] does not
    /// walk that child anymore.
    ///
    /// The element will still have a valid parent when this is called. After this
    /// is called, [deactivateChild] is called to sever the link to this object.
    @protected
    void forgetChild(Element child);
  
  