authorgravatar for codroid@gmail.comhryx <codroid@gmail.com> 2019-07-05 00:36:34-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-07-06 13:09:07-04:00
log7f618184ade7f5fbe906973e3ca79924fd196641
tree80d1e8196dce1c926105c58e9855e3e301059bfb
parent9471f16c799e0cc60a3d6465cc3bee0a13bd5617

Prevent unreachable when file ends with struct field


2 files changed, 10 insertions(+), 1 deletions(-)

std/zig/parser_test.zig+9
...@@ -2258,6 +2258,15 @@ test "zig fmt: if type expr" {...@@ -2258,6 +2258,15 @@ test "zig fmt: if type expr" {
2258 );2258 );
2259}2259}
22602260
2261test "zig fmt: file ends with struct field" {
2262 try testTransform(
2263 \\a: bool
2264 ,
2265 \\a: bool,
2266 \\
2267 );
2268}
2269
2261const std = @import("std");2270const std = @import("std");
2262const mem = std.mem;2271const mem = std.mem;
2263const warn = std.debug.warn;2272const warn = std.debug.warn;
std/zig/render.zig+1-1
...@@ -1899,7 +1899,7 @@ fn renderTokenOffset(...@@ -1899,7 +1899,7 @@ fn renderTokenOffset(
1899 return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline);1899 return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline);
1900 },1900 },
1901 else => {1901 else => {
1902 if (tree.tokens.at(token_index + 2).id == Token.Id.MultilineStringLiteralLine) {1902 if (token_index + 2 < tree.tokens.len and tree.tokens.at(token_index + 2).id == Token.Id.MultilineStringLiteralLine) {
1903 try stream.write(",");1903 try stream.write(",");
1904 return;1904 return;
1905 } else {1905 } else {