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. 

var True = true;
    var Num = 123;
    var Div = 'div';
    spyOn(console, 'error');
    void <Undefined />;
    void <Null />;
    void <True />;
    void <Num />;
    expectDev(console.error.calls.count()).toBe(4);
    expectDev(console.error.calls.argsFor(0)[0]).toBe(
      'Warning: React.createElement: type is invalid -- expected a string ' +
      '(for built-in components) or a class/function (for composite ' +
      'components) but got: undefined. You likely forgot to export your ' +
      'component from the file it\'s defined in.'
    );
    expectDev(console.error.calls.argsFor(1)[0]).toBe(
      'Warning: React.createElement: type is invalid -- expected a string ' +
      '(for built-in components) or a class/function (for composite ' +
      'components) but got: null.'
    );
    expectDev(console.error.calls.argsFor(2)[0]).toBe(
      'Warning: React.createElement: type is invalid -- expected a string ' +
      '(for built-in components) or a class/function (for composite ' +
      'components) but got: boolean.'
    );
    expectDev(console.error.calls.argsFor(3)[0]).toBe(
      'Warning: React.createElement: type is invalid -- expected a string ' +
      '(for built-in components) or a class/function (for composite ' +
      'components) but got: number.'
    );