receiver type is not valid for property-dot syntz use.
rdar://
19381786
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226927
91177308-0d34-0410-b5e6-
96231b3b80d8
(Msg->getReceiverKind() != ObjCMessageExpr::Instance &&
Msg->getReceiverKind() != ObjCMessageExpr::SuperInstance))
return false;
+ if (const Expr *Receiver = Msg->getInstanceReceiver())
+ if (Receiver->getType()->isObjCBuiltinType())
+ return false;
+
const ObjCMethodDecl *Method = Msg->getMethodDecl();
if (!Method)
return false;
id testRdar19038838(Rdar19038838 *obj) {
return [obj newItem];
}
+
+// rdar://19381786
+@interface rdar19381786 : NSObject
+{
+ rdar19381786* obj;
+}
+@property int count;
+@end
+
+@protocol PR
+@property int count;
+@end
+
+@implementation rdar19381786
+-(void)test:(id)some : (id<PR>)qsome : (SEL)selsome
+{
+ [obj setCount : 100];
+ [some setCount : [some count]];
+ [qsome setCount : [qsome count]];
+}
+@end
+
id testRdar19038838(Rdar19038838 *obj) {
return obj.newItem;
}
+
+// rdar://19381786
+@interface rdar19381786 : NSObject
+{
+ rdar19381786* obj;
+}
+@property int count;
+@end
+
+@protocol PR
+@property int count;
+@end
+
+@implementation rdar19381786
+-(void)test:(id)some : (id<PR>)qsome : (SEL)selsome
+{
+ obj.count = 100;
+ [some setCount : [some count]];
+ [qsome setCount : [qsome count]];
+}
+@end
+