code: public boolean isStruct() {
      if (isObject()) {
        ObjectType objType = toObjectType();
        ObjectType iproto = objType.getImplicitPrototype();
        // For the case when a @struct constructor is assigned to a function's
        // prototype property
        if (iproto != null && iproto.isStruct()) {
          return true;
        }
        FunctionType ctor = objType.getConstructor();
        // This test is true for object literals
        if (ctor == null) {
          JSDocInfo info = objType.getJSDocInfo();
          return info != null && info.makesStructs();
        } else {
          return ctor.makesStructs();
        }
      }
      return false;
    }
docs: Returns true iff {@code this} can be a {@code struct}.
  UnionType overrides the method, assume {@code this} is not a union here.