1*67e74705SXin Li// RUN: rm -rf %t 2*67e74705SXin Li// RUN: %clang_cc1 -objcmt-migrate-property-dot-syntax -mt-migrate-directory %t %s -x objective-c -fobjc-runtime-has-weak -fobjc-arc -triple x86_64-apple-darwin11 3*67e74705SXin Li// RUN: c-arcmt-test -mt-migrate-directory %t | arcmt-test -verify-transformed-files %s.result 4*67e74705SXin Li// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c -fobjc-runtime-has-weak -fobjc-arc %s.result 5*67e74705SXin Li 6*67e74705SXin Li@class NSString; 7*67e74705SXin Li 8*67e74705SXin Li// rdar://19140267 9*67e74705SXin Li@protocol NSObject 10*67e74705SXin Li@property (readonly, copy) NSString *description; 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Li// rdar://18498572 14*67e74705SXin Li@interface NSObject <NSObject> @end 15*67e74705SXin Li 16*67e74705SXin Li@interface P : NSObject 17*67e74705SXin Li{ 18*67e74705SXin Li P* obj; 19*67e74705SXin Li int i1, i2, i3; 20*67e74705SXin Li} 21*67e74705SXin Li@property int count; 22*67e74705SXin Li@property (copy) P* PropertyReturnsPObj; 23*67e74705SXin Li- (P*) MethodReturnsPObj; 24*67e74705SXin Li@end 25*67e74705SXin Li 26*67e74705SXin LiP* fun(); 27*67e74705SXin Li 28*67e74705SXin Li@implementation P 29*67e74705SXin Li- (int) Meth : (P*)array { 30*67e74705SXin Li [obj setCount : 100]; 31*67e74705SXin Li 32*67e74705SXin Li [(P*)0 setCount : [array count]]; 33*67e74705SXin Li 34*67e74705SXin Li [[obj PropertyReturnsPObj] setCount : [array count]]; 35*67e74705SXin Li 36*67e74705SXin Li [obj setCount : (i1+i2*i3 - 100)]; 37*67e74705SXin Li 38*67e74705SXin Li return [obj count] - 39*67e74705SXin Li [(P*)0 count] + [array count] + 40*67e74705SXin Li [fun() count] - 41*67e74705SXin Li [[obj PropertyReturnsPObj] count] + 42*67e74705SXin Li [self->obj count]; 43*67e74705SXin Li} 44*67e74705SXin Li 45*67e74705SXin Li- (P*) MethodReturnsPObj { return 0; } 46*67e74705SXin Li 47*67e74705SXin Li- (NSString *)description { return [super description]; } 48*67e74705SXin Li@end 49*67e74705SXin Li 50*67e74705SXin Li// rdar://19140267 51*67e74705SXin Li@interface Sub : P 52*67e74705SXin Li@end 53*67e74705SXin Li 54*67e74705SXin Li@implementation Sub 55*67e74705SXin Li- (int) Meth : (P*)array { 56*67e74705SXin Li [super setCount : 100]; 57*67e74705SXin Li 58*67e74705SXin Li [super setCount : [array count]]; 59*67e74705SXin Li 60*67e74705SXin Li [[super PropertyReturnsPObj] setCount : [array count]]; 61*67e74705SXin Li 62*67e74705SXin Li [super setCount : (i1+i2*i3 - 100)]; 63*67e74705SXin Li 64*67e74705SXin Li return [super count] - 65*67e74705SXin Li [(P*)0 count] + [array count] + 66*67e74705SXin Li [fun() count] - 67*67e74705SXin Li [[super PropertyReturnsPObj] count] + 68*67e74705SXin Li [self->obj count]; 69*67e74705SXin Li} 70*67e74705SXin Li@end 71*67e74705SXin Li 72*67e74705SXin Li 73*67e74705SXin Li@interface Rdar19038838 74*67e74705SXin Li@property id newItem; // should be marked objc_method_family(none), but isn't. 75*67e74705SXin Li@end 76*67e74705SXin Li 77*67e74705SXin Liid testRdar19038838(Rdar19038838 *obj) { 78*67e74705SXin Li return [obj newItem]; 79*67e74705SXin Li} 80*67e74705SXin Li 81*67e74705SXin Li// rdar://19381786 82*67e74705SXin Li@interface rdar19381786 : NSObject 83*67e74705SXin Li{ 84*67e74705SXin Li rdar19381786* obj; 85*67e74705SXin Li} 86*67e74705SXin Li@property int count; 87*67e74705SXin Li@end 88*67e74705SXin Li 89*67e74705SXin Li@protocol PR 90*67e74705SXin Li@property int count; 91*67e74705SXin Li@end 92*67e74705SXin Li 93*67e74705SXin Li@implementation rdar19381786 94*67e74705SXin Li-(void)test:(id)some : (id<PR>)qsome : (SEL)selsome 95*67e74705SXin Li{ 96*67e74705SXin Li [obj setCount : 100]; 97*67e74705SXin Li [some setCount : [some count]]; 98*67e74705SXin Li [qsome setCount : [qsome count]]; 99*67e74705SXin Li} 100*67e74705SXin Li@end 101*67e74705SXin Li 102*67e74705SXin Li// rdar://19140114 103*67e74705SXin Liint NSOnState; 104*67e74705SXin Liint ArrNSOnState[4]; 105*67e74705SXin Li@interface rdar19140114 : NSObject 106*67e74705SXin Li{ 107*67e74705SXin Li rdar19140114* menuItem; 108*67e74705SXin Li} 109*67e74705SXin Li@property int state; 110*67e74705SXin Li@end 111*67e74705SXin Li 112*67e74705SXin Li@implementation rdar19140114 113*67e74705SXin Li- (void) Meth { 114*67e74705SXin Li [menuItem setState:NSOnState]; 115*67e74705SXin Li [menuItem setState :NSOnState]; 116*67e74705SXin Li [menuItem setState :ArrNSOnState[NSOnState]]; 117*67e74705SXin Li [menuItem setState : NSOnState]; 118*67e74705SXin Li [menuItem setState: NSOnState]; 119*67e74705SXin Li [menuItem setState: NSOnState]; 120*67e74705SXin Li [menuItem setState : NSOnState]; 121*67e74705SXin Li} 122*67e74705SXin Li@end 123