static void lookupVisibleProtocolMemberDecls( Type BaseTy, ProtocolType *PT, VisibleDeclConsumer &Consumer, const DeclContext *CurrDC, LookupState LS, DeclVisibilityKind Reason, LazyResolver *TypeResolver, GenericSignatureBuilder *GSB, VisitedSet &Visited) { if (!Visited.insert(PT->getDecl()).second) return; for (auto Proto : PT->getDecl()->getInheritedProtocols()) lookupVisibleProtocolMemberDecls(BaseTy, Proto->getDeclaredType(), Consumer, CurrDC, LS, getReasonForSuper(Reason), TypeResolver, GSB, Visited); lookupTypeMembers(BaseTy, PT, Consumer, CurrDC, LS, Reason, TypeResolver); }
static void lookupVisibleProtocolMemberDecls( Type BaseTy, ProtocolType *PT, VisibleDeclConsumer &Consumer, const DeclContext *CurrDC, LookupState LS, DeclVisibilityKind Reason, LazyResolver *TypeResolver, VisitedSet &Visited) { if (PT->getDecl()->isSpecificProtocol(KnownProtocolKind::AnyObject)) { // Handle AnyObject in a special way. doDynamicLookup(Consumer, CurrDC, LS, TypeResolver); return; } if (!Visited.insert(PT->getDecl()).second) return; for (auto Proto : PT->getDecl()->getInheritedProtocols(nullptr)) lookupVisibleProtocolMemberDecls(BaseTy, Proto->getDeclaredType(), Consumer, CurrDC, LS, getReasonForSuper(Reason), TypeResolver, Visited); lookupTypeMembers(BaseTy, PT, Consumer, CurrDC, LS, Reason, TypeResolver); }