ccls/index_tests/unions/union_usage.cc
2018-03-30 22:02:26 -07:00

121 lines
2.4 KiB
C++

union Foo {
int a : 5;
bool b : 3;
};
Foo f;
void act(Foo*) {
f.a = 3;
}
/*
// TODO: instantiations on Foo should include parameter?
OUTPUT:
{
"includes": [],
"skipped_by_preprocessor": [],
"types": [{
"id": 0,
"usr": 8501689086387244262,
"detailed_name": "Foo",
"short_name": "Foo",
"kind": 23,
"declarations": [],
"spell": "1:7-1:10|-1|1|2",
"extent": "1:1-4:2|-1|1|0",
"bases": [],
"derived": [],
"types": [],
"funcs": [],
"vars": [0, 1],
"instances": [2],
"uses": ["6:1-6:4|-1|1|4", "8:10-8:13|-1|1|4"]
}, {
"id": 1,
"usr": 17,
"detailed_name": "",
"short_name": "",
"kind": 0,
"declarations": [],
"bases": [],
"derived": [],
"types": [],
"funcs": [],
"vars": [],
"instances": [0],
"uses": []
}, {
"id": 2,
"usr": 3,
"detailed_name": "",
"short_name": "",
"kind": 0,
"declarations": [],
"bases": [],
"derived": [],
"types": [],
"funcs": [],
"vars": [],
"instances": [1],
"uses": []
}],
"funcs": [{
"id": 0,
"usr": 13982179977217945200,
"detailed_name": "void act(Foo *)",
"short_name": "act",
"kind": 12,
"storage": 1,
"declarations": [],
"spell": "8:6-8:9|-1|1|2",
"extent": "8:1-10:2|-1|1|0",
"bases": [],
"derived": [],
"vars": [],
"uses": [],
"callees": []
}],
"vars": [{
"id": 0,
"usr": 9529311430721959843,
"detailed_name": "int Foo::a",
"short_name": "a",
"hover": "int Foo::a : 5",
"declarations": [],
"spell": "2:7-2:8|0|2|2",
"extent": "2:3-2:12|0|2|0",
"type": 1,
"uses": ["9:5-9:6|0|3|4"],
"kind": 8,
"storage": 0
}, {
"id": 1,
"usr": 8804696910588009104,
"detailed_name": "bool Foo::b",
"short_name": "b",
"hover": "bool Foo::b : 3",
"declarations": [],
"spell": "3:8-3:9|0|2|2",
"extent": "3:3-3:13|0|2|0",
"type": 2,
"uses": [],
"kind": 8,
"storage": 0
}, {
"id": 2,
"usr": 2933643612409209903,
"detailed_name": "Foo f",
"short_name": "f",
"declarations": [],
"spell": "6:5-6:6|-1|1|2",
"extent": "6:1-6:6|-1|1|0",
"type": 0,
"uses": ["9:3-9:4|0|3|4"],
"kind": 13,
"storage": 1
}]
}
*/