This commit is contained in:
Jacob Dufault 2017-02-19 01:17:37 -08:00
parent e637de145a
commit 161aab3a09
2 changed files with 78 additions and 8 deletions

View File

@ -588,13 +588,6 @@ void Dump(clang::Cursor cursor) {
// TODO: See if we can improve type usage reporting, for example
// void foo() {
// Foo x;
// }
// The usage on |Foo| will be reported at the |x| variable location. We should
// report it at the start of |Foo| instead.
void InsertTypeUsageAtLocation(ParsingDatabase* db, clang::Type type, const clang::SourceLocation& location) {
clang::Type raw_type = type.strip_qualifiers();
@ -1160,4 +1153,4 @@ int main(int argc, char** argv) {
return 0;
}
// TODO: ctor/dtor, copy ctor
// TODO: ctor/dtor, copy ctor, class inheritance, method inheritance

View File

@ -0,0 +1,77 @@
void called(int a);
int gen();
struct Foo {
static int static_var;
int field_var;
};
void foo() {
int a = 5;
called(a + gen() + Foo().field_var + Foo::static_var);
}
/*
OUTPUT:
{
"types": [{
"id": 0,
"usr": "c:@S@Foo",
"short_name": "Foo",
"qualified_name": "Foo",
"definition": "tests/usage/usage_inside_of_call.cc:5:8",
"vars": [0, 1]
}],
"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"]
}, {
"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"]
}, {
"id": 2,
"usr": "c:@F@foo#",
"short_name": "foo",
"qualified_name": "foo",
"definition": "tests/usage/usage_inside_of_call.cc:10:6",
"callees": ["0@tests/usage/usage_inside_of_call.cc:12:3", "1@tests/usage/usage_inside_of_call.cc:12:14"]
}],
"variables": [{
"id": 0,
"usr": "c:@S@Foo@static_var",
"short_name": "static_var",
"qualified_name": "Foo::static_var",
"declaration": "tests/usage/usage_inside_of_call.cc:6:14",
"declaring_type": 0,
"uses": ["tests/usage/usage_inside_of_call.cc:12:45"]
}, {
"id": 1,
"usr": "c:@S@Foo@FI@field_var",
"short_name": "field_var",
"qualified_name": "Foo::field_var",
"declaration": "tests/usage/usage_inside_of_call.cc:7:7",
"initializations": ["tests/usage/usage_inside_of_call.cc:7:7"],
"declaring_type": 0,
"uses": ["tests/usage/usage_inside_of_call.cc:12:28"]
}, {
"id": 2,
"usr": "c:usage_inside_of_call.cc@117@F@foo#@a",
"short_name": "a",
"qualified_name": "a",
"declaration": "tests/usage/usage_inside_of_call.cc:11:7",
"initializations": ["tests/usage/usage_inside_of_call.cc:11:7"],
"uses": ["tests/usage/usage_inside_of_call.cc:12:10"]
}]
}
*/