diff options
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp index 1acb67a..bfd2c20 100644 --- a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp +++ b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp @@ -397,6 +397,9 @@ Object serializeSymbolKind(const APIRecord &Record, Language Lang) { Kind["identifier"] = AddLangPrefix("protocol"); Kind["displayName"] = "Protocol"; break; + case APIRecord::RK_MacroDefinition: + Kind["identifier"] = AddLangPrefix("macro"); + Kind["displayName"] = "Macro"; } return Kind; @@ -576,6 +579,15 @@ void SymbolGraphSerializer::serializeObjCContainerRecord( ObjCInterface->SuperClass); } +void SymbolGraphSerializer::serializeMacroDefinitionRecord( + const MacroDefinitionRecord &Record) { + auto Macro = serializeAPIRecord(Record); + if (!Macro) + return; + + Symbols.emplace_back(std::move(*Macro)); +} + Object SymbolGraphSerializer::serialize() { Object Root; serializeObject(Root, "metadata", serializeMetadata()); @@ -601,6 +613,9 @@ Object SymbolGraphSerializer::serialize() { for (const auto &ObjCProtocol : API.getObjCProtocols()) serializeObjCContainerRecord(*ObjCProtocol.second); + for (const auto &Macro : API.getMacros()) + serializeMacroDefinitionRecord(*Macro.second); + Root["symbols"] = std::move(Symbols); Root["relationhips"] = std::move(Relationships); |