diff --git a/clang-tools-extra/clangd/Protocol.cpp b/clang-tools-extra/clangd/Protocol.cpp --- a/clang-tools-extra/clangd/Protocol.cpp +++ b/clang-tools-extra/clangd/Protocol.cpp @@ -560,11 +560,13 @@ } llvm::json::Value toJSON(const PublishDiagnosticsParams &PDP) { - return llvm::json::Object{ + llvm::json::Object Result{ {"uri", PDP.uri}, {"diagnostics", PDP.diagnostics}, - {"version", PDP.version}, }; + if (PDP.version) + Result["version"] = PDP.version; + return std::move(Result); } bool fromJSON(const llvm::json::Value &Params, CodeActionContext &R) { diff --git a/clang-tools-extra/clangd/test/diagnostics-no-tidy.test b/clang-tools-extra/clangd/test/diagnostics-no-tidy.test --- a/clang-tools-extra/clangd/test/diagnostics-no-tidy.test +++ b/clang-tools-extra/clangd/test/diagnostics-no-tidy.test @@ -32,8 +32,7 @@ # CHECK: "method": "textDocument/publishDiagnostics", # CHECK-NEXT: "params": { # CHECK-NEXT: "diagnostics": [], -# CHECK-NEXT: "uri": "file://{{.*}}/foo.c", -# CHECK-NEXT: "version": null +# CHECK-NEXT: "uri": "file://{{.*}}/foo.c" # CHECK-NEXT: } --- {"jsonrpc":"2.0","id":5,"method":"shutdown"} diff --git a/clang-tools-extra/clangd/test/diagnostics.test b/clang-tools-extra/clangd/test/diagnostics.test --- a/clang-tools-extra/clangd/test/diagnostics.test +++ b/clang-tools-extra/clangd/test/diagnostics.test @@ -48,8 +48,7 @@ # CHECK: "method": "textDocument/publishDiagnostics", # CHECK-NEXT: "params": { # CHECK-NEXT: "diagnostics": [], -# CHECK-NEXT: "uri": "file://{{.*}}/foo.c", -# CHECK-NEXT: "version": null +# CHECK-NEXT: "uri": "file://{{.*}}/foo.c" # CHECK-NEXT: } --- {"jsonrpc":"2.0","id":5,"method":"shutdown"}