annotate-tokens.cpp revision 0a03a3f98b14006a54bcac9e8908a7c9f50e519f
1struct bonk { };
2void test(bonk X) {
3    X = X;
4    __is_base_of(bonk, bonk);
5}
6
7// RUN: c-index-test -test-annotate-tokens=%s:1:1:6:5 %s | FileCheck %s
8// CHECK: Keyword: "struct" [1:1 - 1:7] StructDecl=bonk:1:8 (Definition)
9// CHECK: Identifier: "bonk" [1:8 - 1:12] StructDecl=bonk:1:8 (Definition)
10// CHECK: Punctuation: "{" [1:13 - 1:14] StructDecl=bonk:1:8 (Definition)
11// CHECK: Punctuation: "}" [1:15 - 1:16] StructDecl=bonk:1:8 (Definition)
12// CHECK: Punctuation: ";" [1:16 - 1:17]
13// CHECK: Keyword: "void" [2:1 - 2:5] FunctionDecl=test:2:6 (Definition)
14// CHECK: Identifier: "test" [2:6 - 2:10] FunctionDecl=test:2:6 (Definition)
15// CHECK: Punctuation: "(" [2:10 - 2:11] FunctionDecl=test:2:6 (Definition)
16// CHECK: Identifier: "bonk" [2:11 - 2:15] TypeRef=struct bonk:1:8
17// CHECK: Identifier: "X" [2:16 - 2:17] ParmDecl=X:2:16 (Definition)
18// CHECK: Punctuation: ")" [2:17 - 2:18] FunctionDecl=test:2:6 (Definition)
19// CHECK: Punctuation: "{" [2:19 - 2:20] UnexposedStmt=
20// CHECK: Identifier: "X" [3:5 - 3:6] DeclRefExpr=X:2:16
21// CHECK: Punctuation: "=" [3:7 - 3:8] CallExpr=operator=:1:8
22// CHECK: Identifier: "X" [3:9 - 3:10] DeclRefExpr=X:2:16
23// CHECK: Punctuation: ";" [3:10 - 3:11] UnexposedStmt=
24// CHECK: Keyword: "__is_base_of" [4:5 - 4:17] UnexposedExpr=
25// CHECK: Punctuation: "(" [4:17 - 4:18] UnexposedExpr=
26// CHECK: Identifier: "bonk" [4:18 - 4:22] TypeRef=struct bonk:1:8
27// CHECK: Punctuation: "," [4:22 - 4:23] UnexposedExpr=
28// CHECK: Identifier: "bonk" [4:24 - 4:28] TypeRef=struct bonk:1:8
29// CHECK: Punctuation: ")" [4:28 - 4:29] UnexposedExpr=
30// CHECK: Punctuation: ";" [4:29 - 4:30] UnexposedStmt=
31// CHECK: Punctuation: "}" [5:1 - 5:2] UnexposedStmt=