diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2014-04-21 20:22:17 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-04-21 20:22:17 +0000 |
commit | 29cdbc63193d2c8cbf7fc370237fb5d306a07047 (patch) | |
tree | b641b6184098870e79cadb78886fee3d2e2ae1ed /clang/lib/Sema/SemaPseudoObject.cpp | |
parent | b0b7b18e8cb64fcb9f16bfee9b4cad0025d01ae4 (diff) | |
download | bcm5719-llvm-29cdbc63193d2c8cbf7fc370237fb5d306a07047.tar.gz bcm5719-llvm-29cdbc63193d2c8cbf7fc370237fb5d306a07047.zip |
Objective-C. Patch to allow use of dot syntax on class
objects to fund root class's instance methods.
// rdar://16650575
llvm-svn: 206781
Diffstat (limited to 'clang/lib/Sema/SemaPseudoObject.cpp')
-rw-r--r-- | clang/lib/Sema/SemaPseudoObject.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaPseudoObject.cpp b/clang/lib/Sema/SemaPseudoObject.cpp index de02fa935ef..a8463cdbd4e 100644 --- a/clang/lib/Sema/SemaPseudoObject.cpp +++ b/clang/lib/Sema/SemaPseudoObject.cpp @@ -681,7 +681,8 @@ ExprResult ObjCPropertyOpBuilder::buildGet() { // Build a message-send. ExprResult msg; - if (Getter->isInstanceMethod() || RefExpr->isObjectReceiver()) { + if ((Getter->isInstanceMethod() && !RefExpr->isClassReceiver()) || + RefExpr->isObjectReceiver()) { assert(InstanceReceiver || RefExpr->isSuperReceiver()); msg = S.BuildInstanceMessageImplicit(InstanceReceiver, receiverType, GenericLoc, Getter->getSelector(), @@ -750,7 +751,8 @@ ExprResult ObjCPropertyOpBuilder::buildSet(Expr *op, SourceLocation opcLoc, // Build a message-send. ExprResult msg; - if (Setter->isInstanceMethod() || RefExpr->isObjectReceiver()) { + if ((Setter->isInstanceMethod() && !RefExpr->isClassReceiver()) || + RefExpr->isObjectReceiver()) { msg = S.BuildInstanceMessageImplicit(InstanceReceiver, receiverType, GenericLoc, SetterSelector, Setter, MultiExprArg(args, 1)); |