don't emit both requirementOf and optionalRequirementOf for the same relationship (#76983)

rdar://83519993
This commit is contained in:
QuietMisdreavus
2024-10-18 16:48:39 -06:00
committed by GitHub
parent a0b5e930b5
commit 2f184f7bac
2 changed files with 4 additions and 3 deletions

View File

@@ -465,7 +465,8 @@ void
SymbolGraph::recordRequirementRelationships(Symbol S) {
const auto VD = S.getSymbolDecl();
if (const auto *Protocol = dyn_cast<ProtocolDecl>(VD->getDeclContext())) {
if (VD->isProtocolRequirement()) {
if (VD->isProtocolRequirement() &&
!VD->getAttrs().hasAttribute<OptionalAttr>()) {
recordEdge(Symbol(this, VD, nullptr),
Symbol(this, Protocol, nullptr),
RelationshipKind::RequirementOf());