**Do you want to request a *feature* or report a *bug*?**
bug

**What is the current behavior?**
In normal rendering, you can memoize a class-based component: https://jsfiddle.net/586ea3cx/

With the shallow renderer, it seems like you can't: https://jsfiddle.net/odj217Lv/1/

This might be blocking https://github.com/airbnb/enzyme/pull/1914, in which tests are failing with `Cannot call a class as a function`. (it's tough to repro stuff with the shallow renderer)
Array.isArray(element.type)
        ? 'array'
        : element.type === null
          ? 'null'
          : typeof element.type,
    );
    if (this._rendering) {
      return;
    }
    this._rendering = true;
    this._element = element;
    this._context = getMaskedContext(element.type.contextTypes, context);
    if (this._instance) {
      this._updateClassComponent(element, this._context);
    } else {
      if (shouldConstruct(element.type)) {
        this._instance = new element.type(
          element.props,
          this._context,
          this._updater,
        );
        if (typeof element.type.getDerivedStateFromProps === 'function') {
          const partialState = element.type.getDerivedStateFromProps.call(
            null,
            element.props,
            this._instance.state,
          );
          if (partialState != null) {
            this._instance.state = Object.assign(
              {},