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