We missed this because Flow wasn't being run properly on Travis but now that it is, it's clear that #7716 introduced a bunch of new Flow failures. Most of these shouldn't be too bad and I like to say "you break it you buy it" so this one is for you @Aweary :)

There were a couple other pre-existing Flow issues that @vjeux is going to fix, so mostly this should just be the TestRenderer issues.

* Removes a component by ref from an owner component.
   *
   * @param {ReactComponent} component Component to dereference.
   * @param {string} ref Name of the ref to remove.
   * @param {ReactOwner} owner Component on which the ref is recorded.
   * @final
   * @internal
   */
  removeComponentAsRefFrom: function(
    component: ReactInstance,
    ref: string,
    owner: ReactInstance,
  ): void {
    invariant(
      isValidOwner(owner),
      'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' +
      'be removing a ref to a component that was not created inside a component\'s ' +
      '`render` method, or you have multiple copies of React loaded ' +
      '(details: https://fb.me/react-refs-must-have-owner).'
    );
    var ownerPublicInstance = owner.getPublicInstance();
    
    
    if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {
      owner.detachRef(ref);
    }
  },
};
module.exports = ReactOwner;