most tests pass

This commit is contained in:
Jacob Dufault 2017-02-19 22:06:46 -08:00
parent 3cd39ae91a
commit d3b57ac301
22 changed files with 102 additions and 92 deletions

View File

@ -1207,6 +1207,7 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
case CXIdxEntity_Field:
case CXIdxEntity_Variable:
case CXIdxEntity_CXXStaticVariable:
{
VarId var_id = db->ToVarId(decl->entityInfo->USR);
VarDef* var_def = db->Resolve(var_id);
@ -1221,11 +1222,17 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
var_def->declaration = decl->loc;
var_def->all_uses.push_back(decl->loc);
// Declaring variable type information.
std::string var_type_usr = clang::Cursor(decl->cursor).get_type().strip_qualifiers().get_usr();
if (var_type_usr != "") {
TypeId var_type_id = db->ToTypeId(var_type_usr);
var_def->variable_type = var_type_id;
InsertInterestingTypeReference(db, var_type_id, decl->cursor);
// Insert an interesting type usage for variable declarations. Parameters
// are handled when a function is declared because clang doesn't provide
// parameter declarations for unnamed parameters.
if (decl->cursor.kind != CXCursor_ParmDecl)
InsertInterestingTypeReference(db, var_type_id, decl->cursor);
}
if (decl->isDefinition && IsTypeDefinition(decl->semanticContainer)) {
@ -1279,18 +1286,18 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
if (decl->isDefinition) {
// Search for unnamed parameter and and mark them as interesting type
// usages. The clang indexer will not mark them as declarations.
// Mark type usage for parameters as interesting. We handle this here
// instead of inside var declaration because clang will not emit a var
// declaration for an unnamed parameter, but we still want to mark the
// usage as interesting.
// TODO: Do a similar thing for function decl parameter usages.
clang::Cursor cursor = decl->cursor;
for (clang::Cursor arg : cursor.get_arguments()) {
switch (arg.get_kind()) {
case CXCursor_ParmDecl:
if (arg.get_spelling() == "") {
std::string param_type_usr = arg.get_type().strip_qualifiers().get_usr();
if (param_type_usr != "") {
InsertInterestingTypeReference(db, db->ToTypeId(param_type_usr), arg);
}
std::string param_type_usr = arg.get_type().strip_qualifiers().get_usr();
if (param_type_usr != "") {
InsertInterestingTypeReference(db, db->ToTypeId(param_type_usr), arg);
}
break;
}
@ -1401,6 +1408,7 @@ void indexEntityReference(CXClientData client_data, const CXIdxEntityRefInfo* re
ParsingDatabase* db = param->db;
clang::Cursor cursor(ref->cursor);
// TODO: Index entity call/ctor creation, like Foo().x = 3
switch (ref->referencedEntity->kind) {
case CXIdxEntity_Variable:
@ -1696,11 +1704,12 @@ int main(int argc, char** argv) {
// TODO: Fix all existing tests.
//if (path == "tests/usage/type_usage_declare_extern.cc") continue;
if (path == "tests/constructors/constructor.cc") continue;
if (path != "tests/usage/type_usage_typedef_and_using.cc") continue;
if (path == "tests/usage/usage_inside_of_call.cc") continue;
//if (path != "tests/usage/type_usage_typedef_and_using.cc") continue;
//if (path != "tests/usage/type_usage_declare_local.cc") continue;
//if (path != "tests/usage/func_usage_addr_method.cc") continue;
//if (path != "tests/usage/func_usage_template_func.cc") continue;
//if (path != "tests/usage/func_usage_class_inline_var_def.cc") continue;
//if (path != "tests/usage/usage_inside_of_call.cc") continue;
//if (path != "tests/foobar.cc") continue;
// Parse expected output from the test, parse it into JSON document.

View File

@ -15,7 +15,7 @@ OUTPUT:
"id": 0,
"usr": "c:@S@Foo",
"all_uses": ["tests/usage/type_usage_declare_param_prototype.cc:1:8", "tests/usage/type_usage_declare_param_prototype.cc:3:10", "tests/usage/type_usage_declare_param_prototype.cc:3:18", "tests/usage/type_usage_declare_param_prototype.cc:4:10", "tests/usage/type_usage_declare_param_prototype.cc:4:18"],
"interesting_uses": ["tests/usage/type_usage_declare_param_prototype.cc:4:10"]
"interesting_uses": ["tests/usage/type_usage_declare_param_prototype.cc:4:10", "tests/usage/type_usage_declare_param_prototype.cc:4:18"]
}],
"functions": [{
"id": 0,

View File

@ -6,7 +6,8 @@ OUTPUT:
"types": [{
"id": 0,
"usr": "c:@S@ForwardType",
"all_uses": ["tests/usage/type_usage_declare_param_unnamed.cc:1:8", "tests/usage/type_usage_declare_param_unnamed.cc:2:10"]
"all_uses": ["tests/usage/type_usage_declare_param_unnamed.cc:1:8", "tests/usage/type_usage_declare_param_unnamed.cc:2:10"],
"interesting_uses": ["tests/usage/type_usage_declare_param_unnamed.cc:2:10"]
}],
"functions": [{
"id": 0,

View File

@ -7,6 +7,8 @@ struct Foo {
int field_var;
};
int Foo::static_var = 0;
void foo() {
int a = 5;
called(a + gen() + Foo().field_var + Foo::static_var);
@ -21,24 +23,24 @@ OUTPUT:
"short_name": "Foo",
"qualified_name": "Foo",
"definition": "tests/usage/usage_inside_of_call.cc:5:8",
"vars": [0, 1]
"vars": [1, 0],
"all_uses": ["tests/usage/usage_inside_of_call.cc:5:8", "tests/usage/usage_inside_of_call.cc:10:5", "tests/usage/usage_inside_of_call.cc:14:22", "tests/usage/usage_inside_of_call.cc:14:40"]
}],
"functions": [{
"id": 0,
"usr": "c:@F@called#I#",
"short_name": "called",
"qualified_name": "called",
"declaration": "tests/usage/usage_inside_of_call.cc:1:6",
"callers": ["2@tests/usage/usage_inside_of_call.cc:12:3"],
"uses": ["tests/usage/usage_inside_of_call.cc:12:3"]
"callers": ["2@tests/usage/usage_inside_of_call.cc:14:3"],
"all_uses": ["tests/usage/usage_inside_of_call.cc:1:6", "tests/usage/usage_inside_of_call.cc:14:3"]
}, {
"id": 1,
"usr": "c:@F@gen#",
"short_name": "gen",
"qualified_name": "gen",
"declaration": "tests/usage/usage_inside_of_call.cc:3:5",
"callers": ["2@tests/usage/usage_inside_of_call.cc:12:14"],
"uses": ["tests/usage/usage_inside_of_call.cc:12:14"]
"callers": ["2@tests/usage/usage_inside_of_call.cc:14:14"],
"all_uses": ["tests/usage/usage_inside_of_call.cc:3:5", "tests/usage/usage_inside_of_call.cc:14:14"]
}, {
"id": 2,
"usr": "c:@F@foo#",

View File

@ -18,14 +18,15 @@ OUTPUT:
"qualified_name": "called",
"definition": "tests/usage/var_usage_call_function.cc:1:6",
"callers": ["1@tests/usage/var_usage_call_function.cc:4:13", "1@tests/usage/var_usage_call_function.cc:7:3"],
"uses": ["tests/usage/var_usage_call_function.cc:4:13", "tests/usage/var_usage_call_function.cc:7:3"]
"all_uses": ["tests/usage/var_usage_call_function.cc:1:6", "tests/usage/var_usage_call_function.cc:4:13", "tests/usage/var_usage_call_function.cc:7:3"]
}, {
"id": 1,
"usr": "c:@F@caller#",
"short_name": "caller",
"qualified_name": "caller",
"definition": "tests/usage/var_usage_call_function.cc:3:6",
"callees": ["0@tests/usage/var_usage_call_function.cc:4:13", "0@tests/usage/var_usage_call_function.cc:7:3"]
"callees": ["0@tests/usage/var_usage_call_function.cc:4:13", "0@tests/usage/var_usage_call_function.cc:7:3"],
"all_uses": ["tests/usage/var_usage_call_function.cc:3:6"]
}],
"variables": [{
"id": 0,
@ -33,8 +34,7 @@ OUTPUT:
"short_name": "x",
"qualified_name": "x",
"declaration": "tests/usage/var_usage_call_function.cc:4:8",
"initializations": ["tests/usage/var_usage_call_function.cc:4:8"],
"uses": ["tests/usage/var_usage_call_function.cc:5:3"]
"all_uses": ["tests/usage/var_usage_call_function.cc:4:8", "tests/usage/var_usage_call_function.cc:5:3"]
}]
}
*/

View File

@ -27,36 +27,31 @@ OUTPUT:
"qualified_name": "Foo",
"definition": "tests/usage/var_usage_class_member.cc:1:7",
"vars": [0, 1],
"uses": ["tests/usage/var_usage_class_member.cc:11:3"]
"all_uses": ["tests/usage/var_usage_class_member.cc:1:7", "tests/usage/var_usage_class_member.cc:11:3"],
"interesting_uses": ["tests/usage/var_usage_class_member.cc:11:3"]
}],
"functions": [{
"id": 0,
"usr": "c:@F@accept#I#",
"short_name": "accept",
"qualified_name": "accept",
"declaration": "tests/usage/var_usage_class_member.cc:7:6",
"callers": ["2@tests/usage/var_usage_class_member.cc:14:3", "2@tests/usage/var_usage_class_member.cc:15:3", "2@tests/usage/var_usage_class_member.cc:17:3"],
"uses": ["tests/usage/var_usage_class_member.cc:14:3", "tests/usage/var_usage_class_member.cc:15:3", "tests/usage/var_usage_class_member.cc:17:3"]
"all_uses": ["tests/usage/var_usage_class_member.cc:7:6", "tests/usage/var_usage_class_member.cc:14:3", "tests/usage/var_usage_class_member.cc:15:3", "tests/usage/var_usage_class_member.cc:17:3"]
}, {
"id": 1,
"usr": "c:@F@accept#*I#",
"short_name": "accept",
"qualified_name": "accept",
"declaration": "tests/usage/var_usage_class_member.cc:8:6",
"callers": ["2@tests/usage/var_usage_class_member.cc:16:3"],
"uses": ["tests/usage/var_usage_class_member.cc:16:3"]
"all_uses": ["tests/usage/var_usage_class_member.cc:8:6", "tests/usage/var_usage_class_member.cc:16:3"]
}, {
"id": 2,
"usr": "c:@F@foo#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/var_usage_class_member.cc:10:6",
"callees": ["3@tests/usage/var_usage_class_member.cc:11:7", "0@tests/usage/var_usage_class_member.cc:14:3", "0@tests/usage/var_usage_class_member.cc:15:3", "1@tests/usage/var_usage_class_member.cc:16:3", "0@tests/usage/var_usage_class_member.cc:17:3"]
}, {
"id": 3,
"usr": "c:@S@Foo@F@Foo#",
"callers": ["2@tests/usage/var_usage_class_member.cc:11:7"],
"uses": ["tests/usage/var_usage_class_member.cc:11:7"]
"callees": ["0@tests/usage/var_usage_class_member.cc:14:3", "0@tests/usage/var_usage_class_member.cc:15:3", "1@tests/usage/var_usage_class_member.cc:16:3", "0@tests/usage/var_usage_class_member.cc:17:3"],
"all_uses": ["tests/usage/var_usage_class_member.cc:10:6"]
}],
"variables": [{
"id": 0,
@ -64,27 +59,24 @@ OUTPUT:
"short_name": "x",
"qualified_name": "Foo::x",
"declaration": "tests/usage/var_usage_class_member.cc:3:7",
"initializations": ["tests/usage/var_usage_class_member.cc:3:7"],
"declaring_type": 0,
"uses": ["tests/usage/var_usage_class_member.cc:12:5", "tests/usage/var_usage_class_member.cc:13:5", "tests/usage/var_usage_class_member.cc:14:12", "tests/usage/var_usage_class_member.cc:15:12", "tests/usage/var_usage_class_member.cc:16:13"]
"all_uses": ["tests/usage/var_usage_class_member.cc:3:7", "tests/usage/var_usage_class_member.cc:12:5", "tests/usage/var_usage_class_member.cc:13:5", "tests/usage/var_usage_class_member.cc:14:12", "tests/usage/var_usage_class_member.cc:15:12", "tests/usage/var_usage_class_member.cc:16:13"]
}, {
"id": 1,
"usr": "c:@S@Foo@FI@y",
"short_name": "y",
"qualified_name": "Foo::y",
"declaration": "tests/usage/var_usage_class_member.cc:4:7",
"initializations": ["tests/usage/var_usage_class_member.cc:4:7"],
"declaring_type": 0,
"uses": ["tests/usage/var_usage_class_member.cc:17:12"]
"all_uses": ["tests/usage/var_usage_class_member.cc:4:7", "tests/usage/var_usage_class_member.cc:17:12"]
}, {
"id": 2,
"usr": "c:var_usage_class_member.cc@105@F@foo#@f",
"short_name": "f",
"qualified_name": "f",
"declaration": "tests/usage/var_usage_class_member.cc:11:7",
"initializations": ["tests/usage/var_usage_class_member.cc:11:7"],
"variable_type": 0,
"uses": ["tests/usage/var_usage_class_member.cc:12:3", "tests/usage/var_usage_class_member.cc:13:3", "tests/usage/var_usage_class_member.cc:14:10", "tests/usage/var_usage_class_member.cc:15:10", "tests/usage/var_usage_class_member.cc:16:11", "tests/usage/var_usage_class_member.cc:17:10"]
"all_uses": ["tests/usage/var_usage_class_member.cc:11:7", "tests/usage/var_usage_class_member.cc:12:3", "tests/usage/var_usage_class_member.cc:13:3", "tests/usage/var_usage_class_member.cc:14:10", "tests/usage/var_usage_class_member.cc:15:10", "tests/usage/var_usage_class_member.cc:16:11", "tests/usage/var_usage_class_member.cc:17:10"]
}]
}
*/

View File

@ -12,7 +12,8 @@ OUTPUT:
"usr": "c:@F@foo#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/var_usage_extern.cc:3:6"
"definition": "tests/usage/var_usage_extern.cc:3:6",
"all_uses": ["tests/usage/var_usage_extern.cc:3:6"]
}],
"variables": [{
"id": 0,
@ -20,7 +21,7 @@ OUTPUT:
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/var_usage_extern.cc:1:12",
"uses": ["tests/usage/var_usage_extern.cc:4:3"]
"all_uses": ["tests/usage/var_usage_extern.cc:1:12", "tests/usage/var_usage_extern.cc:4:3"]
}]
}
*/

View File

@ -10,7 +10,8 @@ OUTPUT:
"usr": "c:@F@foo#I#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/var_usage_func_parameter.cc:1:6"
"definition": "tests/usage/var_usage_func_parameter.cc:1:6",
"all_uses": ["tests/usage/var_usage_func_parameter.cc:1:6"]
}],
"variables": [{
"id": 0,
@ -18,8 +19,7 @@ OUTPUT:
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/var_usage_func_parameter.cc:1:14",
"initializations": ["tests/usage/var_usage_func_parameter.cc:1:14"],
"uses": ["tests/usage/var_usage_func_parameter.cc:2:3"]
"all_uses": ["tests/usage/var_usage_func_parameter.cc:1:14", "tests/usage/var_usage_func_parameter.cc:2:3"]
}]
}
*/

View File

@ -11,7 +11,8 @@ OUTPUT:
"usr": "c:@F@foo#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/var_usage_local.cc:1:6"
"definition": "tests/usage/var_usage_local.cc:1:6",
"all_uses": ["tests/usage/var_usage_local.cc:1:6"]
}],
"variables": [{
"id": 0,
@ -19,8 +20,7 @@ OUTPUT:
"short_name": "x",
"qualified_name": "x",
"declaration": "tests/usage/var_usage_local.cc:2:7",
"initializations": ["tests/usage/var_usage_local.cc:2:7"],
"uses": ["tests/usage/var_usage_local.cc:3:3"]
"all_uses": ["tests/usage/var_usage_local.cc:2:7", "tests/usage/var_usage_local.cc:3:3"]
}]
}
*/

View File

@ -16,7 +16,8 @@ OUTPUT:
"usr": "c:@F@foo#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/var_usage_shadowed_local.cc:1:6"
"definition": "tests/usage/var_usage_shadowed_local.cc:1:6",
"all_uses": ["tests/usage/var_usage_shadowed_local.cc:1:6"]
}],
"variables": [{
"id": 0,
@ -24,16 +25,14 @@ OUTPUT:
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/var_usage_shadowed_local.cc:2:7",
"initializations": ["tests/usage/var_usage_shadowed_local.cc:2:7"],
"uses": ["tests/usage/var_usage_shadowed_local.cc:3:3", "tests/usage/var_usage_shadowed_local.cc:8:3"]
"all_uses": ["tests/usage/var_usage_shadowed_local.cc:2:7", "tests/usage/var_usage_shadowed_local.cc:3:3", "tests/usage/var_usage_shadowed_local.cc:8:3"]
}, {
"id": 1,
"usr": "c:var_usage_shadowed_local.cc@43@F@foo#@a",
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/var_usage_shadowed_local.cc:5:9",
"initializations": ["tests/usage/var_usage_shadowed_local.cc:5:9"],
"uses": ["tests/usage/var_usage_shadowed_local.cc:6:5"]
"all_uses": ["tests/usage/var_usage_shadowed_local.cc:5:9", "tests/usage/var_usage_shadowed_local.cc:6:5"]
}]
}
*/

View File

@ -16,7 +16,8 @@ OUTPUT:
"usr": "c:@F@foo#I#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/var_usage_shadowed_parameter.cc:1:6"
"definition": "tests/usage/var_usage_shadowed_parameter.cc:1:6",
"all_uses": ["tests/usage/var_usage_shadowed_parameter.cc:1:6"]
}],
"variables": [{
"id": 0,
@ -24,16 +25,14 @@ OUTPUT:
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/var_usage_shadowed_parameter.cc:1:14",
"initializations": ["tests/usage/var_usage_shadowed_parameter.cc:1:14"],
"uses": ["tests/usage/var_usage_shadowed_parameter.cc:2:3", "tests/usage/var_usage_shadowed_parameter.cc:7:3"]
"all_uses": ["tests/usage/var_usage_shadowed_parameter.cc:1:14", "tests/usage/var_usage_shadowed_parameter.cc:2:3", "tests/usage/var_usage_shadowed_parameter.cc:7:3"]
}, {
"id": 1,
"usr": "c:var_usage_shadowed_parameter.cc@38@F@foo#I#@a",
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/var_usage_shadowed_parameter.cc:4:9",
"initializations": ["tests/usage/var_usage_shadowed_parameter.cc:4:9"],
"uses": ["tests/usage/var_usage_shadowed_parameter.cc:5:5"]
"all_uses": ["tests/usage/var_usage_shadowed_parameter.cc:4:9", "tests/usage/var_usage_shadowed_parameter.cc:5:5"]
}]
}
*/

View File

@ -13,7 +13,8 @@ OUTPUT:
"usr": "c:@F@foo#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/var_usage_static.cc:3:6"
"definition": "tests/usage/var_usage_static.cc:3:6",
"all_uses": ["tests/usage/var_usage_static.cc:3:6"]
}],
"variables": [{
"id": 0,
@ -21,8 +22,7 @@ OUTPUT:
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/var_usage_static.cc:1:12",
"initializations": ["tests/usage/var_usage_static.cc:1:12"],
"uses": ["tests/usage/var_usage_static.cc:4:3"]
"all_uses": ["tests/usage/var_usage_static.cc:1:12", "tests/usage/var_usage_static.cc:4:3"]
}]
}
*/

View File

@ -11,7 +11,8 @@ OUTPUT:
"qualified_name": "Foo",
"definition": "tests/vars/class_member.cc:1:7",
"vars": [0],
"uses": ["tests/vars/class_member.cc:2:3"]
"all_uses": ["tests/vars/class_member.cc:1:7", "tests/vars/class_member.cc:2:3"],
"interesting_uses": ["tests/vars/class_member.cc:2:3"]
}],
"functions": [],
"variables": [{
@ -20,9 +21,9 @@ OUTPUT:
"short_name": "member",
"qualified_name": "Foo::member",
"declaration": "tests/vars/class_member.cc:2:8",
"initializations": ["tests/vars/class_member.cc:2:8"],
"variable_type": 0,
"declaring_type": 0
"declaring_type": 0,
"all_uses": ["tests/vars/class_member.cc:2:8"]
}]
}
*/

View File

@ -4,6 +4,9 @@ class Foo {
Foo* Foo::member = nullptr;
/*
// TODO: Store both declaration and definition. It is very convenient to
// quickly change between them.
OUTPUT:
{
"types": [{
@ -13,7 +16,8 @@ OUTPUT:
"qualified_name": "Foo",
"definition": "tests/vars/class_static_member.cc:1:7",
"vars": [0],
"uses": ["tests/vars/class_static_member.cc:2:10", "tests/vars/class_static_member.cc:4:1"]
"all_uses": ["tests/vars/class_static_member.cc:1:7", "tests/vars/class_static_member.cc:2:10", "tests/vars/class_static_member.cc:4:1", "tests/vars/class_static_member.cc:4:6"],
"interesting_uses": ["tests/vars/class_static_member.cc:2:10", "tests/vars/class_static_member.cc:4:1"]
}],
"functions": [],
"variables": [{
@ -21,10 +25,10 @@ OUTPUT:
"usr": "c:@S@Foo@member",
"short_name": "member",
"qualified_name": "Foo::member",
"declaration": "tests/vars/class_static_member.cc:2:15",
"initializations": ["tests/vars/class_static_member.cc:4:11"],
"declaration": "tests/vars/class_static_member.cc:4:11",
"variable_type": 0,
"declaring_type": 0
"declaring_type": 0,
"all_uses": ["tests/vars/class_static_member.cc:2:15", "tests/vars/class_static_member.cc:4:11"]
}]
}
*/

View File

@ -10,7 +10,7 @@ OUTPUT:
"short_name": "Foo",
"qualified_name": "Foo",
"definition": "tests/vars/class_static_member_decl_only.cc:1:7",
"vars": [0]
"all_uses": ["tests/vars/class_static_member_decl_only.cc:1:7"]
}],
"functions": [],
"variables": [{
@ -19,7 +19,7 @@ OUTPUT:
"short_name": "member",
"qualified_name": "Foo::member",
"declaration": "tests/vars/class_static_member_decl_only.cc:2:14",
"declaring_type": 0
"all_uses": ["tests/vars/class_static_member_decl_only.cc:2:14"]
}]
}
*/

View File

@ -3,15 +3,15 @@ struct Foo;
void foo() {
Foo* a;
}
/*
// TODO: Make sure usage for Foo is inserted into type section.
/*
OUTPUT:
{
"types": [{
"id": 0,
"usr": "c:@S@Foo",
"all_uses": ["tests/vars/function_local.cc:1:8", "tests/vars/function_local.cc:4:3"]
"all_uses": ["tests/vars/function_local.cc:1:8", "tests/vars/function_local.cc:4:3"],
"interesting_uses": ["tests/vars/function_local.cc:4:3"]
}],
"functions": [{
"id": 0,

View File

@ -1,23 +1,23 @@
struct Foo;
void foo(Foo* p0, Foo* p1) {}
/*
OUTPUT:
{
"types": [{
"id": 0,
"usr": "c:@S@Foo",
"short_name": "Foo",
"qualified_name": "Foo",
"declaration": "tests/vars/function_param.cc:1:8",
"uses": ["tests/vars/function_param.cc:3:10", "tests/vars/function_param.cc:3:19"]
"all_uses": ["tests/vars/function_param.cc:1:8", "tests/vars/function_param.cc:3:10", "tests/vars/function_param.cc:3:19"],
"interesting_uses": ["tests/vars/function_param.cc:3:10", "tests/vars/function_param.cc:3:19"]
}],
"functions": [{
"id": 0,
"usr": "c:@F@foo#*$@S@Foo#S0_#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/vars/function_param.cc:3:6"
"definition": "tests/vars/function_param.cc:3:6",
"all_uses": ["tests/vars/function_param.cc:3:6"]
}],
"variables": [{
"id": 0,
@ -25,16 +25,16 @@ OUTPUT:
"short_name": "p0",
"qualified_name": "p0",
"declaration": "tests/vars/function_param.cc:3:15",
"initializations": ["tests/vars/function_param.cc:3:15"],
"variable_type": 0
"variable_type": 0,
"all_uses": ["tests/vars/function_param.cc:3:15"]
}, {
"id": 1,
"usr": "c:function_param.cc@33@F@foo#*$@S@Foo#S0_#@p1",
"short_name": "p1",
"qualified_name": "p1",
"declaration": "tests/vars/function_param.cc:3:24",
"initializations": ["tests/vars/function_param.cc:3:24"],
"variable_type": 0
"variable_type": 0,
"all_uses": ["tests/vars/function_param.cc:3:24"]
}]
}
*/

View File

@ -8,7 +8,8 @@ OUTPUT:
"usr": "c:@F@foo#I#I#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/vars/function_param_unnamed.cc:1:6"
"definition": "tests/vars/function_param_unnamed.cc:1:6",
"all_uses": ["tests/vars/function_param_unnamed.cc:1:6"]
}],
"variables": []
}

View File

@ -16,7 +16,8 @@ OUTPUT:
"usr": "c:@F@foo#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/vars/function_shadow_local.cc:1:6"
"definition": "tests/vars/function_shadow_local.cc:1:6",
"all_uses": ["tests/vars/function_shadow_local.cc:1:6"]
}],
"variables": [{
"id": 0,
@ -24,16 +25,14 @@ OUTPUT:
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/vars/function_shadow_local.cc:2:7",
"initializations": ["tests/vars/function_shadow_local.cc:2:7"],
"uses": ["tests/vars/function_shadow_local.cc:3:3", "tests/vars/function_shadow_local.cc:8:3"]
"all_uses": ["tests/vars/function_shadow_local.cc:2:7", "tests/vars/function_shadow_local.cc:3:3", "tests/vars/function_shadow_local.cc:8:3"]
}, {
"id": 1,
"usr": "c:function_shadow_local.cc@43@F@foo#@a",
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/vars/function_shadow_local.cc:5:9",
"initializations": ["tests/vars/function_shadow_local.cc:5:9"],
"uses": ["tests/vars/function_shadow_local.cc:6:5"]
"all_uses": ["tests/vars/function_shadow_local.cc:5:9", "tests/vars/function_shadow_local.cc:6:5"]
}]
}
*/

View File

@ -10,7 +10,8 @@ OUTPUT:
"usr": "c:@F@foo#I#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/vars/function_shadow_param.cc:1:6"
"definition": "tests/vars/function_shadow_param.cc:1:6",
"all_uses": ["tests/vars/function_shadow_param.cc:1:6"]
}],
"variables": [{
"id": 0,
@ -18,14 +19,14 @@ OUTPUT:
"short_name": "p",
"qualified_name": "p",
"declaration": "tests/vars/function_shadow_param.cc:1:14",
"initializations": ["tests/vars/function_shadow_param.cc:1:14"]
"all_uses": ["tests/vars/function_shadow_param.cc:1:14"]
}, {
"id": 1,
"usr": "c:function_shadow_param.cc@21@F@foo#I#@p",
"short_name": "p",
"qualified_name": "p",
"declaration": "tests/vars/function_shadow_param.cc:2:7",
"initializations": ["tests/vars/function_shadow_param.cc:2:7"]
"all_uses": ["tests/vars/function_shadow_param.cc:2:7"]
}]
}
*/

View File

@ -10,7 +10,7 @@ OUTPUT:
"short_name": "global",
"qualified_name": "global",
"declaration": "tests/vars/global_variable.cc:1:12",
"initializations": ["tests/vars/global_variable.cc:1:12"]
"all_uses": ["tests/vars/global_variable.cc:1:12"]
}]
}
*/

View File

@ -9,7 +9,8 @@ OUTPUT:
"usr": "c:@global",
"short_name": "global",
"qualified_name": "global",
"declaration": "tests/vars/global_variable_decl_only.cc:1:12"
"declaration": "tests/vars/global_variable_decl_only.cc:1:12",
"all_uses": ["tests/vars/global_variable_decl_only.cc:1:12"]
}]
}
*/