anchor.diff:    ///
     /// This method (indirectly) calls [deactivate] on the child.
     ///
  -  /// The caller is responsible from removing the child from its child model.
  +  /// The caller is responsible for 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.
  +  /// parent proactively calls the old parent's [deactivateChild], first using
  +  /// [forgetChild] to cause the old parent to update its child model.
     @protected
     void deactivateChild(Element child) {
       assert(child != null);
  
positive.code:   /// This updates the child model such that, e.g., [visitChildren] does not
    /// walk that child anymore.
    ///
    /// The element must have already been deactivated (via [deactivateChild])
    /// when this is called, meaning that it and its render object should both be
    /// orphans (their respective parents should be null).
    @protected
    void forgetChild(Element child);
  
  
negative.code:     });
      final Element parent = element._parent;
      if (parent != null) {
        parent.forgetChild(element);
        parent.deactivateChild(element);
      }
      assert(element._parent == null);
      owner._inactiveElements.remove(element);
  