authorgravatar for johnnymarler@gmail.comJonathan Marler <johnnymarler@gmail.com> 2020-07-01 23:04:05-06:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-07-05 22:27:50+00:00
log27c1e0b453d50f8c242fd1153290a00b74dff018
treef847c3c7a641324fb05a8501ba4b83daa0d26889
parentdcca5cf1a9241e7274ae03a587b7e3313d673f3e

Fix issue 5757: increase branch quota for formatting enums


1 files changed, 4 insertions(+), 0 deletions(-)

lib/std/fmt.zig+4
...@@ -366,6 +366,7 @@ pub fn formatType(...@@ -366,6 +366,7 @@ pub fn formatType(
366 }366 }
367367
368 // Use @tagName only if value is one of known fields368 // 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}
13251329
1326test "non-exhaustive enum" {1330test "non-exhaustive enum" {