18e9145e4SAnkur // RUN: rm -rf %t 28e9145e4SAnkur // RUN: mkdir %t 38e9145e4SAnkur // RUN: split-file %s %t 48e9145e4SAnkur // RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \ 58e9145e4SAnkur // RUN: %t/reference.main.json.in >> %t/reference.main.json 68e9145e4SAnkur // RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \ 78e9145e4SAnkur // RUN: %t/reference.test.json.in >> %t/reference.test.json 8e05c1b46SDaniel Grumberg // RUN: %clang_cc1 %t/test.c %t/main.c -emit-symbol-graph --pretty-sgf \ 9e05c1b46SDaniel Grumberg // RUN: --symbol-graph-dir=%t/SymbolGraphs --product-name=multifile_test -triple=x86_64-apple-macosx12.0.0 108e9145e4SAnkur 118e9145e4SAnkur // Test main.json 128e9145e4SAnkur // Generator version is not consistent across test runs, normalize it. 138e9145e4SAnkur // RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \ 14e05c1b46SDaniel Grumberg // RUN: %t/SymbolGraphs/main.c.symbols.json > %t/output-normalized.json 158e9145e4SAnkur // RUN: diff %t/reference.main.json %t/output-normalized.json 168e9145e4SAnkur 178e9145e4SAnkur // Test test.json 188e9145e4SAnkur // Generator version is not consistent across test runs, normalize it. 198e9145e4SAnkur // RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \ 20e05c1b46SDaniel Grumberg // RUN: %t/SymbolGraphs/test.c.symbols.json > %t/output-normalized.json 218e9145e4SAnkur // RUN: diff %t/reference.test.json %t/output-normalized.json 228e9145e4SAnkur 238e9145e4SAnkur // CHECK-NOT: error: 248e9145e4SAnkur // CHECK-NOT: warning: 258e9145e4SAnkur 268e9145e4SAnkur //--- test.h 278e9145e4SAnkur #ifndef TEST_H 288e9145e4SAnkur #define TEST_H 298e9145e4SAnkur 308e9145e4SAnkur int testfunc (int param1, int param2); 318e9145e4SAnkur void testfunc2 (); 328e9145e4SAnkur #endif /* TEST_H */ 338e9145e4SAnkur 348e9145e4SAnkur //--- test.c 358e9145e4SAnkur #include "test.h" 368e9145e4SAnkur 378e9145e4SAnkur int testfunc(int param1, int param2) { return param1 + param2; } 388e9145e4SAnkur 398e9145e4SAnkur void testfunc2() {} 408e9145e4SAnkur 418e9145e4SAnkur //--- main.c 428e9145e4SAnkur #include "test.h" 438e9145e4SAnkur 448e9145e4SAnkur int main () 458e9145e4SAnkur { 468e9145e4SAnkur testfunc2(); 478e9145e4SAnkur return 0; 488e9145e4SAnkur } 498e9145e4SAnkur 508e9145e4SAnkur //--- reference.main.json.in 518e9145e4SAnkur { 528e9145e4SAnkur "metadata": { 538e9145e4SAnkur "formatVersion": { 548e9145e4SAnkur "major": 0, 558e9145e4SAnkur "minor": 5, 568e9145e4SAnkur "patch": 3 578e9145e4SAnkur }, 588e9145e4SAnkur "generator": "?" 598e9145e4SAnkur }, 608e9145e4SAnkur "module": { 618e9145e4SAnkur "name": "multifile_test", 628e9145e4SAnkur "platform": { 638e9145e4SAnkur "architecture": "x86_64", 648e9145e4SAnkur "operatingSystem": { 658e9145e4SAnkur "name": "macosx" 668e9145e4SAnkur }, 678e9145e4SAnkur "vendor": "apple" 688e9145e4SAnkur } 698e9145e4SAnkur }, 708e9145e4SAnkur "relationships": [], 718e9145e4SAnkur "symbols": [ 728e9145e4SAnkur { 738e9145e4SAnkur "accessLevel": "public", 748e9145e4SAnkur "declarationFragments": [ 758e9145e4SAnkur { 768e9145e4SAnkur "kind": "typeIdentifier", 778e9145e4SAnkur "preciseIdentifier": "c:I", 788e9145e4SAnkur "spelling": "int" 798e9145e4SAnkur }, 808e9145e4SAnkur { 818e9145e4SAnkur "kind": "text", 828e9145e4SAnkur "spelling": " " 838e9145e4SAnkur }, 848e9145e4SAnkur { 858e9145e4SAnkur "kind": "identifier", 868e9145e4SAnkur "spelling": "testfunc" 878e9145e4SAnkur }, 888e9145e4SAnkur { 898e9145e4SAnkur "kind": "text", 908e9145e4SAnkur "spelling": "(" 918e9145e4SAnkur }, 928e9145e4SAnkur { 938e9145e4SAnkur "kind": "typeIdentifier", 948e9145e4SAnkur "preciseIdentifier": "c:I", 958e9145e4SAnkur "spelling": "int" 968e9145e4SAnkur }, 978e9145e4SAnkur { 988e9145e4SAnkur "kind": "text", 998e9145e4SAnkur "spelling": " " 1008e9145e4SAnkur }, 1018e9145e4SAnkur { 1028e9145e4SAnkur "kind": "internalParam", 1038e9145e4SAnkur "spelling": "param1" 1048e9145e4SAnkur }, 1058e9145e4SAnkur { 1068e9145e4SAnkur "kind": "text", 1078e9145e4SAnkur "spelling": ", " 1088e9145e4SAnkur }, 1098e9145e4SAnkur { 1108e9145e4SAnkur "kind": "typeIdentifier", 1118e9145e4SAnkur "preciseIdentifier": "c:I", 1128e9145e4SAnkur "spelling": "int" 1138e9145e4SAnkur }, 1148e9145e4SAnkur { 1158e9145e4SAnkur "kind": "text", 1168e9145e4SAnkur "spelling": " " 1178e9145e4SAnkur }, 1188e9145e4SAnkur { 1198e9145e4SAnkur "kind": "internalParam", 1208e9145e4SAnkur "spelling": "param2" 1218e9145e4SAnkur }, 1228e9145e4SAnkur { 1238e9145e4SAnkur "kind": "text", 1248e9145e4SAnkur "spelling": ");" 1258e9145e4SAnkur } 1268e9145e4SAnkur ], 1278e9145e4SAnkur "functionSignature": { 1288e9145e4SAnkur "parameters": [ 1298e9145e4SAnkur { 1308e9145e4SAnkur "declarationFragments": [ 1318e9145e4SAnkur { 1328e9145e4SAnkur "kind": "typeIdentifier", 1338e9145e4SAnkur "preciseIdentifier": "c:I", 1348e9145e4SAnkur "spelling": "int" 1358e9145e4SAnkur }, 1368e9145e4SAnkur { 1378e9145e4SAnkur "kind": "text", 1388e9145e4SAnkur "spelling": " " 1398e9145e4SAnkur }, 1408e9145e4SAnkur { 1418e9145e4SAnkur "kind": "internalParam", 1428e9145e4SAnkur "spelling": "param1" 1438e9145e4SAnkur } 1448e9145e4SAnkur ], 1458e9145e4SAnkur "name": "param1" 1468e9145e4SAnkur }, 1478e9145e4SAnkur { 1488e9145e4SAnkur "declarationFragments": [ 1498e9145e4SAnkur { 1508e9145e4SAnkur "kind": "typeIdentifier", 1518e9145e4SAnkur "preciseIdentifier": "c:I", 1528e9145e4SAnkur "spelling": "int" 1538e9145e4SAnkur }, 1548e9145e4SAnkur { 1558e9145e4SAnkur "kind": "text", 1568e9145e4SAnkur "spelling": " " 1578e9145e4SAnkur }, 1588e9145e4SAnkur { 1598e9145e4SAnkur "kind": "internalParam", 1608e9145e4SAnkur "spelling": "param2" 1618e9145e4SAnkur } 1628e9145e4SAnkur ], 1638e9145e4SAnkur "name": "param2" 1648e9145e4SAnkur } 1658e9145e4SAnkur ], 1668e9145e4SAnkur "returns": [ 1678e9145e4SAnkur { 1688e9145e4SAnkur "kind": "typeIdentifier", 1698e9145e4SAnkur "preciseIdentifier": "c:I", 1708e9145e4SAnkur "spelling": "int" 1718e9145e4SAnkur } 1728e9145e4SAnkur ] 1738e9145e4SAnkur }, 1748e9145e4SAnkur "identifier": { 1758e9145e4SAnkur "interfaceLanguage": "c", 1768e9145e4SAnkur "precise": "c:@F@testfunc" 1778e9145e4SAnkur }, 1788e9145e4SAnkur "kind": { 1798e9145e4SAnkur "displayName": "Function", 1808e9145e4SAnkur "identifier": "c.func" 1818e9145e4SAnkur }, 1828e9145e4SAnkur "location": { 1838e9145e4SAnkur "position": { 18463537872SQuietMisdreavus "character": 4, 185*b1b24d75SDaniel Grumberg "line": 3 1868e9145e4SAnkur }, 1878e9145e4SAnkur "uri": "file://INPUT_DIR/test.h" 1888e9145e4SAnkur }, 1898e9145e4SAnkur "names": { 1908e9145e4SAnkur "navigator": [ 1918e9145e4SAnkur { 1928e9145e4SAnkur "kind": "identifier", 1938e9145e4SAnkur "spelling": "testfunc" 1948e9145e4SAnkur } 1958e9145e4SAnkur ], 1968e9145e4SAnkur "subHeading": [ 1978e9145e4SAnkur { 1988e9145e4SAnkur "kind": "identifier", 1998e9145e4SAnkur "spelling": "testfunc" 2008e9145e4SAnkur } 2018e9145e4SAnkur ], 2028e9145e4SAnkur "title": "testfunc" 2038e9145e4SAnkur }, 2048e9145e4SAnkur "pathComponents": [ 2058e9145e4SAnkur "testfunc" 2068e9145e4SAnkur ] 2078e9145e4SAnkur }, 2088e9145e4SAnkur { 2098e9145e4SAnkur "accessLevel": "public", 2108e9145e4SAnkur "declarationFragments": [ 2118e9145e4SAnkur { 2128e9145e4SAnkur "kind": "typeIdentifier", 2138e9145e4SAnkur "preciseIdentifier": "c:v", 2148e9145e4SAnkur "spelling": "void" 2158e9145e4SAnkur }, 2168e9145e4SAnkur { 2178e9145e4SAnkur "kind": "text", 2188e9145e4SAnkur "spelling": " " 2198e9145e4SAnkur }, 2208e9145e4SAnkur { 2218e9145e4SAnkur "kind": "identifier", 2228e9145e4SAnkur "spelling": "testfunc2" 2238e9145e4SAnkur }, 2248e9145e4SAnkur { 2258e9145e4SAnkur "kind": "text", 2268e9145e4SAnkur "spelling": "();" 2278e9145e4SAnkur } 2288e9145e4SAnkur ], 2298e9145e4SAnkur "functionSignature": { 2308e9145e4SAnkur "returns": [ 2318e9145e4SAnkur { 2328e9145e4SAnkur "kind": "typeIdentifier", 2338e9145e4SAnkur "preciseIdentifier": "c:v", 2348e9145e4SAnkur "spelling": "void" 2358e9145e4SAnkur } 2368e9145e4SAnkur ] 2378e9145e4SAnkur }, 2388e9145e4SAnkur "identifier": { 2398e9145e4SAnkur "interfaceLanguage": "c", 2408e9145e4SAnkur "precise": "c:@F@testfunc2" 2418e9145e4SAnkur }, 2428e9145e4SAnkur "kind": { 2438e9145e4SAnkur "displayName": "Function", 2448e9145e4SAnkur "identifier": "c.func" 2458e9145e4SAnkur }, 2468e9145e4SAnkur "location": { 2478e9145e4SAnkur "position": { 24863537872SQuietMisdreavus "character": 5, 249*b1b24d75SDaniel Grumberg "line": 4 2508e9145e4SAnkur }, 2518e9145e4SAnkur "uri": "file://INPUT_DIR/test.h" 2528e9145e4SAnkur }, 2538e9145e4SAnkur "names": { 2548e9145e4SAnkur "navigator": [ 2558e9145e4SAnkur { 2568e9145e4SAnkur "kind": "identifier", 2578e9145e4SAnkur "spelling": "testfunc2" 2588e9145e4SAnkur } 2598e9145e4SAnkur ], 2608e9145e4SAnkur "subHeading": [ 2618e9145e4SAnkur { 2628e9145e4SAnkur "kind": "identifier", 2638e9145e4SAnkur "spelling": "testfunc2" 2648e9145e4SAnkur } 2658e9145e4SAnkur ], 2668e9145e4SAnkur "title": "testfunc2" 2678e9145e4SAnkur }, 2688e9145e4SAnkur "pathComponents": [ 2698e9145e4SAnkur "testfunc2" 2708e9145e4SAnkur ] 2718e9145e4SAnkur }, 2728e9145e4SAnkur { 2738e9145e4SAnkur "accessLevel": "public", 2748e9145e4SAnkur "declarationFragments": [ 2758e9145e4SAnkur { 2768e9145e4SAnkur "kind": "typeIdentifier", 2778e9145e4SAnkur "preciseIdentifier": "c:I", 2788e9145e4SAnkur "spelling": "int" 2798e9145e4SAnkur }, 2808e9145e4SAnkur { 2818e9145e4SAnkur "kind": "text", 2828e9145e4SAnkur "spelling": " " 2838e9145e4SAnkur }, 2848e9145e4SAnkur { 2858e9145e4SAnkur "kind": "identifier", 2868e9145e4SAnkur "spelling": "main" 2878e9145e4SAnkur }, 2888e9145e4SAnkur { 2898e9145e4SAnkur "kind": "text", 2908e9145e4SAnkur "spelling": "();" 2918e9145e4SAnkur } 2928e9145e4SAnkur ], 2938e9145e4SAnkur "functionSignature": { 2948e9145e4SAnkur "returns": [ 2958e9145e4SAnkur { 2968e9145e4SAnkur "kind": "typeIdentifier", 2978e9145e4SAnkur "preciseIdentifier": "c:I", 2988e9145e4SAnkur "spelling": "int" 2998e9145e4SAnkur } 3008e9145e4SAnkur ] 3018e9145e4SAnkur }, 3028e9145e4SAnkur "identifier": { 3038e9145e4SAnkur "interfaceLanguage": "c", 3048e9145e4SAnkur "precise": "c:@F@main" 3058e9145e4SAnkur }, 3068e9145e4SAnkur "kind": { 3078e9145e4SAnkur "displayName": "Function", 3088e9145e4SAnkur "identifier": "c.func" 3098e9145e4SAnkur }, 3108e9145e4SAnkur "location": { 3118e9145e4SAnkur "position": { 31263537872SQuietMisdreavus "character": 4, 31363537872SQuietMisdreavus "line": 2 3148e9145e4SAnkur }, 3158e9145e4SAnkur "uri": "file://INPUT_DIR/main.c" 3168e9145e4SAnkur }, 3178e9145e4SAnkur "names": { 3188e9145e4SAnkur "navigator": [ 3198e9145e4SAnkur { 3208e9145e4SAnkur "kind": "identifier", 3218e9145e4SAnkur "spelling": "main" 3228e9145e4SAnkur } 3238e9145e4SAnkur ], 3248e9145e4SAnkur "subHeading": [ 3258e9145e4SAnkur { 3268e9145e4SAnkur "kind": "identifier", 3278e9145e4SAnkur "spelling": "main" 3288e9145e4SAnkur } 3298e9145e4SAnkur ], 3308e9145e4SAnkur "title": "main" 3318e9145e4SAnkur }, 3328e9145e4SAnkur "pathComponents": [ 3338e9145e4SAnkur "main" 3348e9145e4SAnkur ] 3358e9145e4SAnkur } 3368e9145e4SAnkur ] 3378e9145e4SAnkur } 3388e9145e4SAnkur //--- reference.test.json.in 3398e9145e4SAnkur { 3408e9145e4SAnkur "metadata": { 3418e9145e4SAnkur "formatVersion": { 3428e9145e4SAnkur "major": 0, 3438e9145e4SAnkur "minor": 5, 3448e9145e4SAnkur "patch": 3 3458e9145e4SAnkur }, 3468e9145e4SAnkur "generator": "?" 3478e9145e4SAnkur }, 3488e9145e4SAnkur "module": { 3498e9145e4SAnkur "name": "multifile_test", 3508e9145e4SAnkur "platform": { 3518e9145e4SAnkur "architecture": "x86_64", 3528e9145e4SAnkur "operatingSystem": { 3538e9145e4SAnkur "name": "macosx" 3548e9145e4SAnkur }, 3558e9145e4SAnkur "vendor": "apple" 3568e9145e4SAnkur } 3578e9145e4SAnkur }, 3588e9145e4SAnkur "relationships": [], 3598e9145e4SAnkur "symbols": [ 3608e9145e4SAnkur { 3618e9145e4SAnkur "accessLevel": "public", 3628e9145e4SAnkur "declarationFragments": [ 3638e9145e4SAnkur { 3648e9145e4SAnkur "kind": "typeIdentifier", 3658e9145e4SAnkur "preciseIdentifier": "c:I", 3668e9145e4SAnkur "spelling": "int" 3678e9145e4SAnkur }, 3688e9145e4SAnkur { 3698e9145e4SAnkur "kind": "text", 3708e9145e4SAnkur "spelling": " " 3718e9145e4SAnkur }, 3728e9145e4SAnkur { 3738e9145e4SAnkur "kind": "identifier", 3748e9145e4SAnkur "spelling": "testfunc" 3758e9145e4SAnkur }, 3768e9145e4SAnkur { 3778e9145e4SAnkur "kind": "text", 3788e9145e4SAnkur "spelling": "(" 3798e9145e4SAnkur }, 3808e9145e4SAnkur { 3818e9145e4SAnkur "kind": "typeIdentifier", 3828e9145e4SAnkur "preciseIdentifier": "c:I", 3838e9145e4SAnkur "spelling": "int" 3848e9145e4SAnkur }, 3858e9145e4SAnkur { 3868e9145e4SAnkur "kind": "text", 3878e9145e4SAnkur "spelling": " " 3888e9145e4SAnkur }, 3898e9145e4SAnkur { 3908e9145e4SAnkur "kind": "internalParam", 3918e9145e4SAnkur "spelling": "param1" 3928e9145e4SAnkur }, 3938e9145e4SAnkur { 3948e9145e4SAnkur "kind": "text", 3958e9145e4SAnkur "spelling": ", " 3968e9145e4SAnkur }, 3978e9145e4SAnkur { 3988e9145e4SAnkur "kind": "typeIdentifier", 3998e9145e4SAnkur "preciseIdentifier": "c:I", 4008e9145e4SAnkur "spelling": "int" 4018e9145e4SAnkur }, 4028e9145e4SAnkur { 4038e9145e4SAnkur "kind": "text", 4048e9145e4SAnkur "spelling": " " 4058e9145e4SAnkur }, 4068e9145e4SAnkur { 4078e9145e4SAnkur "kind": "internalParam", 4088e9145e4SAnkur "spelling": "param2" 4098e9145e4SAnkur }, 4108e9145e4SAnkur { 4118e9145e4SAnkur "kind": "text", 4128e9145e4SAnkur "spelling": ");" 4138e9145e4SAnkur } 4148e9145e4SAnkur ], 4158e9145e4SAnkur "functionSignature": { 4168e9145e4SAnkur "parameters": [ 4178e9145e4SAnkur { 4188e9145e4SAnkur "declarationFragments": [ 4198e9145e4SAnkur { 4208e9145e4SAnkur "kind": "typeIdentifier", 4218e9145e4SAnkur "preciseIdentifier": "c:I", 4228e9145e4SAnkur "spelling": "int" 4238e9145e4SAnkur }, 4248e9145e4SAnkur { 4258e9145e4SAnkur "kind": "text", 4268e9145e4SAnkur "spelling": " " 4278e9145e4SAnkur }, 4288e9145e4SAnkur { 4298e9145e4SAnkur "kind": "internalParam", 4308e9145e4SAnkur "spelling": "param1" 4318e9145e4SAnkur } 4328e9145e4SAnkur ], 4338e9145e4SAnkur "name": "param1" 4348e9145e4SAnkur }, 4358e9145e4SAnkur { 4368e9145e4SAnkur "declarationFragments": [ 4378e9145e4SAnkur { 4388e9145e4SAnkur "kind": "typeIdentifier", 4398e9145e4SAnkur "preciseIdentifier": "c:I", 4408e9145e4SAnkur "spelling": "int" 4418e9145e4SAnkur }, 4428e9145e4SAnkur { 4438e9145e4SAnkur "kind": "text", 4448e9145e4SAnkur "spelling": " " 4458e9145e4SAnkur }, 4468e9145e4SAnkur { 4478e9145e4SAnkur "kind": "internalParam", 4488e9145e4SAnkur "spelling": "param2" 4498e9145e4SAnkur } 4508e9145e4SAnkur ], 4518e9145e4SAnkur "name": "param2" 4528e9145e4SAnkur } 4538e9145e4SAnkur ], 4548e9145e4SAnkur "returns": [ 4558e9145e4SAnkur { 4568e9145e4SAnkur "kind": "typeIdentifier", 4578e9145e4SAnkur "preciseIdentifier": "c:I", 4588e9145e4SAnkur "spelling": "int" 4598e9145e4SAnkur } 4608e9145e4SAnkur ] 4618e9145e4SAnkur }, 4628e9145e4SAnkur "identifier": { 4638e9145e4SAnkur "interfaceLanguage": "c", 4648e9145e4SAnkur "precise": "c:@F@testfunc" 4658e9145e4SAnkur }, 4668e9145e4SAnkur "kind": { 4678e9145e4SAnkur "displayName": "Function", 4688e9145e4SAnkur "identifier": "c.func" 4698e9145e4SAnkur }, 4708e9145e4SAnkur "location": { 4718e9145e4SAnkur "position": { 47263537872SQuietMisdreavus "character": 4, 473*b1b24d75SDaniel Grumberg "line": 3 4748e9145e4SAnkur }, 4758e9145e4SAnkur "uri": "file://INPUT_DIR/test.h" 4768e9145e4SAnkur }, 4778e9145e4SAnkur "names": { 4788e9145e4SAnkur "navigator": [ 4798e9145e4SAnkur { 4808e9145e4SAnkur "kind": "identifier", 4818e9145e4SAnkur "spelling": "testfunc" 4828e9145e4SAnkur } 4838e9145e4SAnkur ], 4848e9145e4SAnkur "subHeading": [ 4858e9145e4SAnkur { 4868e9145e4SAnkur "kind": "identifier", 4878e9145e4SAnkur "spelling": "testfunc" 4888e9145e4SAnkur } 4898e9145e4SAnkur ], 4908e9145e4SAnkur "title": "testfunc" 4918e9145e4SAnkur }, 4928e9145e4SAnkur "pathComponents": [ 4938e9145e4SAnkur "testfunc" 4948e9145e4SAnkur ] 4958e9145e4SAnkur }, 4968e9145e4SAnkur { 4978e9145e4SAnkur "accessLevel": "public", 4988e9145e4SAnkur "declarationFragments": [ 4998e9145e4SAnkur { 5008e9145e4SAnkur "kind": "typeIdentifier", 5018e9145e4SAnkur "preciseIdentifier": "c:v", 5028e9145e4SAnkur "spelling": "void" 5038e9145e4SAnkur }, 5048e9145e4SAnkur { 5058e9145e4SAnkur "kind": "text", 5068e9145e4SAnkur "spelling": " " 5078e9145e4SAnkur }, 5088e9145e4SAnkur { 5098e9145e4SAnkur "kind": "identifier", 5108e9145e4SAnkur "spelling": "testfunc2" 5118e9145e4SAnkur }, 5128e9145e4SAnkur { 5138e9145e4SAnkur "kind": "text", 5148e9145e4SAnkur "spelling": "();" 5158e9145e4SAnkur } 5168e9145e4SAnkur ], 5178e9145e4SAnkur "functionSignature": { 5188e9145e4SAnkur "returns": [ 5198e9145e4SAnkur { 5208e9145e4SAnkur "kind": "typeIdentifier", 5218e9145e4SAnkur "preciseIdentifier": "c:v", 5228e9145e4SAnkur "spelling": "void" 5238e9145e4SAnkur } 5248e9145e4SAnkur ] 5258e9145e4SAnkur }, 5268e9145e4SAnkur "identifier": { 5278e9145e4SAnkur "interfaceLanguage": "c", 5288e9145e4SAnkur "precise": "c:@F@testfunc2" 5298e9145e4SAnkur }, 5308e9145e4SAnkur "kind": { 5318e9145e4SAnkur "displayName": "Function", 5328e9145e4SAnkur "identifier": "c.func" 5338e9145e4SAnkur }, 5348e9145e4SAnkur "location": { 5358e9145e4SAnkur "position": { 53663537872SQuietMisdreavus "character": 5, 537*b1b24d75SDaniel Grumberg "line": 4 5388e9145e4SAnkur }, 5398e9145e4SAnkur "uri": "file://INPUT_DIR/test.h" 5408e9145e4SAnkur }, 5418e9145e4SAnkur "names": { 5428e9145e4SAnkur "navigator": [ 5438e9145e4SAnkur { 5448e9145e4SAnkur "kind": "identifier", 5458e9145e4SAnkur "spelling": "testfunc2" 5468e9145e4SAnkur } 5478e9145e4SAnkur ], 5488e9145e4SAnkur "subHeading": [ 5498e9145e4SAnkur { 5508e9145e4SAnkur "kind": "identifier", 5518e9145e4SAnkur "spelling": "testfunc2" 5528e9145e4SAnkur } 5538e9145e4SAnkur ], 5548e9145e4SAnkur "title": "testfunc2" 5558e9145e4SAnkur }, 5568e9145e4SAnkur "pathComponents": [ 5578e9145e4SAnkur "testfunc2" 5588e9145e4SAnkur ] 5598e9145e4SAnkur } 5608e9145e4SAnkur ] 5618e9145e4SAnkur } 562