diff --git a/src/language_server_api.cc b/src/language_server_api.cc index 6a6914ec..1398ff62 100644 --- a/src/language_server_api.cc +++ b/src/language_server_api.cc @@ -8,24 +8,26 @@ #include void Reflect(Reader& visitor, std::variant& version) { - if (visitor.IsNull()) + if (visitor.IsNull()) { + visitor.GetNull(); version = std::monostate(); - else + } else version = visitor.GetInt(); } void Reflect(Reader& visitor, lsRequestId& id) { - if (visitor.IsInt()) { - int v; - Reflect(visitor, v); - id = v; - } - else if (visitor.IsString()) { + if (visitor.IsNull()) { + visitor.GetNull(); + id = std::monostate(); + } else if (visitor.IsString()) { std::string v; Reflect(visitor, v); id = v; - } else - LOG_S(WARNING) << "Unable to deserialize id"; + } else { + int64_t v; + Reflect(visitor, v); + id = v; + } } MessageRegistry* MessageRegistry::instance_ = nullptr; diff --git a/src/language_server_api.h b/src/language_server_api.h index 36039d3b..e1563969 100644 --- a/src/language_server_api.h +++ b/src/language_server_api.h @@ -23,7 +23,7 @@ ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -using lsRequestId = std::variant; +using lsRequestId = std::variant; void Reflect(Reader& visitor, lsRequestId& id); /////////////////////////////////////////////////////////////////////////////