enum Foo : int {
  A,
  B = 20
};

typedef int int32_t;

enum class E : int32_t {
  E0,
  E20 = 20
};

/*
OUTPUT:
{
  "includes": [],
  "skipped_by_preprocessor": [],
  "types": [{
      "id": 0,
      "usr": 16985894625255407295,
      "detailed_name": "Foo",
      "short_name": "Foo",
      "kind": 10,
      "declarations": [],
      "spell": "1:6-1:9|-1|1|2",
      "extent": "1:1-4:2|-1|1|0",
      "bases": [],
      "derived": [],
      "types": [],
      "funcs": [],
      "vars": [],
      "instances": [],
      "uses": []
    }, {
      "id": 1,
      "usr": 17,
      "detailed_name": "",
      "short_name": "",
      "kind": 0,
      "declarations": [],
      "bases": [],
      "derived": [],
      "types": [],
      "funcs": [],
      "vars": [],
      "instances": [],
      "uses": []
    }, {
      "id": 2,
      "usr": 14939241684006947339,
      "detailed_name": "int32_t",
      "short_name": "int32_t",
      "kind": 252,
      "hover": "typedef int int32_t",
      "declarations": [],
      "spell": "6:13-6:20|-1|1|2",
      "extent": "6:1-6:20|-1|1|0",
      "alias_of": 1,
      "bases": [],
      "derived": [],
      "types": [],
      "funcs": [],
      "vars": [],
      "instances": [],
      "uses": ["6:13-6:20|-1|1|4", "8:12-8:13|-1|1|4"]
    }, {
      "id": 3,
      "usr": 2986879766914123941,
      "detailed_name": "E",
      "short_name": "E",
      "kind": 10,
      "declarations": [],
      "spell": "8:12-8:13|-1|1|2",
      "extent": "8:1-11:2|-1|1|0",
      "bases": [],
      "derived": [],
      "types": [],
      "funcs": [],
      "vars": [],
      "instances": [],
      "uses": []
    }],
  "funcs": [],
  "vars": [{
      "id": 0,
      "usr": 439339022761937396,
      "detailed_name": "Foo::A",
      "short_name": "A",
      "hover": "Foo::A = 0",
      "declarations": [],
      "spell": "2:3-2:4|0|2|2",
      "extent": "2:3-2:4|0|2|0",
      "type": 0,
      "uses": [],
      "kind": 22,
      "storage": 0
    }, {
      "id": 1,
      "usr": 15962370213938840720,
      "detailed_name": "Foo::B",
      "short_name": "B",
      "hover": "Foo::B = 20",
      "declarations": [],
      "spell": "3:3-3:4|0|2|2",
      "extent": "3:3-3:9|0|2|0",
      "type": 0,
      "uses": [],
      "kind": 22,
      "storage": 0
    }, {
      "id": 2,
      "usr": 16614320383091394267,
      "detailed_name": "E::E0",
      "short_name": "E0",
      "hover": "E::E0 = 0",
      "declarations": [],
      "spell": "9:3-9:5|3|2|2",
      "extent": "9:3-9:5|3|2|0",
      "type": 3,
      "uses": [],
      "kind": 22,
      "storage": 0
    }, {
      "id": 3,
      "usr": 16847439761518576294,
      "detailed_name": "E::E20",
      "short_name": "E20",
      "hover": "E::E20 = 20",
      "declarations": [],
      "spell": "10:3-10:6|3|2|2",
      "extent": "10:3-10:11|3|2|0",
      "type": 3,
      "uses": [],
      "kind": 22,
      "storage": 0
    }]
}
*/