SymbolGraph: Use getAllInheritedProtocols()

This commit is contained in:
Slava Pestov
2024-02-23 10:05:54 -05:00
parent 16f97c5ef8
commit a34ec192af

View File

@@ -492,14 +492,10 @@ void SymbolGraph::recordConformanceRelationships(Symbol S) {
const auto D = S.getLocalSymbolDecl();
if (const auto *NTD = dyn_cast<NominalTypeDecl>(D)) {
if (auto *PD = dyn_cast<ProtocolDecl>(NTD)) {
PD->walkInheritedProtocols([&](ProtocolDecl *inherited) {
if (inherited != PD) {
recordEdge(S, Symbol(this, inherited, nullptr),
RelationshipKind::ConformsTo(), nullptr);
}
return TypeWalker::Action::Continue;
});
for (auto *inherited : PD->getAllInheritedProtocols()) {
recordEdge(S, Symbol(this, inherited, nullptr),
RelationshipKind::ConformsTo(), nullptr);
}
} else {
for (const auto *Conformance : NTD->getAllConformances()) {
// Check to make sure that this conformance wasn't declared via an