diff --git a/core/fmt/fmt.odin b/core/fmt/fmt.odin index 932fc0bb8..360a00b32 100644 --- a/core/fmt/fmt.odin +++ b/core/fmt/fmt.odin @@ -1065,11 +1065,13 @@ fmt_enum :: proc(fi: ^Info, v: any, verb: rune) { case 'i', 'd', 'f': fmt_arg(fi, any{v.data, runtime.type_info_base(e.base).id}, verb) case 's', 'v': - str, ok := enum_value_to_string(v) - if !ok { - str = "%!(BAD ENUM VALUE)" + if str, ok := enum_value_to_string(v); ok { + io.write_string(fi.writer, str) + } else { + io.write_string(fi.writer, "%!(BAD ENUM VALUE=") + fmt_arg(fi, any{v.data, runtime.type_info_base(e.base).id}, 'i') + io.write_string(fi.writer, ")") } - io.write_string(fi.writer, str) } } }