diff options
author | Daniel Grumberg <dgrumberg@apple.com> | 2024-05-20 08:59:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-20 08:59:02 +0100 |
commit | 50b2bd4a25bb3a7a0790cb59e1240099efd7092e (patch) | |
tree | 9eb7034284dfdf3254e51ea3acc68dc5b737c61d /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | da6a0b7af29a222b2e16a10155b49d4fafe967f3 (diff) | |
download | llvm-50b2bd4a25bb3a7a0790cb59e1240099efd7092e.zip llvm-50b2bd4a25bb3a7a0790cb59e1240099efd7092e.tar.gz llvm-50b2bd4a25bb3a7a0790cb59e1240099efd7092e.tar.bz2 |
[clang][ExtractAPI] Remove symbols defined in categories to external types unless requested (#92522)
rdar://128259890
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp index c16d462..08e711ca 100644 --- a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp +++ b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp @@ -925,6 +925,10 @@ bool SymbolGraphSerializer::visitObjCInterfaceRecord( bool SymbolGraphSerializer::traverseObjCCategoryRecord( const ObjCCategoryRecord *Record) { + if (SkipSymbolsInCategoriesToExternalTypes && + !API.findRecordForUSR(Record->Interface.USR)) + return true; + auto *CurrentModule = ModuleForCurrentSymbol; if (Record->isExtendingExternalModule()) ModuleForCurrentSymbol = &ExtendedModules[Record->Interface.Source]; @@ -1040,8 +1044,11 @@ void SymbolGraphSerializer::serializeGraphToStream( void SymbolGraphSerializer::serializeMainSymbolGraph( raw_ostream &OS, const APISet &API, const APIIgnoresList &IgnoresList, SymbolGraphSerializerOption Options) { - SymbolGraphSerializer Serializer(API, IgnoresList, - Options.EmitSymbolLabelsForTesting); + SymbolGraphSerializer Serializer( + API, IgnoresList, Options.EmitSymbolLabelsForTesting, + /*ForceEmitToMainModule=*/true, + /*SkipSymbolsInCategoriesToExternalTypes=*/true); + Serializer.traverseAPISet(); Serializer.serializeGraphToStream(OS, Options, API.ProductName, std::move(Serializer.MainModule)); |