150
|
1 @interface I
|
|
2 @property (readonly) id prop;
|
|
3 -(id)prop;
|
|
4 @end
|
|
5
|
|
6 @interface I()
|
|
7 @property (assign,readwrite) id prop;
|
|
8 @end
|
|
9
|
|
10 @implementation I
|
|
11 @synthesize prop = _prop;
|
|
12 @end
|
|
13
|
|
14 // rdar://11015325
|
|
15 @interface I1
|
|
16 __attribute__((something)) @interface I2 @end
|
|
17 @end
|
|
18
|
|
19 @interface I3
|
|
20 @property (assign,readwrite) id auto_prop;
|
|
21 @end
|
|
22
|
|
23 @implementation I3
|
|
24 -(void)meth {
|
|
25 _auto_prop = 0;
|
|
26 }
|
|
27 @end
|
|
28
|
|
29 int test1() {
|
|
30 extern int extvar;
|
|
31 extvar = 2;
|
|
32 extern int extfn();
|
|
33 return extfn();
|
|
34 }
|
|
35
|
|
36 @interface I4
|
|
37 @property (assign, nonatomic) id prop;
|
|
38 -(id)prop;
|
|
39 -(void)setProp:(id)p;
|
|
40 @end
|
|
41
|
|
42 @implementation I4
|
|
43 @synthesize prop = _prop;
|
|
44 -(id)prop {
|
|
45 return 0;
|
|
46 }
|
|
47 -(void)setProp:(id)p {
|
|
48 }
|
|
49 @end
|
|
50
|
|
51 // rdar://25372906
|
|
52 @class I5;
|
|
53 @interface I5
|
|
54 -(void)meth;
|
|
55 @property (class) int c;
|
|
56 @end
|
|
57
|
|
58 // RUN: c-index-test -index-file %s -target x86_64-apple-macosx10.7 > %t
|
|
59 // RUN: FileCheck %s -input-file=%t
|
|
60 // CHECK: [indexDeclaration]: kind: objc-class | name: I | {{.*}} | loc: 1:12
|
|
61 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: prop | {{.*}} | loc: 3:7
|
|
62 // CHECK: [indexDeclaration]: kind: objc-property | name: prop | {{.*}} | loc: 2:25
|
|
63 // CHECK: [indexDeclaration]: kind: objc-category | name: | {{.*}} | loc: 6:12
|
|
64 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: setProp: | {{.*}} | loc: 7:33
|
|
65 // CHECK: [indexDeclaration]: kind: objc-property | name: prop | {{.*}} | loc: 7:33
|
|
66
|
|
67 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: prop | {{.*}} | loc: 11:13 | {{.*}} | lexical-container: [I:10:17]
|
|
68 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: setProp: | {{.*}} | loc: 11:13 | {{.*}} | lexical-container: [I:10:17]
|
|
69 // CHECK: [indexDeclaration]: kind: objc-ivar | name: _prop | {{.*}} | loc: 11:20
|
|
70
|
|
71 // CHECK: [indexDeclaration]: kind: objc-ivar | name: _auto_prop | {{.*}} | loc: 20:33
|
|
72 // CHECK: [indexEntityReference]: kind: objc-ivar | name: _auto_prop | {{.*}} | loc: 25:3
|
|
73
|
|
74 // CHECK: [indexDeclaration]: kind: function | name: test1 | {{.*}} | loc: 29:5
|
|
75 // CHECK: [indexDeclaration]: kind: variable | name: extvar | {{.*}} | loc: 30:14
|
|
76 // CHECK: [indexEntityReference]: kind: variable | name: extvar | {{.*}} | loc: 31:3
|
|
77 // CHECK: [indexDeclaration]: kind: function | name: extfn | {{.*}} | loc: 32:14
|
|
78 // CHECK: [indexEntityReference]: kind: function | name: extfn | {{.*}} | loc: 33:10
|
|
79
|
|
80 // CHECK: [indexDeclaration]: kind: objc-class | name: I4 | {{.*}} | loc: 36:12
|
|
81 // CHECK: [indexEntityReference]: kind: objc-property | name: prop | {{.*}} | cursor: ObjCSynthesizeDecl=prop:37:34 (Definition) | loc: 43:13 | <parent>:: kind: objc-class | name: I4 | {{.*}} | container: [I4:42:17] | refkind: direct
|
|
82 // CHECK-NOT: [indexDeclaration]: kind: objc-instance-method {{.*}} loc: 37:
|
|
83 // CHECK-NOT: [indexDeclaration]: kind: objc-instance-method {{.*}} loc: 43:
|
|
84
|
|
85 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: meth | {{.*}} loc: 54:8 | {{.*}} | isRedecl: 0 | isDef: 0 |
|
|
86 // CHECK: [indexDeclaration]: kind: objc-property | name: c | USR: c:objc(cs)I5(cpy)c | lang: ObjC | cursor: ObjCPropertyDecl=c:55:23 [class,] | loc: 55:23
|