complete-synthesized.m revision 112c3307aaa9ae9ee6ff5c2b4f6a53b1ea3c6f19
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