Lines Matching defs:ObjCMethod
4437 void SemaObjC::CheckObjCMethodOverrides(ObjCMethodDecl *ObjCMethod,
4441 if (!ObjCMethod)
4449 OverrideSearch overrides(SemaRef, ObjCMethod);
4460 CheckObjCMethodDirectOverrides(ObjCMethod, overridden);
4462 } else if (isa<ObjCImplDecl>(ObjCMethod->getDeclContext())) {
4471 MethodPool.find(ObjCMethod->getSelector());
4474 ObjCMethod->isInstanceMethod()? It->second.first: It->second.second;
4485 CheckObjCMethodDirectOverrides(ObjCMethod, SuperOverridden);
4499 ObjCMethod->setRelatedResultType();
4502 SemaRef.mergeObjCMethodDecls(ObjCMethod, overridden);
4504 if (ObjCMethod->isImplicit() && overridden->isImplicit())
4508 if (isa<ObjCInterfaceDecl>(ObjCMethod->getDeclContext()) ||
4509 isa<ObjCImplementationDecl>(ObjCMethod->getDeclContext()))
4510 CheckConflictingOverridingMethod(ObjCMethod, overridden,
4516 ObjCMethodDecl::param_iterator ParamI = ObjCMethod->param_begin(),
4517 E = ObjCMethod->param_end();
4536 ObjCMethod->setOverriding(hasOverriddenMethodsInBaseOrProtocol);
4810 ObjCMethodDecl *ObjCMethod = ObjCMethodDecl::Create(
4823 Param->setDeclContext(ObjCMethod);
4837 Param->setDeclContext(ObjCMethod);
4841 ObjCMethod->setMethodParams(Context, Params, SelectorLocs);
4842 ObjCMethod->setObjCDeclQualifier(
4845 SemaRef.ProcessDeclAttributeList(SemaRef.TUScope, ObjCMethod, AttrList);
4846 SemaRef.AddPragmaAttributes(SemaRef.TUScope, ObjCMethod);
4847 SemaRef.ProcessAPINotes(ObjCMethod);
4854 ImpDecl->addInstanceMethod(ObjCMethod);
4857 ImpDecl->addClassMethod(ObjCMethod);
4868 Setter->isInstanceMethod() == ObjCMethod->isInstanceMethod()) {
4870 PropertyImpl->setSetterMethodDecl(ObjCMethod);
4874 Getter->isInstanceMethod() == ObjCMethod->isInstanceMethod()) {
4876 PropertyImpl->setGetterMethodDecl(ObjCMethod);
4887 if (!ObjCMethod->isDirectMethod()) {
4888 const ObjCMethodDecl *CanonicalMD = ObjCMethod->getCanonicalDecl();
4891 ObjCMethod->addAttr(
4899 if (auto *IMD = IDecl->lookupMethod(ObjCMethod->getSelector(),
4900 ObjCMethod->isInstanceMethod())) {
4901 mergeInterfaceMethodToImpl(SemaRef, ObjCMethod, IMD);
4903 // The Idecl->lookupMethod() above will find declarations for ObjCMethod
4929 Diag(ObjCMethod->getLocation(),
4935 if (ObjCMethod->isDirectMethod()) {
4936 const auto *attr = ObjCMethod->getAttr<ObjCDirectAttr>();
4937 if (ObjCMethod->getCanonicalDecl() != IMD) {
4945 if (ObjCMethod->getCanonicalDecl() != IMD) {
4948 ObjCMethod->addAttr(
4956 ObjCMethod->getSelector().getMethodFamily() == OMF_dealloc) {
4957 Diag(ObjCMethod->getLocation(), diag::warn_dealloc_in_category)
4958 << ObjCMethod->getDeclName();
4961 mergeObjCDirectMembers(SemaRef, ClassDecl, ObjCMethod);
4962 checkObjCDirectMethodClashes(SemaRef, IDecl, ObjCMethod, ImpDecl);
4970 if (auto *IMD = P->lookupMethod(ObjCMethod->getSelector(),
4971 ObjCMethod->isInstanceMethod())) {
4972 assert(ObjCMethod->parameters().size() ==
4976 auto NI = ObjCMethod->param_begin();
4983 mergeObjCDirectMembers(SemaRef, ClassDecl, ObjCMethod);
4992 checkObjCDirectMethodClashes(SemaRef, IDecl, ObjCMethod);
4995 cast<DeclContext>(ClassDecl)->addDecl(ObjCMethod);
5000 Diag(ObjCMethod->getLocation(), diag::err_duplicate_method_decl)
5001 << ObjCMethod->getDeclName();
5003 ObjCMethod->setInvalidDecl();
5004 return ObjCMethod;
5022 CheckRelatedResultTypeCompatibility(SemaRef, ObjCMethod, CurrentClass);
5024 CheckObjCMethodOverrides(ObjCMethod, CurrentClass, RTC);
5028 ARCError = CheckARCMethodDecl(ObjCMethod);
5032 !ObjCMethod->hasRelatedResultType() &&
5035 switch (ObjCMethod->getMethodFamily()) {
5049 InferRelatedResultType = ObjCMethod->isClassMethod();
5056 InferRelatedResultType = ObjCMethod->isInstanceMethod();
5061 !ObjCMethod->getReturnType()->isObjCIndependentClassType())
5062 ObjCMethod->setRelatedResultType();
5067 checkObjCMethodX86VectorTypes(SemaRef, ObjCMethod);
5071 if (const auto *attr = ObjCMethod->getAttr<AvailabilityAttr>()) {
5072 if (ObjCMethod->isClassMethod() &&
5073 ObjCMethod->getSelector().getAsString() == "load") {
5076 ObjCMethod->dropAttr<AvailabilityAttr>();
5081 ObjCMethod->createImplicitParams(Context, ObjCMethod->getClassInterface());
5083 SemaRef.ActOnDocumentableDecl(ObjCMethod);
5085 return ObjCMethod;