• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
29int 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@end
56
57// RUN: c-index-test -index-file %s -target x86_64-apple-macosx10.7 > %t
58// RUN: FileCheck %s -input-file=%t
59// CHECK: [indexDeclaration]: kind: objc-class | name: I | {{.*}} | loc: 1:12
60// CHECK: [indexDeclaration]: kind: objc-instance-method | name: prop | {{.*}} | loc: 3:2
61// CHECK: [indexDeclaration]: kind: objc-property | name: prop | {{.*}} | loc: 2:25
62// CHECK: [indexDeclaration]: kind: objc-category | name:  | {{.*}} | loc: 6:12
63// CHECK: [indexDeclaration]: kind: objc-instance-method | name: setProp: | {{.*}} | loc: 7:33
64// CHECK: [indexDeclaration]: kind: objc-property | name: prop | {{.*}} | loc: 7:33
65
66// CHECK: [indexDeclaration]: kind: objc-ivar | name: _prop | {{.*}} | loc: 11:20
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
70// CHECK: [indexDeclaration]: kind: objc-ivar | name: _auto_prop | {{.*}} | loc: 20:33
71// CHECK: [indexEntityReference]: kind: objc-ivar | name: _auto_prop | {{.*}} | loc: 25:3
72
73// CHECK: [indexDeclaration]: kind: function | name: test1 | {{.*}} | loc: 29:5
74// CHECK: [indexDeclaration]: kind: variable | name: extvar | {{.*}} | loc: 30:14
75// CHECK: [indexEntityReference]: kind: variable | name: extvar | {{.*}} | loc: 31:3
76// CHECK: [indexDeclaration]: kind: function | name: extfn | {{.*}} | loc: 32:14
77// CHECK: [indexEntityReference]: kind: function | name: extfn | {{.*}} | loc: 33:10
78
79// CHECK: [indexDeclaration]: kind: objc-class | name: I4 | {{.*}} | loc: 36:12
80// 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
81// CHECK-NOT: [indexDeclaration]: kind: objc-instance-method {{.*}} loc: 37:
82// CHECK-NOT: [indexDeclaration]: kind: objc-instance-method {{.*}} loc: 43:
83
84// CHECK: [indexDeclaration]: kind: objc-instance-method | name: meth | {{.*}} loc: 54:1 | {{.*}} | isRedecl: 0 | isDef: 0 |
85