https://github.com/tdupes updated
https://github.com/llvm/llvm-project/pull/71605
>From 66fe31636d68c7200515a5d3a9e60d20334b60dd Mon Sep 17 00:00:00 2001
From: dup
Date: Fri, 3 Nov 2023 09:03:24 -0700
Subject: [PATCH] Add container field to remote index Refs grpc method
---
clang-tools-extra/clangd/index/YAMLSerialization.cpp | 1 +
clang-tools-extra/clangd/index/remote/Index.proto | 1 +
.../clangd/index/remote/marshalling/Marshalling.cpp | 4
.../clangd/unittests/remote/MarshallingTests.cpp | 1 +
4 files changed, 7 insertions(+)
diff --git a/clang-tools-extra/clangd/index/YAMLSerialization.cpp
b/clang-tools-extra/clangd/index/YAMLSerialization.cpp
index 214a847b5eddb..495d8a2ff487a 100644
--- a/clang-tools-extra/clangd/index/YAMLSerialization.cpp
+++ b/clang-tools-extra/clangd/index/YAMLSerialization.cpp
@@ -319,6 +319,7 @@ template <> struct MappingTraits {
MappingNormalization NKind(IO, R.Kind);
IO.mapRequired("Kind", NKind->Kind);
IO.mapRequired("Location", R.Location);
+IO.mapOptional("Container", R.Container);
}
};
diff --git a/clang-tools-extra/clangd/index/remote/Index.proto
b/clang-tools-extra/clangd/index/remote/Index.proto
index 3e39724e32086..d274f6458164a 100644
--- a/clang-tools-extra/clangd/index/remote/Index.proto
+++ b/clang-tools-extra/clangd/index/remote/Index.proto
@@ -81,6 +81,7 @@ message Symbol {
message Ref {
optional SymbolLocation location = 1;
optional uint32 kind = 2;
+ optional string container = 3;
}
message SymbolInfo {
diff --git a/clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp
b/clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp
index d8d3b64a5ac18..aa607926a6d51 100644
--- a/clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp
+++ b/clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp
@@ -203,6 +203,9 @@ llvm::Expected Marshaller::fromProtobuf(const
Ref &Message) {
return Location.takeError();
Result.Location = *Location;
Result.Kind = static_cast(Message.kind());
+ auto ContainerID = SymbolID::fromStr(Message.container());
+ if (ContainerID)
+Result.Container = *ContainerID;
return Result;
}
@@ -340,6 +343,7 @@ llvm::Expected Marshaller::toProtobuf(const
clangd::Ref &From) {
if (!Location)
return Location.takeError();
*Result.mutable_location() = *Location;
+ Result.set_container(From.Container.str());
return Result;
}
diff --git a/clang-tools-extra/clangd/unittests/remote/MarshallingTests.cpp
b/clang-tools-extra/clangd/unittests/remote/MarshallingTests.cpp
index a2b31698a059a..85e79eae331bc 100644
--- a/clang-tools-extra/clangd/unittests/remote/MarshallingTests.cpp
+++ b/clang-tools-extra/clangd/unittests/remote/MarshallingTests.cpp
@@ -223,6 +223,7 @@ TEST(RemoteMarshallingTest, RefSerialization) {
Location.FileURI = testPathURI(
"llvm-project/llvm/clang-tools-extra/clangd/Protocol.h", Strings);
Ref.Location = Location;
+ Ref.Container = llvm::cantFail(SymbolID::fromStr("0001"));
Marshaller ProtobufMarshaller(testPath("llvm-project/"),
testPath("llvm-project/"));
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits