1 // Note: this test is line- and column-sensitive. Test commands are at 2 // the end. 3 4 5 @interface A 6 @property int prop1; 7 @end 8 9 @interface B : A { 10 float _prop2; 11 } 12 @property float prop2; 13 @property short prop3; 14 @end 15 16 @interface B () 17 @property double prop4; 18 @end 19 20 @implementation B 21 @synthesize prop2 = _prop2; 22 23 - (int)method { 24 return _prop2; 25 } 26 27 @dynamic prop3; 28 29 - (short)method2 { 30 return prop4; 31 } 32 33 - (short)method3 { 34 return prop3; 35 } 36 @end 37 38 // RUN: c-index-test -code-completion-at=%s:24:1 -Xclang -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-CC1 %s 39 // CHECK-CC1: NotImplemented:{TypedText _Bool} (50) 40 // CHECK-CC1: ObjCIvarDecl:{ResultType float}{TypedText _prop2} (35) 41 // CHECK-CC1-NOT: prop2 42 // CHECK-CC1: ObjCPropertyDecl:{ResultType short}{TypedText prop3} (35) 43 // CHECK-CC1: ObjCPropertyDecl:{ResultType double}{TypedText prop4} (35) 44 45 // RUN: c-index-test -code-completion-at=%s:30:2 -Xclang -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-CC2 %s 46 // CHECK-CC2: NotImplemented:{TypedText _Bool} (50) 47 // CHECK-CC2: ObjCIvarDecl:{ResultType float}{TypedText _prop2} (35) 48 // CHECK-CC2-NOT: prop3 49 // CHECK-CC2: ObjCPropertyDecl:{ResultType double}{TypedText prop4} (35) 50 51 // RUN: c-index-test -code-completion-at=%s:34:2 -Xclang -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-CC3 %s 52 // CHECK-CC3: NotImplemented:{TypedText _Bool} (50) 53 // CHECK-CC3: ObjCIvarDecl:{ResultType float}{TypedText _prop2} (35) 54 // CHECK-CC3: ObjCPropertyDecl:{ResultType double}{TypedText prop4} 55 // CHECK-CC3-NOT: ObjCPropertyDecl:{ResultType double}{TypedText prop4} (35) 56 // CHECK-CC1: restrict 57