Browse Source

Improve BAD ENUM VALUE message in fmt #1496

gingerBill 3 years ago
parent
commit
21864d8d51
1 changed files with 6 additions and 4 deletions
  1. 6 4
      core/fmt/fmt.odin

+ 6 - 4
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)
 		}
 	}
 }