diff options
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp index 6782483..e1b5f65 100644 --- a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp +++ b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp @@ -885,9 +885,6 @@ void SymbolGraphSerializer::visitCXXClassRecord(const CXXClassRecord &Record) { return; Symbols.emplace_back(std::move(*Class)); - serializeMembers(Record, Record.Fields); - serializeMembers(Record, Record.Methods); - for (const auto Base : Record.Bases) serializeRelationship(RelationshipKind::InheritsFrom, Record, Base); } @@ -899,9 +896,6 @@ void SymbolGraphSerializer::visitClassTemplateRecord( return; Symbols.emplace_back(std::move(*Class)); - serializeMembers(Record, Record.Fields); - serializeMembers(Record, Record.Methods); - for (const auto Base : Record.Bases) serializeRelationship(RelationshipKind::InheritsFrom, Record, Base); } @@ -913,8 +907,6 @@ void SymbolGraphSerializer::visitClassTemplateSpecializationRecord( return; Symbols.emplace_back(std::move(*Class)); - serializeMembers(Record, Record.Fields); - serializeMembers(Record, Record.Methods); for (const auto Base : Record.Bases) serializeRelationship(RelationshipKind::InheritsFrom, Record, Base); @@ -927,13 +919,33 @@ void SymbolGraphSerializer::visitClassTemplatePartialSpecializationRecord( return; Symbols.emplace_back(std::move(*Class)); - serializeMembers(Record, Record.Fields); - serializeMembers(Record, Record.Methods); for (const auto Base : Record.Bases) serializeRelationship(RelationshipKind::InheritsFrom, Record, Base); } +void SymbolGraphSerializer::visitCXXInstanceMethodRecord( + const CXXInstanceMethodRecord &Record) { + auto InstanceMethod = serializeAPIRecord(Record); + if (!InstanceMethod) + return; + + Symbols.emplace_back(std::move(*InstanceMethod)); + serializeRelationship(RelationshipKind::MemberOf, Record, + Record.ParentInformation.ParentRecord); +} + +void SymbolGraphSerializer::visitCXXStaticMethodRecord( + const CXXStaticMethodRecord &Record) { + auto StaticMethod = serializeAPIRecord(Record); + if (!StaticMethod) + return; + + Symbols.emplace_back(std::move(*StaticMethod)); + serializeRelationship(RelationshipKind::MemberOf, Record, + Record.ParentInformation.ParentRecord); +} + void SymbolGraphSerializer::visitMethodTemplateRecord( const CXXMethodTemplateRecord &Record) { if (!ShouldRecurse) @@ -960,6 +972,17 @@ void SymbolGraphSerializer::visitMethodTemplateSpecializationRecord( Record.ParentInformation.ParentRecord); } +void SymbolGraphSerializer::visitCXXFieldRecord(const CXXFieldRecord &Record) { + if (!ShouldRecurse) + return; + auto CXXField = serializeAPIRecord(Record); + if (!CXXField) + return; + Symbols.emplace_back(std::move(*CXXField)); + serializeRelationship(RelationshipKind::MemberOf, Record, + Record.ParentInformation.ParentRecord); +} + void SymbolGraphSerializer::visitCXXFieldTemplateRecord( const CXXFieldTemplateRecord &Record) { if (!ShouldRecurse) |