struct Wrapper { Wrapper(int i); }; int called() { return 1; } Wrapper caller() { return called(); } /* OUTPUT: { "types": [{ "id": 0, "usr": "c:@S@Wrapper", "short_name": "Wrapper", "qualified_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", "qualified_name": "Wrapper::Wrapper", "declarations": ["2:3-2:10"], "declaring_type": 0, "callers": ["2@8:10-8:16"], "uses": ["2:3-2:10", "8:10-8:16"] }, { "id": 1, "usr": "c:@F@called#", "short_name": "called", "qualified_name": "called", "definition_spelling": "5:5-5:11", "definition_extent": "5:1-5:27", "callers": ["2@8:10-8:16"], "uses": ["5:5-5:11", "8:10-8:16"] }, { "id": 2, "usr": "c:@F@caller#", "short_name": "caller", "qualified_name": "caller", "definition_spelling": "7:9-7:15", "definition_extent": "7:1-9:2", "callees": ["0@8:10-8:16", "1@8:10-8:16"], "uses": ["7:9-7:15"] }] } */