diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index a4df1f4dfcb..c4a65e5a9b8 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -281,7 +281,15 @@ class DartGenerator : public BaseGenerator { enum_type + "Reader();\n\n"; code += " @override\n"; code += " String toString() {\n"; - code += " return '" + enum_type + "{value: $value}';\n"; + code += " switch (value) {\n"; + for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { + auto &ev = **it; + const auto enum_var = namer_.Variant(ev); + code += " case " + enum_def.ToString(ev) + ": return \"" + enum_var + + "\";\n"; + } + code += " default: return \"\";\n"; + code += " }\n"; code += " }\n"; code += "}\n\n";