diff --git a/src/libs/languageserverprotocol/jsonrpcmessages.h b/src/libs/languageserverprotocol/jsonrpcmessages.h index ba20fdf3bec..d4405b87678 100644 --- a/src/libs/languageserverprotocol/jsonrpcmessages.h +++ b/src/libs/languageserverprotocol/jsonrpcmessages.h @@ -196,7 +196,7 @@ public: #undef CASE_ERRORCODES }; -template +template class Response : public JsonRpcMessage { public: @@ -217,13 +217,14 @@ public: void setResult(const Result &result) { m_jsonObject.insert(resultKey, result); } void clearResult() { m_jsonObject.remove(resultKey); } - Utils::optional> error() const + using Error = ResponseError; + Utils::optional error() const { const QJsonValue &val = m_jsonObject.value(errorKey); return val.isUndefined() ? Utils::nullopt - : Utils::make_optional(fromJsonValue>(val)); + : Utils::make_optional(fromJsonValue(val)); } - void setError(const ResponseError &error) + void setError(const Error &error) { m_jsonObject.insert(errorKey, QJsonValue(error)); } void clearError() { m_jsonObject.remove(errorKey); } @@ -231,7 +232,7 @@ public: { return JsonRpcMessage::isValid(errorMessage) && id().isValid(); } }; -template +template class Request : public Notification { public: @@ -247,7 +248,7 @@ public: void setId(const MessageId &id) { JsonRpcMessage::m_jsonObject.insert(idKey, id.toJson()); } - using Response = LanguageServerProtocol::Response; + using Response = LanguageServerProtocol::Response; using ResponseCallback = std::function; void setResponseCallback(const ResponseCallback &callback) { m_callBack = callback; } @@ -263,9 +264,9 @@ public: JsonRpcMessageHandler::toJsonObject(content, codec, parseError); Response response(object); if (object.isEmpty()) { - ResponseError error; + ResponseError error; error.setMessage(parseError); - response.setError(ResponseError()); + response.setError(error); } callback(Response(object)); });