|  | // RUN: rm -rf %t | 
|  | // 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 | 
|  | // RUN: c-arcmt-test -mt-migrate-directory %t | arcmt-test -verify-transformed-files %s.result | 
|  | // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c -fobjc-runtime-has-weak -fobjc-arc %s.result | 
|  |  | 
|  | @class NSString; | 
|  |  | 
|  | // rdar://19140267 | 
|  | @protocol NSObject | 
|  | @property (readonly, copy) NSString *description; | 
|  | @end | 
|  |  | 
|  | // rdar://18498572 | 
|  | @interface NSObject <NSObject> @end | 
|  |  | 
|  | @interface P : NSObject | 
|  | { | 
|  | P* obj; | 
|  | int i1, i2, i3; | 
|  | } | 
|  | @property int count; | 
|  | @property (copy) P* PropertyReturnsPObj; | 
|  | - (P*) MethodReturnsPObj; | 
|  | @end | 
|  |  | 
|  | P* fun(); | 
|  |  | 
|  | @implementation P | 
|  | - (int) Meth : (P*)array { | 
|  | obj.count = 100; | 
|  |  | 
|  | ((P*)0).count = array.count; | 
|  |  | 
|  | obj.PropertyReturnsPObj.count = array.count; | 
|  |  | 
|  | obj.count = (i1+i2*i3 - 100); | 
|  |  | 
|  | return obj.count - | 
|  | ((P*)0).count + array.count + | 
|  | fun().count - | 
|  | obj.PropertyReturnsPObj.count + | 
|  | self->obj.count; | 
|  | } | 
|  |  | 
|  | - (P*) MethodReturnsPObj { return 0; } | 
|  |  | 
|  | - (NSString *)description { return super.description; } | 
|  | @end | 
|  |  | 
|  | // rdar://19140267 | 
|  | @interface Sub : P | 
|  | @end | 
|  |  | 
|  | @implementation Sub | 
|  | - (int) Meth : (P*)array { | 
|  | super.count = 100; | 
|  |  | 
|  | super.count = array.count; | 
|  |  | 
|  | super.PropertyReturnsPObj.count = array.count; | 
|  |  | 
|  | super.count = (i1+i2*i3 - 100); | 
|  |  | 
|  | return super.count - | 
|  | ((P*)0).count + array.count + | 
|  | fun().count - | 
|  | super.PropertyReturnsPObj.count + | 
|  | self->obj.count; | 
|  | } | 
|  | @end | 
|  |  | 
|  |  | 
|  | @interface Rdar19038838 | 
|  | @property id newItem; // should be marked objc_method_family(none), but isn't. | 
|  | @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.count = qsome.count; | 
|  | } | 
|  | @end | 
|  |  | 
|  | // rdar://19140114 | 
|  | int NSOnState; | 
|  | int ArrNSOnState[4]; | 
|  | @interface rdar19140114 : NSObject | 
|  | { | 
|  | rdar19140114* menuItem; | 
|  | } | 
|  | @property int state; | 
|  | @end | 
|  |  | 
|  | @implementation rdar19140114 | 
|  | - (void) Meth { | 
|  | menuItem.state = NSOnState; | 
|  | menuItem.state = NSOnState; | 
|  | menuItem.state = ArrNSOnState[NSOnState]; | 
|  | menuItem.state = NSOnState; | 
|  | menuItem.state = NSOnState; | 
|  | menuItem.state = NSOnState; | 
|  | menuItem.state = NSOnState; | 
|  | } | 
|  | @end |