From da0c986c823a0e03734e8b8a6931951a9a52cf4c Mon Sep 17 00:00:00 2001 From: fawdlstty Date: Fri, 15 Mar 2024 20:45:17 +0800 Subject: [PATCH] [dart] fix toString() method generated for enum value --- src/idl_gen_dart.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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";