xref: /llvm-project/clang/test/Index/annotate-module.m (revision a3e2ff19e59c587ea14611eb64400c6d0ecabcee)
1121d2a90SArgyrios Kyrtzidis
2121d2a90SArgyrios Kyrtzidis#include <DependsOnModule/DependsOnModule.h>
3c50d4924SDouglas Gregor@import DependsOnModule;
4121d2a90SArgyrios Kyrtzidisint glob;
5121d2a90SArgyrios Kyrtzidis
6121d2a90SArgyrios Kyrtzidis// RUN: rm -rf %t.cache
735b04d6fSDouglas Gregor// RUN: c-index-test -test-annotate-tokens=%s:2:1:5:1 %s -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs \
8121d2a90SArgyrios Kyrtzidis// RUN:      | FileCheck %s
9*a3e2ff19SArgyrios Kyrtzidis// RUN: c-index-test -test-annotate-tokens=%s:2:1:5:1 %s -fmodules-cache-path=%t.cache -fmodules -gmodules -F %S/../Modules/Inputs \
10*a3e2ff19SArgyrios Kyrtzidis// RUN:      | FileCheck %s
11121d2a90SArgyrios Kyrtzidis
12121d2a90SArgyrios Kyrtzidis// CHECK:      Punctuation: "#" [2:1 - 2:2] inclusion directive=[[INC_DIR:DependsOnModule[/\\]DependsOnModule\.h \(.*/Modules/Inputs/DependsOnModule\.framework[/\\]Headers[/\\]DependsOnModule.h\)]]
13121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Identifier: "include" [2:2 - 2:9] inclusion directive=[[INC_DIR]]
14121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Punctuation: "<" [2:10 - 2:11] inclusion directive=[[INC_DIR]]
15121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Identifier: "DependsOnModule" [2:11 - 2:26] inclusion directive=[[INC_DIR]]
16121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Punctuation: "/" [2:26 - 2:27] inclusion directive=[[INC_DIR]]
17121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Identifier: "DependsOnModule" [2:27 - 2:42] inclusion directive=[[INC_DIR]]
18121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Punctuation: "." [2:42 - 2:43] inclusion directive=[[INC_DIR]]
19121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Identifier: "h" [2:43 - 2:44] inclusion directive=[[INC_DIR]]
20121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Punctuation: ">" [2:44 - 2:45] inclusion directive=[[INC_DIR]]
21121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Punctuation: "@" [3:1 - 3:2] ModuleImport=DependsOnModule:3:1
22c50d4924SDouglas Gregor// CHECK-NEXT: Keyword: "import" [3:2 - 3:8] ModuleImport=DependsOnModule:3:1
23c50d4924SDouglas Gregor// CHECK-NEXT: Identifier: "DependsOnModule" [3:9 - 3:24] ModuleImport=DependsOnModule:3:1
24c50d4924SDouglas Gregor// CHECK-NEXT: Punctuation: ";" [3:24 - 3:25]
25121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Keyword: "int" [4:1 - 4:4] VarDecl=glob:4:5
26121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Identifier: "glob" [4:5 - 4:9] VarDecl=glob:4:5
27121d2a90SArgyrios Kyrtzidis// CHECK-NEXT: Punctuation: ";" [4:9 - 4:10]
28121d2a90SArgyrios Kyrtzidis
2935b04d6fSDouglas Gregor// RUN: c-index-test -test-annotate-tokens=%S/../Modules/Inputs/Module.framework/Headers/Sub.h:1:1:3:1 %s -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs \
30121d2a90SArgyrios Kyrtzidis// RUN:      | FileCheck %s -check-prefix=CHECK-MOD
31121d2a90SArgyrios Kyrtzidis
32121d2a90SArgyrios Kyrtzidis// CHECK-MOD:      Punctuation: "#" [1:1 - 1:2] inclusion directive=[[INC_DIR:Module[/\\]Sub2\.h \(.*/Modules/Inputs/Module\.framework[/\\]Headers[/\\]Sub2.h\)]]
33121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Identifier: "include" [1:2 - 1:9] inclusion directive=[[INC_DIR]]
34121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Punctuation: "<" [1:10 - 1:11] inclusion directive=[[INC_DIR]]
35121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Identifier: "Module" [1:11 - 1:17] inclusion directive=[[INC_DIR]]
36121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Punctuation: "/" [1:17 - 1:18] inclusion directive=[[INC_DIR]]
37121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Identifier: "Sub2" [1:18 - 1:22] inclusion directive=[[INC_DIR]]
38121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Punctuation: "." [1:22 - 1:23] inclusion directive=[[INC_DIR]]
39121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Identifier: "h" [1:23 - 1:24] inclusion directive=[[INC_DIR]]
40121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Punctuation: ">" [1:24 - 1:25] inclusion directive=[[INC_DIR]]
41121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Keyword: "int" [2:1 - 2:4] VarDecl=Module_Sub:2:6
42121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Punctuation: "*" [2:5 - 2:6] VarDecl=Module_Sub:2:6
43121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Identifier: "Module_Sub" [2:6 - 2:16] VarDecl=Module_Sub:2:6
44121d2a90SArgyrios Kyrtzidis// CHECK-MOD-NEXT: Punctuation: ";" [2:16 - 2:17]
4512fdb9e3SArgyrios Kyrtzidis
4612fdb9e3SArgyrios Kyrtzidis// RUN: c-index-test -cursor-at=%s:3:11 %s -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs \
4712fdb9e3SArgyrios Kyrtzidis// RUN:     | FileCheck %s -check-prefix=CHECK-CURSOR
4812fdb9e3SArgyrios Kyrtzidis
49884337f4SArgyrios Kyrtzidis// CHECK-CURSOR:      3:1 ModuleImport=DependsOnModule:3:1 (Definition) Extent=[3:1 - 3:24] Spelling=DependsOnModule ([3:9 - 3:24]) ModuleName=DependsOnModule ({{.*}}DependsOnModule-{{[^.]*}}.pcm) system=0 Headers(2):
5012fdb9e3SArgyrios Kyrtzidis// CHECK-CURSOR-NEXT: {{.*}}other.h
5112fdb9e3SArgyrios Kyrtzidis// CHECK-CURSOR-NEXT: {{.*}}DependsOnModule.h
52