Lines Matching defs:protocols
2702 /// CollectInheritedProtocols - Collect all protocols in current class and
2723 for (auto *Proto : OC->protocols()) {
2732 for (auto *Proto : OP->protocols())
5890 /// CmpProtocolNames - Comparison predicate for sorting protocols
5912 // Sort protocols, keyed by name.
5935 ArrayRef<ObjCProtocolDecl *> protocols,
5937 // If the base type is an interface and there aren't any protocols or
5939 if (typeArgs.empty() && protocols.empty() && !isKindOf &&
5945 ObjCObjectTypeImpl::Profile(ID, baseType, typeArgs, protocols, isKindOf);
5960 // sorted-and-uniqued list of protocols and the type arguments
5965 bool protocolsSorted = areSortedAndUniqued(protocols);
5982 canonProtocolsVec.append(protocols.begin(), protocols.end());
5986 canonProtocols = protocols;
5998 size += protocols.size() * sizeof(ObjCProtocolDecl *);
6001 new (mem) ObjCObjectTypeImpl(canonical, baseType, typeArgs, protocols,
6014 ArrayRef<ObjCProtocolDecl *> protocols, bool &hasError,
6019 return getObjCTypeParamType(objT->getDecl(), protocols);
6031 protocolsVec.append(protocols.begin(), protocols.end());
6032 ArrayRef<ObjCProtocolDecl *> protocols = protocolsVec;
6036 protocols,
6044 // FIXME: Check for protocols to which the class type is already
6049 protocols,
6058 // FIXME: Check for protocols to which the class type is already
6060 return getObjCObjectType(type, {}, protocols, false);
6066 type = getObjCObjectType(ObjCBuiltinIdTy, {}, protocols,
6074 type = getObjCObjectType(ObjCBuiltinClassTy, {}, protocols,
6085 ArrayRef<ObjCProtocolDecl *> protocols) const {
6088 ObjCTypeParamType::Profile(ID, Decl, Decl->getUnderlyingType(), protocols);
6096 if (!protocols.empty()) {
6100 Canonical, protocols, hasError, true /*allowOnPointerType*/));
6105 size += protocols.size() * sizeof(ObjCProtocolDecl *);
6107 auto *newType = new (mem) ObjCTypeParamType(Decl, Canonical, protocols);
6119 SmallVector<ObjCProtocolDecl *, 8> protocols;
6120 protocols.append(NewTypeParamTy->qual_begin(), NewTypeParamTy->qual_end());
6121 QualType UpdatedTy = getObjCTypeParamType(New, protocols);
6125 /// ObjCObjectAdoptsQTypeProtocols - Checks that protocols in IC's
6126 /// protocol list adopt all protocols in QT's qualified-id protocol
6144 /// QIdProtocolsAdoptObjCObjectProtocols - Checks that protocols in
6145 /// QT's qualified-id protocol list adopt all protocols in IDecl's list
6146 /// of protocols.
6223 /// specified ObjC interface decl. The list of protocols is optional.
7291 // Objective-C classes and protocols with the same name always match.
10505 for (auto *PI : rProto->protocols())
10550 // see if static class implements all of id's protocols, directly or
10564 // see if static class implements all of id's protocols, directly or
10578 // see if static class implements all of id's protocols, directly or
10601 // see if static class implements all of id's protocols, directly or
10603 // First, lhs protocols in the qualifier list must be found, direct
10616 // Static class's protocols, or its super class or category protocols
10672 // protocols.
10759 /// Comparison routine for Objective-C protocols to be used with
10767 /// of protocols inherited from two distinct objective-c pointer objects with
10783 // Add all of the protocols for the LHS.
10791 // Also add the protocols associated with the LHS interface.
10794 // Add all of the protocols for the RHS.
10802 // Also add the protocols associated with the RHS interface.
10811 // Compute the set of protocols that is implied by either the common type or
10812 // the protocols within the intersection.
10816 // Remove any implied protocols from the list of inherited protocols.
10823 // Sort the remaining protocols by name.
10935 // Compute the intersection of protocols.
10986 // Compute the intersection of protocols.
11029 // satisfied by the RHS (i.e., the RHS has a superset of the protocols in the
11033 // ; i.e., SuperClass may implement at least one of the protocols
11042 // If there is no protocols associated with RHS, it is not a match.