ccls/tests/templates/func_specialized_template_param.cc

49 lines
1.2 KiB
C++
Raw Normal View History

template<class T>
class Template {};
struct Foo {
void Bar(Template<double>&);
};
void Foo::Bar(Template<double>&) {}
/*
OUTPUT:
{
"types": [{
"id": 0,
"usr": "c:@ST>1#T@Template",
"short_name": "Template",
"detailed_name": "Template",
2017-04-05 08:29:15 +00:00
"definition_spelling": "2:7-2:15",
"definition_extent": "2:1-2:18",
2017-04-19 04:58:39 +00:00
"uses": ["2:7-2:15", "5:12-5:20", "8:15-8:23"]
}, {
"id": 1,
"usr": "c:@S@Foo",
"short_name": "Foo",
"detailed_name": "Foo",
2017-04-05 08:29:15 +00:00
"definition_spelling": "4:8-4:11",
"definition_extent": "4:1-6:2",
"funcs": [0],
2017-04-19 04:58:39 +00:00
"uses": ["4:8-4:11", "8:6-8:9"]
}],
2017-03-07 18:17:49 +00:00
"funcs": [{
"id": 0,
"usr": "c:@S@Foo@F@Bar#&$@S@Template>#d#",
"short_name": "Bar",
"detailed_name": "void Foo::Bar(Template<double> &)",
"parameter_type_descriptions": ["Template<double> &"],
"declarations": [{
"spelling": "5:8-5:11",
"extent": "5:3-5:30",
"content": "void Bar(Template<double>&)",
"param_spellings": ["5:29-5:29"]
}],
2017-04-05 08:29:15 +00:00
"definition_spelling": "8:11-8:14",
"definition_extent": "8:1-8:36",
"declaring_type": 1
2017-03-07 18:17:49 +00:00
}]
}
2017-03-07 18:17:49 +00:00
*/