public HashSet <TypeRef> AddSelfAndReferencedTypeRefs(HashSet <TypeRef> existingList) { Name?.AddSelfAndReferencedTypeRefs(existingList); Base?.AddSelfAndReferencedTypeRefs(existingList); foreach (var currentInterface in ImplementedInterfaces.EmptyIfNull()) { currentInterface?.AddSelfAndReferencedTypeRefs(existingList); } foreach (var currentMember in Members.EmptyIfNull()) { if (currentMember != null) { currentMember.Type?.AddSelfAndReferencedTypeRefs(existingList); } } foreach (var currentKnownType in SerializationDetails?.KnownTypeItems.EmptyIfNull()) { if (currentKnownType != null) { currentKnownType.Type?.AddSelfAndReferencedTypeRefs(existingList); } } foreach (var currentProtoInclude in SerializationDetails?.ProtoIncludeItems.EmptyIfNull()) { if (currentProtoInclude != null) { currentProtoInclude.KnownType?.AddSelfAndReferencedTypeRefs(existingList); } } return(existingList); }