| 779 | } |
| 780 | |
| 781 | CheckedError Parser::ParseTypeIdent(Type &type) { |
| 782 | std::string id = attribute_; |
| 783 | EXPECT(kTokenIdentifier); |
| 784 | ECHECK(ParseNamespacing(&id, nullptr)); |
| 785 | auto enum_def = LookupEnum(id); |
| 786 | if (enum_def) { |
| 787 | type = enum_def->underlying_type; |
| 788 | if (enum_def->is_union) type.base_type = BASE_TYPE_UNION; |
| 789 | } else { |
| 790 | type.base_type = BASE_TYPE_STRUCT; |
| 791 | type.struct_def = LookupCreateStruct(id); |
| 792 | } |
| 793 | return NoError(); |
| 794 | } |
| 795 | |
| 796 | // Parse any IDL type. |
| 797 | CheckedError Parser::ParseType(Type &type) { |
nothing calls this directly
no test coverage detected