Home | History | Annotate | Download | only in AST

Lines Matching defs:Protocols

1199 /// CollectInheritedProtocols - Collect all protocols in current class and
1202 llvm::SmallPtrSet<ObjCProtocolDecl*, 8> &Protocols) {
1209 Protocols.insert(Proto->getCanonicalDecl());
1212 Protocols.insert((*P)->getCanonicalDecl());
1213 CollectInheritedProtocols(*P, Protocols);
1220 CollectInheritedProtocols(CDeclChain, Protocols);
1223 CollectInheritedProtocols(SD, Protocols);
1230 Protocols.insert(Proto->getCanonicalDecl());
1233 CollectInheritedProtocols(*P, Protocols);
1239 Protocols.insert(Proto->getCanonicalDecl());
1242 CollectInheritedProtocols(*P, Protocols);
2745 /// CmpProtocolNames - Comparison predicate for sorting protocols
2752 static bool areSortedAndUniqued(ObjCProtocolDecl * const *Protocols,
2756 if (Protocols[0]->getCanonicalDecl() != Protocols[0])
2760 if (!CmpProtocolNames(Protocols[i-1], Protocols[i]) ||
2761 Protocols[i]->getCanonicalDecl() != Protocols[i])
2766 static void SortAndUniqueProtocols(ObjCProtocolDecl **Protocols,
2768 ObjCProtocolDecl **ProtocolsEnd = Protocols+NumProtocols;
2770 // Sort protocols, keyed by name.
2771 std::sort(Protocols, Protocols+NumProtocols, CmpProtocolNames);
2775 Protocols[I] = Protocols[I]->getCanonicalDecl();
2778 ProtocolsEnd = std::unique(Protocols, ProtocolsEnd);
2779 NumProtocols = ProtocolsEnd-Protocols;
2783 ObjCProtocolDecl * const *Protocols,
2785 // If the base type is an interface and there aren't any protocols
2792 ObjCObjectTypeImpl::Profile(ID, BaseType, Protocols, NumProtocols);
2798 // a sorted-and-uniqued list of protocols.
2800 bool ProtocolsSorted = areSortedAndUniqued(Protocols, NumProtocols);
2803 SmallVector<ObjCProtocolDecl*, 8> Sorted(Protocols,
2804 Protocols + NumProtocols);
2812 Protocols, NumProtocols);
2823 new (Mem) ObjCObjectTypeImpl(Canonical, BaseType, Protocols, NumProtocols);
2861 /// specified ObjC interface decl. The list of protocols is optional.
5210 protocols conform to rhs's protocol; false
5268 // see if static class implements all of id's protocols, directly or
5284 // see if static class implements all of id's protocols, directly or
5301 // see if static class implements all of id's protocols, directly or
5328 // see if static class implements all of id's protocols, directly or
5330 // First, lhs protocols in the qualifier list must be found, direct
5345 // Static class's protocols, or its super class or category protocols
5445 /// of protocols inherited from two distinct objective-c pointer objects.
5507 SmallVector<ObjCProtocolDecl *, 8> Protocols;
5508 getIntersectionOfProtocols(*this, Lptr, Rptr, Protocols);
5511 if (!Protocols.empty())
5512 Result = getObjCObjectType(Result, Protocols.data(), Protocols.size());
5531 // RHS must have a superset of the protocols in the LHS. If the LHS is not
5546 // ; i.e., SuperClass may implement at least one of the protocols
5551 // If super class has no protocols, it is not a match.
5597 // The RHS implements all protocols listed on the LHS.