ccls/tests/macros/foo.cc
2017-12-01 17:07:03 -08:00

66 lines
1.5 KiB
C++

#define A 5
#define DISALLOW(type) type(type&&) = delete;
struct Foo {
DISALLOW(Foo);
};
int x = A;
/*
OUTPUT:
{
"types": [{
"id": 0,
"usr": "c:@S@Foo",
"short_name": "Foo",
"detailed_name": "Foo",
"definition_spelling": "4:8-4:11",
"definition_extent": "4:1-6:2",
"funcs": [0],
"uses": ["4:8-4:11", "5:12-5:15"]
}],
"funcs": [{
"id": 0,
"is_operator": false,
"usr": "c:@S@Foo@F@Foo#&&$@S@Foo#",
"short_name": "Foo",
"detailed_name": "void Foo::Foo(Foo &&)",
"definition_spelling": "5:12-5:15",
"definition_extent": "5:12-5:16",
"declaring_type": 0
}],
"vars": [{
"id": 0,
"usr": "c:@x",
"short_name": "x",
"detailed_name": "int x",
"definition_spelling": "8:5-8:6",
"definition_extent": "8:1-8:10",
"is_local": false,
"is_macro": false,
"uses": ["8:5-8:6"]
}, {
"id": 1,
"usr": "c:foo.cc@8@macro@A",
"short_name": "A",
"detailed_name": "A",
"definition_spelling": "1:9-1:10",
"definition_extent": "1:9-1:12",
"is_local": false,
"is_macro": true,
"uses": ["1:9-1:10", "8:9-8:10"]
}, {
"id": 2,
"usr": "c:foo.cc@21@macro@DISALLOW",
"short_name": "DISALLOW",
"detailed_name": "DISALLOW",
"definition_spelling": "2:9-2:17",
"definition_extent": "2:9-2:46",
"is_local": false,
"is_macro": true,
"uses": ["2:9-2:17", "5:3-5:11"]
}]
}
*/