code: public boolean recordThisType(JSTypeExpression type) {
      if (type != null && !hasAnySingletonTypeTags() &&
          !currentInfo.hasThisType()) {
        currentInfo.setThisType(type);
        populated = true;
        return true;
      } else {
        return false;
      }
    }
docs: Records a type for {@code @this} annotation.
  
  @return {@code true} if the type was recorded and
  {@code false} if it is invalid or if it collided with {@code @enum} or
  {@code @type} annotations