mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-18 20:58:56 +00:00
Fix issues with uint64 enums (#5265)
* Fix issues with uint64 enums - hide the implementation of enums from code generators - fix uint64 the issue in the cpp-generator - fix #5108 - new tests - enums with bit_flags attribute should be unsigned * Refine objectives of EnumDef's FindByValue and ReverseLookup methods - move EnumDef::ReverseLookup implementation to idl_parser.cpp - fix typos * Make the IsUInt64 method private
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
6cc30b3272
commit
b8ef8c1521
@@ -359,13 +359,13 @@ class JsTsGenerator : public BaseGenerator {
|
||||
|
||||
// Generate mapping between EnumName: EnumValue(int)
|
||||
if (reverse) {
|
||||
code += " " + NumToString(ev.value);
|
||||
code += " " + enum_def.ToString(ev);
|
||||
code += lang_.language == IDLOptions::kTs ? "= " : ": ";
|
||||
code += "'" + ev.name + "'";
|
||||
} else {
|
||||
code += " " + ev.name;
|
||||
code += lang_.language == IDLOptions::kTs ? "= " : ": ";
|
||||
code += NumToString(ev.value);
|
||||
code += enum_def.ToString(ev);
|
||||
}
|
||||
|
||||
code += (it + 1) != enum_def.Vals().end() ? ",\n" : "\n";
|
||||
@@ -431,8 +431,7 @@ class JsTsGenerator : public BaseGenerator {
|
||||
|
||||
std::string GenDefaultValue(const Value &value, const std::string &context) {
|
||||
if (value.type.enum_def) {
|
||||
if (auto val = value.type.enum_def->ReverseLookup(
|
||||
StringToInt(value.constant.c_str()), false)) {
|
||||
if (auto val = value.type.enum_def->FindByValue(value.constant)) {
|
||||
if (lang_.language == IDLOptions::kTs) {
|
||||
return GenPrefixedTypeName(WrapInNameSpace(*value.type.enum_def),
|
||||
value.type.enum_def->file) +
|
||||
|
||||
Reference in New Issue
Block a user