Objective-C modernizer. Avoid using property-dot syntax when
receiver type is not valid for property-dot syntz use. rdar://19381786 llvm-svn: 226927
This commit is contained in:
parent
f1397fa7d7
commit
30609b8a78
|
@ -245,6 +245,10 @@ namespace {
|
|||
(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;
|
||||
|
|
|
@ -68,3 +68,25 @@ P* fun();
|
|||
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
|
||||
|
||||
|
|
|
@ -68,3 +68,25 @@ P* fun();
|
|||
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
|
||||
|
||||
|
|
Loading…
Reference in New Issue