xref: /llvm-project/clang/test/Index/annotate-parameterized-classes.m (revision 9bda6cff20276f67c02d0d2814ef44c2d62ecd89)
1e9d95f1eSDouglas Gregor@protocol NSObject
2e9d95f1eSDouglas Gregor@end
3e9d95f1eSDouglas Gregor
4e9d95f1eSDouglas Gregor@interface NSObject
5e9d95f1eSDouglas Gregor@end
6e9d95f1eSDouglas Gregor
7e9d95f1eSDouglas Gregor@interface A<T : id, U : NSObject *> : NSObject
8e9d95f1eSDouglas Gregor@end
9e9d95f1eSDouglas Gregor
10e9d95f1eSDouglas Gregor@interface A<T : id, U : NSObject *> (Cat1)
11e9d95f1eSDouglas Gregor@end
12e9d95f1eSDouglas Gregor
13e9d95f1eSDouglas Gregortypedef A<id<NSObject>, NSObject *> ASpecialization1;
14e9d95f1eSDouglas Gregor
15e9d95f1eSDouglas Gregor@interface B<T : id, U : NSObject *> : A<T, U>
16e9d95f1eSDouglas Gregor@end
17e9d95f1eSDouglas Gregor
18e9d95f1eSDouglas Gregor// RUN: c-index-test -test-annotate-tokens=%s:7:1:9:1 %s -target x86_64-apple-macosx10.7.0 | FileCheck -check-prefix=CHECK-INTERFACE-DECL %s
19e9d95f1eSDouglas Gregor// CHECK-INTERFACE-DECL: Identifier: "T" [7:14 - 7:15] TemplateTypeParameter=T:7:14
20*9bda6cffSDouglas Gregor// CHECK-INTERFACE-DECL: Identifier: "id" [7:18 - 7:20] TypeRef=id:0:0
21e9d95f1eSDouglas Gregor// CHECK-INTERFACE-DECL: Identifier: "U" [7:22 - 7:23] TemplateTypeParameter=U:7:22
22*9bda6cffSDouglas Gregor// CHECK-INTERFACE-DECL: Identifier: "NSObject" [7:26 - 7:34] ObjCClassRef=NSObject:4:12
23e9d95f1eSDouglas Gregor
24e9d95f1eSDouglas Gregor// RUN: c-index-test -test-annotate-tokens=%s:10:1:12:1 %s -target x86_64-apple-macosx10.7.0 | FileCheck -check-prefix=CHECK-CATEGORY-DECL %s
25e9d95f1eSDouglas Gregor// CHECK-CATEGORY-DECL: Identifier: "T" [10:14 - 10:15] TemplateTypeParameter=T:10:14
26*9bda6cffSDouglas Gregor// CHECK-CATEGORY-DECL: Identifier: "id" [10:18 - 10:20] TypeRef=id:0:0
27e9d95f1eSDouglas Gregor// CHECK-CATEGORY-DECL: Identifier: "U" [10:22 - 10:23] TemplateTypeParameter=U:10:22
28*9bda6cffSDouglas Gregor// CHECK-CATEGORY-DECL: Identifier: "NSObject" [10:26 - 10:34] ObjCClassRef=NSObject:4:12
29e9d95f1eSDouglas Gregor
30e9d95f1eSDouglas Gregor// RUN: c-index-test -test-annotate-tokens=%s:13:1:14:1 %s -target x86_64-apple-macosx10.7.0 | FileCheck -check-prefix=CHECK-SPECIALIZATION %s
31e9d95f1eSDouglas Gregor// CHECK-SPECIALIZATION: Identifier: "id" [13:11 - 13:13] TypeRef=id:0:0
32e9d95f1eSDouglas Gregor// CHECK-SPECIALIZATION: Identifier: "NSObject" [13:14 - 13:22] ObjCProtocolRef=NSObject:1:11
33e9d95f1eSDouglas Gregor// CHECK-SPECIALIZATION: Identifier: "NSObject" [13:25 - 13:33] ObjCClassRef=NSObject:4:12
34e9d95f1eSDouglas Gregor
35e9d95f1eSDouglas Gregor// RUN: c-index-test -test-annotate-tokens=%s:15:1:16:1 %s -target x86_64-apple-macosx10.7.0 | FileCheck -check-prefix=CHECK-SUPER %s
36e9d95f1eSDouglas Gregor// CHECK-SUPER: Identifier: "A" [15:40 - 15:41] ObjCSuperClassRef=A:7:12
37e9d95f1eSDouglas Gregor// CHECK-SUPER: Identifier: "T" [15:42 - 15:43] TypeRef=T:15:14
38e9d95f1eSDouglas Gregor// CHECK-SUPER: Identifier: "U" [15:45 - 15:46] TypeRef=U:15:22
39