struct Wrapper { Wrapper(int i); }; int called() { return 1; } Wrapper caller() { return called(); } /* OUTPUT: { "types": [{ "id": 0, "usr": "c:@S@Wrapper", "short_name": "Wrapper", "detailed_name": "Wrapper", "definition_spelling": "1:8-1:15", "definition_extent": "1:1-3:2", "funcs": [0], "uses": ["1:8-1:15", "2:3-2:10", "7:1-7:8"] }], "funcs": [{ "id": 0, "usr": "c:@S@Wrapper@F@Wrapper#I#", "short_name": "Wrapper", "detailed_name": "void Wrapper::Wrapper(int)", "declarations": ["2:3-2:10"], "declaring_type": 0, "callers": ["~2@8:10-8:16"] }, { "id": 1, "usr": "c:@F@called#", "short_name": "called", "detailed_name": "int called()", "definition_spelling": "5:5-5:11", "definition_extent": "5:1-5:27", "callers": ["2@8:10-8:16"] }, { "id": 2, "usr": "c:@F@caller#", "short_name": "caller", "detailed_name": "Wrapper caller()", "definition_spelling": "7:9-7:15", "definition_extent": "7:1-9:2", "callees": ["~0@8:10-8:16", "1@8:10-8:16"] }] } */