Lines Matching defs:ObjCMethod

4444 void SemaObjC::CheckObjCMethodOverrides(ObjCMethodDecl *ObjCMethod,
4448 if (!ObjCMethod)
4456 OverrideSearch overrides(SemaRef, ObjCMethod);
4467 CheckObjCMethodDirectOverrides(ObjCMethod, overridden);
4469 } else if (isa<ObjCImplDecl>(ObjCMethod->getDeclContext())) {
4478 MethodPool.find(ObjCMethod->getSelector());
4481 ObjCMethod->isInstanceMethod()? It->second.first: It->second.second;
4492 CheckObjCMethodDirectOverrides(ObjCMethod, SuperOverridden);
4506 ObjCMethod->setRelatedResultType();
4509 SemaRef.mergeObjCMethodDecls(ObjCMethod, overridden);
4511 if (ObjCMethod->isImplicit() && overridden->isImplicit())
4515 if (isa<ObjCInterfaceDecl>(ObjCMethod->getDeclContext()) ||
4516 isa<ObjCImplementationDecl>(ObjCMethod->getDeclContext()))
4517 CheckConflictingOverridingMethod(ObjCMethod, overridden,
4523 ObjCMethodDecl::param_iterator ParamI = ObjCMethod->param_begin(),
4524 E = ObjCMethod->param_end();
4543 ObjCMethod->setOverriding(hasOverriddenMethodsInBaseOrProtocol);
4765 ObjCMethodDecl *ObjCMethod = ObjCMethodDecl::Create(
4809 SemaRef.CheckParameter(ObjCMethod, StartLoc, ArgInfo[i].NameLoc,
4842 Param->setDeclContext(ObjCMethod);
4846 ObjCMethod->setMethodParams(Context, Params, SelectorLocs);
4847 ObjCMethod->setObjCDeclQualifier(
4850 SemaRef.ProcessDeclAttributeList(SemaRef.TUScope, ObjCMethod, AttrList);
4851 SemaRef.AddPragmaAttributes(SemaRef.TUScope, ObjCMethod);
4852 SemaRef.ProcessAPINotes(ObjCMethod);
4859 ImpDecl->addInstanceMethod(ObjCMethod);
4862 ImpDecl->addClassMethod(ObjCMethod);
4873 Setter->isInstanceMethod() == ObjCMethod->isInstanceMethod()) {
4875 PropertyImpl->setSetterMethodDecl(ObjCMethod);
4879 Getter->isInstanceMethod() == ObjCMethod->isInstanceMethod()) {
4881 PropertyImpl->setGetterMethodDecl(ObjCMethod);
4892 if (!ObjCMethod->isDirectMethod()) {
4893 const ObjCMethodDecl *CanonicalMD = ObjCMethod->getCanonicalDecl();
4896 ObjCMethod->addAttr(
4904 if (auto *IMD = IDecl->lookupMethod(ObjCMethod->getSelector(),
4905 ObjCMethod->isInstanceMethod())) {
4906 mergeInterfaceMethodToImpl(SemaRef, ObjCMethod, IMD);
4908 // The Idecl->lookupMethod() above will find declarations for ObjCMethod
4934 Diag(ObjCMethod->getLocation(),
4940 if (ObjCMethod->isDirectMethod()) {
4941 const auto *attr = ObjCMethod->getAttr<ObjCDirectAttr>();
4942 if (ObjCMethod->getCanonicalDecl() != IMD) {
4950 if (ObjCMethod->getCanonicalDecl() != IMD) {
4953 ObjCMethod->addAttr(
4961 ObjCMethod->getSelector().getMethodFamily() == OMF_dealloc) {
4962 Diag(ObjCMethod->getLocation(), diag::warn_dealloc_in_category)
4963 << ObjCMethod->getDeclName();
4966 mergeObjCDirectMembers(SemaRef, ClassDecl, ObjCMethod);
4967 checkObjCDirectMethodClashes(SemaRef, IDecl, ObjCMethod, ImpDecl);
4975 if (auto *IMD = P->lookupMethod(ObjCMethod->getSelector(),
4976 ObjCMethod->isInstanceMethod())) {
4977 assert(ObjCMethod->parameters().size() ==
4981 auto NI = ObjCMethod->param_begin();
4988 mergeObjCDirectMembers(SemaRef, ClassDecl, ObjCMethod);
4997 checkObjCDirectMethodClashes(SemaRef, IDecl, ObjCMethod);
5000 cast<DeclContext>(ClassDecl)->addDecl(ObjCMethod);
5005 Diag(ObjCMethod->getLocation(), diag::err_duplicate_method_decl)
5006 << ObjCMethod->getDeclName();
5008 ObjCMethod->setInvalidDecl();
5009 return ObjCMethod;
5027 CheckRelatedResultTypeCompatibility(SemaRef, ObjCMethod, CurrentClass);
5029 CheckObjCMethodOverrides(ObjCMethod, CurrentClass, RTC);
5033 ARCError = CheckARCMethodDecl(ObjCMethod);
5037 !ObjCMethod->hasRelatedResultType() &&
5040 switch (ObjCMethod->getMethodFamily()) {
5054 InferRelatedResultType = ObjCMethod->isClassMethod();
5061 InferRelatedResultType = ObjCMethod->isInstanceMethod();
5066 !ObjCMethod->getReturnType()->isObjCIndependentClassType())
5067 ObjCMethod->setRelatedResultType();
5072 checkObjCMethodX86VectorTypes(SemaRef, ObjCMethod);
5076 if (const auto *attr = ObjCMethod->getAttr<AvailabilityAttr>()) {
5077 if (ObjCMethod->isClassMethod() &&
5078 ObjCMethod->getSelector().getAsString() == "load") {
5081 ObjCMethod->dropAttr<AvailabilityAttr>();
5086 ObjCMethod->createImplicitParams(Context, ObjCMethod->getClassInterface());
5088 SemaRef.ActOnDocumentableDecl(ObjCMethod);
5090 return ObjCMethod;