diff options
author | Erick Velez <erickvelez7@gmail.com> | 2023-08-18 13:48:12 -0700 |
---|---|---|
committer | Erick Velez <erickvelez7@gmail.com> | 2023-08-18 13:57:02 -0700 |
commit | 8d8c8981cac0e548f0fca1268d6e501431564f66 (patch) | |
tree | d9f1af0e8bae2c0c09bf2eefd640a63dcd21d047 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | 8842d7eb8b5291009559b9859319cca7714d436d (diff) | |
download | llvm-8d8c8981cac0e548f0fca1268d6e501431564f66.zip llvm-8d8c8981cac0e548f0fca1268d6e501431564f66.tar.gz llvm-8d8c8981cac0e548f0fca1268d6e501431564f66.tar.bz2 |
[clang][ExtractAPI] Add support for C++ variable templates
Serialize global C++ variable templates and specializations.
Depends on D157076
Reviewed By: dang
Differential Revision: https://reviews.llvm.org/D157350
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp index 6c7a037..ae8b1a6 100644 --- a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp +++ b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp @@ -361,6 +361,18 @@ Object serializeSymbolKind(APIRecord::RecordKind RK, Language Lang) { Kind["identifier"] = AddLangPrefix("func"); Kind["displayName"] = "Function"; break; + case APIRecord::RK_GlobalVariableTemplate: + Kind["identifier"] = AddLangPrefix("var"); + Kind["displayName"] = "Global Variable Template"; + break; + case APIRecord::RK_GlobalVariableTemplateSpecialization: + Kind["identifier"] = AddLangPrefix("var"); + Kind["displayName"] = "Global Variable Template Specialization"; + break; + case APIRecord::RK_GlobalVariableTemplatePartialSpecialization: + Kind["identifier"] = AddLangPrefix("var"); + Kind["displayName"] = "Global Variable Template Partial Specialization"; + break; case APIRecord::RK_GlobalVariable: Kind["identifier"] = AddLangPrefix("var"); Kind["displayName"] = "Global Variable"; @@ -910,6 +922,31 @@ void SymbolGraphSerializer::visitConceptRecord(const ConceptRecord &Record) { Symbols.emplace_back(std::move(*Concept)); } +void SymbolGraphSerializer::visitGlobalVariableTemplateRecord( + const GlobalVariableTemplateRecord &Record) { + auto GlobalVariableTemplate = serializeAPIRecord(Record); + if (!GlobalVariableTemplate) + return; + Symbols.emplace_back(std::move(*GlobalVariableTemplate)); +} + +void SymbolGraphSerializer::visitGlobalVariableTemplateSpecializationRecord( + const GlobalVariableTemplateSpecializationRecord &Record) { + auto GlobalVariableTemplateSpecialization = serializeAPIRecord(Record); + if (!GlobalVariableTemplateSpecialization) + return; + Symbols.emplace_back(std::move(*GlobalVariableTemplateSpecialization)); +} + +void SymbolGraphSerializer:: + visitGlobalVariableTemplatePartialSpecializationRecord( + const GlobalVariableTemplatePartialSpecializationRecord &Record) { + auto GlobalVariableTemplatePartialSpecialization = serializeAPIRecord(Record); + if (!GlobalVariableTemplatePartialSpecialization) + return; + Symbols.emplace_back(std::move(*GlobalVariableTemplatePartialSpecialization)); +} + void SymbolGraphSerializer::visitObjCContainerRecord( const ObjCContainerRecord &Record) { auto ObjCContainer = serializeAPIRecord(Record); |