Lines Matching defs:protocols
2630 /// CollectInheritedProtocols - Collect all protocols in current class and
2651 for (auto *Proto : OC->protocols()) {
2660 for (auto *Proto : OP->protocols())
5656 /// CmpProtocolNames - Comparison predicate for sorting protocols
5678 // Sort protocols, keyed by name.
5701 ArrayRef<ObjCProtocolDecl *> protocols,
5703 // If the base type is an interface and there aren't any protocols or
5705 if (typeArgs.empty() && protocols.empty() && !isKindOf &&
5711 ObjCObjectTypeImpl::Profile(ID, baseType, typeArgs, protocols, isKindOf);
5726 // sorted-and-uniqued list of protocols and the type arguments
5731 bool protocolsSorted = areSortedAndUniqued(protocols);
5748 canonProtocolsVec.append(protocols.begin(), protocols.end());
5752 canonProtocols = protocols;
5764 size += protocols.size() * sizeof(ObjCProtocolDecl *);
5767 new (mem) ObjCObjectTypeImpl(canonical, baseType, typeArgs, protocols,
5780 ArrayRef<ObjCProtocolDecl *> protocols, bool &hasError,
5785 return getObjCTypeParamType(objT->getDecl(), protocols);
5797 protocolsVec.append(protocols.begin(), protocols.end());
5798 ArrayRef<ObjCProtocolDecl *> protocols = protocolsVec;
5802 protocols,
5810 // FIXME: Check for protocols to which the class type is already
5815 protocols,
5824 // FIXME: Check for protocols to which the class type is already
5826 return getObjCObjectType(type, {}, protocols, false);
5832 type = getObjCObjectType(ObjCBuiltinIdTy, {}, protocols,
5840 type = getObjCObjectType(ObjCBuiltinClassTy, {}, protocols,
5851 ArrayRef<ObjCProtocolDecl *> protocols) const {
5854 ObjCTypeParamType::Profile(ID, Decl, Decl->getUnderlyingType(), protocols);
5862 if (!protocols.empty()) {
5866 Canonical, protocols, hasError, true /*allowOnPointerType*/));
5871 size += protocols.size() * sizeof(ObjCProtocolDecl *);
5873 auto *newType = new (mem) ObjCTypeParamType(Decl, Canonical, protocols);
5885 SmallVector<ObjCProtocolDecl *, 8> protocols;
5886 protocols.append(NewTypeParamTy->qual_begin(), NewTypeParamTy->qual_end());
5887 QualType UpdatedTy = getObjCTypeParamType(New, protocols);
5891 /// ObjCObjectAdoptsQTypeProtocols - Checks that protocols in IC's
5892 /// protocol list adopt all protocols in QT's qualified-id protocol
5910 /// QIdProtocolsAdoptObjCObjectProtocols - Checks that protocols in
5911 /// QT's qualified-id protocol list adopt all protocols in IDecl's list
5912 /// of protocols.
5989 /// specified ObjC interface decl. The list of protocols is optional.
6977 // Objective-C classes and protocols with the same name always match.
10097 for (auto *PI : rProto->protocols())
10142 // see if static class implements all of id's protocols, directly or
10156 // see if static class implements all of id's protocols, directly or
10170 // see if static class implements all of id's protocols, directly or
10193 // see if static class implements all of id's protocols, directly or
10195 // First, lhs protocols in the qualifier list must be found, direct
10208 // Static class's protocols, or its super class or category protocols
10264 // protocols.
10351 /// Comparison routine for Objective-C protocols to be used with
10359 /// of protocols inherited from two distinct objective-c pointer objects with
10375 // Add all of the protocols for the LHS.
10383 // Also add the protocols associated with the LHS interface.
10386 // Add all of the protocols for the RHS.
10394 // Also add the protocols associated with the RHS interface.
10403 // Compute the set of protocols that is implied by either the common type or
10404 // the protocols within the intersection.
10408 // Remove any implied protocols from the list of inherited protocols.
10415 // Sort the remaining protocols by name.
10527 // Compute the intersection of protocols.
10578 // Compute the intersection of protocols.
10621 // satisfied by the RHS (i.e., the RHS has a superset of the protocols in the
10625 // ; i.e., SuperClass may implement at least one of the protocols
10634 // If there is no protocols associated with RHS, it is not a match.