When you do `<Foo />` but Foo is not a valid string or function, we show an error message:

https://github.com/facebook/react/blob/92c84a6f37245f4fbe3ce5dc50845856201637fa/src/isomorphic/classic/element/ReactElementValidator.js#L196

We include the owner name ("Please check the render method of Bar.") but not the full parent stack which we show for some of our other warnings like key warnings and prop types. We should call into ReactComponentTreeHook to get the full stack if possible. 

return <MyComp color={props.color} />;
    }
    function ParentComp(props) {
      if (props.warn) {
        
        return <MiddleComp color={42} />;
      }
      
      return React.createElement(MiddleComp, {color: 'blue'});
    }
    var container = document.createElement('div');
    ReactDOM.render(<ParentComp warn={false} />, container);
    ReactDOM.render(<ParentComp warn={true} />, container);
    expect(console.error.calls.count()).toBe(1);
    
    
    expect(
      console.error.calls.argsFor(0)[0].replace(/\(at .+?:\d+\)/g, '(at **)')
    ).toBe(
      'Warning: Failed prop type: ' +
      'Invalid prop `color` of type `number` supplied to `MyComp`, ' +
      'expected `string`.\n' +
      '    in MyComp (at **)\n' +
      '    in MiddleComp (at **)\n' +
      '    in ParentComp (at **)'
    );
  });
  it('gives a helpful error when passing null, undefined, or boolean', () => {
    var Undefined = undefined;
    var Null = null;