Revert "[clangd][NFC] Simplify handing on methods with no params"

This broke the build http://lab.llvm.org:8011/#/builders/7/builds/1405

This reverts commit f05b492aae.

Differential Revision: https://reviews.llvm.org/D95385
This commit is contained in:
Keith Smiley 2021-01-25 11:54:46 -08:00
parent 9946b169c3
commit 9d9ceb3745
3 changed files with 11 additions and 29 deletions

View File

@ -258,15 +258,6 @@ public:
};
}
template <typename Result>
void bind(const char *Method,
void (ClangdLSPServer::*Handler)(Callback<Result>)) {
Calls[Method] = [Handler, this](llvm::json::Value RawParams,
ReplyOnce Reply) {
(Server.*Handler)(std::move(Reply));
};
}
// Bind a reply callback to a request. The callback will be invoked when
// clangd receives the reply from the LSP client.
// Return a call id of the request.
@ -310,20 +301,6 @@ public:
};
}
void bind(const char *Method, void (ClangdLSPServer::*Handler)()) {
Notifications[Method] = [Handler, this](llvm::json::Value RawParams) {
(Server.*Handler)();
};
}
template <>
void bind<NoParams>(const char *Method,
void (ClangdLSPServer::*Handler)(const NoParams &)) {
Notifications[Method] = [Handler, this](llvm::json::Value RawParams) {
(Server.*Handler)(NoParams{});
};
}
private:
// Function object to reply to an LSP call.
// Each instance must be called exactly once, otherwise:
@ -670,7 +647,8 @@ void ClangdLSPServer::onInitialize(const InitializeParams &Params,
void ClangdLSPServer::onInitialized(const InitializedParams &Params) {}
void ClangdLSPServer::onShutdown(Callback<std::nullptr_t> Reply) {
void ClangdLSPServer::onShutdown(const ShutdownParams &Params,
Callback<std::nullptr_t> Reply) {
// Do essentially nothing, just say we're ready to exit.
ShutdownRequestReceived = true;
Reply(nullptr);
@ -678,7 +656,8 @@ void ClangdLSPServer::onShutdown(Callback<std::nullptr_t> Reply) {
// sync is a clangd extension: it blocks until all background work completes.
// It blocks the calling thread, so no messages are processed until it returns!
void ClangdLSPServer::onSync(Callback<std::nullptr_t> Reply) {
void ClangdLSPServer::onSync(const NoParams &Params,
Callback<std::nullptr_t> Reply) {
if (Server->blockUntilIdleForTest(/*TimeoutSeconds=*/60))
Reply(nullptr);
else
@ -1466,7 +1445,8 @@ void ClangdLSPServer::onSemanticTokensDelta(
});
}
void ClangdLSPServer::onMemoryUsage(Callback<MemoryTree> Reply) {
void ClangdLSPServer::onMemoryUsage(const NoParams &,
Callback<MemoryTree> Reply) {
llvm::BumpPtrAllocator DetailAlloc;
MemoryTree MT(&DetailAlloc);
profile(MT);

View File

@ -93,8 +93,8 @@ private:
// Calls have signature void(const Params&, Callback<Response>).
void onInitialize(const InitializeParams &, Callback<llvm::json::Value>);
void onInitialized(const InitializedParams &);
void onShutdown(Callback<std::nullptr_t>);
void onSync(Callback<std::nullptr_t>);
void onShutdown(const ShutdownParams &, Callback<std::nullptr_t>);
void onSync(const NoParams &, Callback<std::nullptr_t>);
void onDocumentDidOpen(const DidOpenTextDocumentParams &);
void onDocumentDidChange(const DidChangeTextDocumentParams &);
void onDocumentDidClose(const DidCloseTextDocumentParams &);
@ -161,7 +161,7 @@ private:
Callback<SemanticTokensOrDelta>);
/// This is a clangd extension. Provides a json tree representing memory usage
/// hierarchy.
void onMemoryUsage(Callback<MemoryTree>);
void onMemoryUsage(const NoParams &, Callback<MemoryTree>);
std::vector<Fix> getFixes(StringRef File, const clangd::Diagnostic &D);

View File

@ -265,6 +265,8 @@ inline bool fromJSON(const llvm::json::Value &, NoParams &, llvm::json::Path) {
return true;
}
using InitializedParams = NoParams;
using ShutdownParams = NoParams;
using ExitParams = NoParams;
/// Defines how the host (editor) should sync document changes to the language
/// server.