aboutsummaryrefslogtreecommitdiff
path: root/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Sema/SemaExpr.cpp')
-rw-r--r--Sema/SemaExpr.cpp19
1 files changed, 2 insertions, 17 deletions
diff --git a/Sema/SemaExpr.cpp b/Sema/SemaExpr.cpp
index 45d0470544..e5f748fa66 100644
--- a/Sema/SemaExpr.cpp
+++ b/Sema/SemaExpr.cpp
@@ -2264,23 +2264,8 @@ Sema::ExprResult Sema::ActOnInstanceMessage(
if (receiverType == Context.getObjcIdType() ||
receiverType == Context.getObjcClassType()) {
Method = InstanceMethodPool[Sel].Method;
- // If we didn't find an public method, look for a private one.
- if (!Method && CurMethodDecl) {
- NamedDecl *impCxt = CurMethodDecl->getMethodContext();
- if (ObjcImplementationDecl *IMD =
- dyn_cast<ObjcImplementationDecl>(impCxt)) {
- if (receiverType == Context.getObjcIdType())
- Method = IMD->lookupInstanceMethod(Sel);
- else
- Method = IMD->lookupClassMethod(Sel);
- } else if (ObjcCategoryImplDecl *CID =
- dyn_cast<ObjcCategoryImplDecl>(impCxt)) {
- if (receiverType == Context.getObjcIdType())
- Method = CID->lookupInstanceMethod(Sel);
- else
- Method = CID->lookupClassMethod(Sel);
- }
- }
+ if (!Method)
+ Method = FactoryMethodPool[Sel].Method;
if (!Method) {
Diag(lbrac, diag::warn_method_not_found, std::string("-"), Sel.getName(),
SourceRange(lbrac, rbrac));