Home | History | Annotate | Download | only in AST

Lines Matching refs:Protocols

1699 /// CollectInheritedProtocols - Collect all protocols in current class and
1702 llvm::SmallPtrSet<ObjCProtocolDecl*, 8> &Protocols) {
1709 Protocols.insert(Proto->getCanonicalDecl());
1712 Protocols.insert((*P)->getCanonicalDecl());
1713 CollectInheritedProtocols(*P, Protocols);
1722 CollectInheritedProtocols(*Cat, Protocols);
1727 CollectInheritedProtocols(SD, Protocols);
1734 Protocols.insert(Proto->getCanonicalDecl());
1737 CollectInheritedProtocols(*P, Protocols);
1743 Protocols.insert(Proto->getCanonicalDecl());
1746 CollectInheritedProtocols(*P, Protocols);
3275 /// CmpProtocolNames - Comparison predicate for sorting protocols
3282 static bool areSortedAndUniqued(ObjCProtocolDecl * const *Protocols,
3286 if (Protocols[0]->getCanonicalDecl() != Protocols[0])
3290 if (!CmpProtocolNames(Protocols[i-1], Protocols[i]) ||
3291 Protocols[i]->getCanonicalDecl() != Protocols[i])
3296 static void SortAndUniqueProtocols(ObjCProtocolDecl **Protocols,
3298 ObjCProtocolDecl **ProtocolsEnd = Protocols+NumProtocols;
3300 // Sort protocols, keyed by name.
3301 std::sort(Protocols, Protocols+NumProtocols, CmpProtocolNames);
3305 Protocols[I] = Protocols[I]->getCanonicalDecl();
3308 ProtocolsEnd = std::unique(Protocols, ProtocolsEnd);
3309 NumProtocols = ProtocolsEnd-Protocols;
3313 ObjCProtocolDecl * const *Protocols,
3315 // If the base type is an interface and there aren't any protocols
3322 ObjCObjectTypeImpl::Profile(ID, BaseType, Protocols, NumProtocols);
3328 // a sorted-and-uniqued list of protocols.
3330 bool ProtocolsSorted = areSortedAndUniqued(Protocols, NumProtocols);
3333 SmallVector<ObjCProtocolDecl*, 8> Sorted(Protocols,
3334 Protocols + NumProtocols);
3342 Protocols, NumProtocols);
3353 new (Mem) ObjCObjectTypeImpl(Canonical, BaseType, Protocols, NumProtocols);
3391 /// specified ObjC interface decl. The list of protocols is optional.
6206 /// return true if lhs's protocols conform to rhs's protocol; false
6264 // see if static class implements all of id's protocols, directly or
6280 // see if static class implements all of id's protocols, directly or
6297 // see if static class implements all of id's protocols, directly or
6324 // see if static class implements all of id's protocols, directly or
6326 // First, lhs protocols in the qualifier list must be found, direct
6341 // Static class's protocols, or its super class or category protocols
6441 /// of protocols inherited from two distinct objective-c pointer objects.
6503 SmallVector<ObjCProtocolDecl *, 8> Protocols;
6504 getIntersectionOfProtocols(*this, Lptr, Rptr, Protocols);
6507 if (!Protocols.empty())
6508 Result = getObjCObjectType(Result, Protocols.data(), Protocols.size());
6527 // RHS must have a superset of the protocols in the LHS. If the LHS is not
6542 // ; i.e., SuperClass may implement at least one of the protocols
6547 // If super class has no protocols, it is not a match.
6593 // The RHS implements all protocols listed on the LHS.