1 | // CHECK: [[@LINE+1]]:12 | class/ObjC | Base | [[Base_USR:.*]] | {{.*}} | Decl | rel: 0 |
2 | @interface Base |
3 | @end |
4 | |
5 | // CHECK: [[@LINE+1]]:11 | protocol/ObjC | Prot1 | [[Prot1_USR:.*]] | {{.*}} | Decl | rel: 0 |
6 | @protocol Prot1 |
7 | @end |
8 | |
9 | // CHECK: [[@LINE+3]]:11 | protocol/ObjC | Prot2 | [[Prot2_USR:.*]] | {{.*}} | Decl | rel: 0 |
10 | // CHECK: [[@LINE+2]]:17 | protocol/ObjC | Prot1 | [[Prot1_USR]] | {{.*}} | Ref,RelBase,RelCont | rel: 1 |
11 | // CHECK-NEXT: RelBase,RelCont | Prot2 | [[Prot2_USR]] |
12 | @protocol Prot2<Prot1> |
13 | @end |
14 | |
15 | // CHECK: [[@LINE+7]]:12 | class/ObjC | Sub | [[Sub_USR:.*]] | {{.*}} | Decl | rel: 0 |
16 | // CHECK: [[@LINE+6]]:18 | class/ObjC | Base | [[Base_USR]] | {{.*}} | Ref,RelBase,RelCont | rel: 1 |
17 | // CHECK-NEXT: RelBase,RelCont | Sub | [[Sub_USR]] |
18 | // CHECK: [[@LINE+4]]:23 | protocol/ObjC | Prot2 | [[Prot2_USR]] | {{.*}} | Ref,RelBase,RelCont | rel: 1 |
19 | // CHECK-NEXT: RelBase,RelCont | Sub | [[Sub_USR]] |
20 | // CHECK: [[@LINE+2]]:30 | protocol/ObjC | Prot1 | [[Prot1_USR]] | {{.*}} | Ref,RelBase,RelCont | rel: 1 |
21 | // CHECK-NEXT: RelBase,RelCont | Sub | [[Sub_USR]] |
22 | @interface Sub : Base<Prot2, Prot1> |
23 | // CHECK-NOT: [[@LINE+1]]:3 | class/ObjC | Sub | |
24 | -(Sub*)getit; |
25 | @end |
26 | |
27 | // CHECK: [[@LINE+1]]:7 | class/C++ | Cls | [[Cls_USR:.*]] | {{.*}} | Def | rel: 0 |
28 | class Cls {}; |
29 | |
30 | // CHECK: [[@LINE+3]]:7 | class/C++ | SubCls1 | [[SubCls1_USR:.*]] | {{.*}} | Def | rel: 0 |
31 | // CHECK: [[@LINE+2]]:24 | class/C++ | Cls | [[Cls_USR]] | {{.*}} | Ref,RelBase,RelCont | rel: 1 |
32 | // CHECK-NEXT: RelBase,RelCont | SubCls1 | [[SubCls1_USR]] |
33 | class SubCls1 : public Cls { |
34 | // CHECK-NOT: [[@LINE+1]]:3 | class/C++ | SubCls1 | |
35 | SubCls1 *f; |
36 | }; |
37 | |