| ... | @@ -366,6 +366,7 @@ pub fn formatType( | ... | @@ -366,6 +366,7 @@ pub fn formatType( |
| 366 | } | 366 | } |
| 367 | | 367 | |
| 368 | // Use @tagName only if value is one of known fields | 368 | // Use @tagName only if value is one of known fields |
| | 369 | @setEvalBranchQuota(3 * enumInfo.fields.len); |
| 369 | inline for (enumInfo.fields) |enumField| { | 370 | inline for (enumInfo.fields) |enumField| { |
| 370 | if (@enumToInt(value) == enumField.value) { | 371 | if (@enumToInt(value) == enumField.value) { |
| 371 | try writer.writeAll("."); | 372 | try writer.writeAll("."); |
| ... | @@ -1321,6 +1322,9 @@ test "enum" { | ... | @@ -1321,6 +1322,9 @@ test "enum" { |
| 1321 | try testFmt("enum: Enum.Two\n", "enum: {}\n", .{&value}); | 1322 | try testFmt("enum: Enum.Two\n", "enum: {}\n", .{&value}); |
| 1322 | try testFmt("enum: Enum.One\n", "enum: {x}\n", .{Enum.One}); | 1323 | try testFmt("enum: Enum.One\n", "enum: {x}\n", .{Enum.One}); |
| 1323 | try testFmt("enum: Enum.Two\n", "enum: {X}\n", .{Enum.Two}); | 1324 | try testFmt("enum: Enum.Two\n", "enum: {X}\n", .{Enum.Two}); |
| | 1325 | |
| | 1326 | // test very large enum to verify ct branch quota is large enough |
| | 1327 | try testFmt("enum: Win32Error.INVALID_FUNCTION\n", "enum: {}\n", .{std.os.windows.Win32Error.INVALID_FUNCTION}); |
| 1324 | } | 1328 | } |
| 1325 | | 1329 | |
| 1326 | test "non-exhaustive enum" { | 1330 | test "non-exhaustive enum" { |