Home | History | Annotate | Download | only in Index
      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 @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