@@ -196,7 +196,6 @@ void SymbolGraph::recordNode(Symbol S) {
196196 // with this declaration.
197197 recordMemberRelationship (S);
198198 recordConformanceSynthesizedMemberRelationships (S);
199- recordSuperclassSynthesizedMemberRelationships (S);
200199 recordConformanceRelationships (S);
201200 recordInheritanceRelationships (S);
202201 recordDefaultImplementationRelationships (S);
@@ -259,45 +258,6 @@ void SymbolGraph::recordMemberRelationship(Symbol S) {
259258 }
260259}
261260
262- void SymbolGraph::recordSuperclassSynthesizedMemberRelationships (Symbol S) {
263- if (!Walker.Options .EmitSynthesizedMembers ) {
264- return ;
265- }
266- // Via class inheritance...
267- if (const auto *C = dyn_cast<ClassDecl>(S.getSymbolDecl ())) {
268- // Collect all superclass members up the inheritance chain.
269- SmallPtrSet<const ValueDecl *, 32 > SuperClassMembers;
270- const auto *Super = C->getSuperclassDecl ();
271- while (Super) {
272- for (const auto *SuperMember : Super->getMembers ()) {
273- if (const auto *SuperMemberVD = dyn_cast<ValueDecl>(SuperMember)) {
274- SuperClassMembers.insert (SuperMemberVD);
275- }
276- }
277- Super = Super->getSuperclassDecl ();
278- }
279- // Remove any that are overridden by this class.
280- for (const auto *DerivedMember : C->getMembers ()) {
281- if (const auto *DerivedMemberVD = dyn_cast<ValueDecl>(DerivedMember)) {
282- if (const auto *Overridden = DerivedMemberVD->getOverriddenDecl ()) {
283- SuperClassMembers.erase (Overridden);
284- }
285- }
286- }
287- // What remains in SuperClassMembers are inherited members that
288- // haven't been overridden by the class.
289- // Add a synthesized relationship.
290- for (const auto *InheritedMember : SuperClassMembers) {
291- if (canIncludeDeclAsNode (InheritedMember)) {
292- Symbol Source (this , InheritedMember, C);
293- Symbol Target (this , C, nullptr );
294- Nodes.insert (Source);
295- recordEdge (Source, Target, RelationshipKind::MemberOf ());
296- }
297- }
298- }
299- }
300-
301261bool SymbolGraph::synthesizedMemberIsBestCandidate (const ValueDecl *VD,
302262 const NominalTypeDecl *Owner) const {
303263 const auto *FD = dyn_cast<FuncDecl>(VD);
0 commit comments