From 758f6228f48c0f94b60976f23c48b405d16135ff Mon Sep 17 00:00:00 2001 From: hryx Date: Fri, 5 Jul 2019 00:36:34 -0700 Subject: [PATCH] Prevent unreachable when file ends with struct field --- std/zig/parser_test.zig | 9 +++++++++ std/zig/render.zig | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/std/zig/parser_test.zig b/std/zig/parser_test.zig index f78e666779d8..e22d7d424d6d 100644 --- a/std/zig/parser_test.zig +++ b/std/zig/parser_test.zig @@ -2246,6 +2246,15 @@ test "zig fmt: if type expr" { ); } +test "zig fmt: file ends with struct field" { + try testTransform( + \\a: bool + , + \\a: bool, + \\ + ); +} + const std = @import("std"); const mem = std.mem; const warn = std.debug.warn; diff --git a/std/zig/render.zig b/std/zig/render.zig index 2e8e4481bea5..b717607e8a1b 100644 --- a/std/zig/render.zig +++ b/std/zig/render.zig @@ -1898,7 +1898,7 @@ fn renderTokenOffset( return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline); }, else => { - if (tree.tokens.at(token_index + 2).id == Token.Id.MultilineStringLiteralLine) { + if (token_index + 2 < tree.tokens.len and tree.tokens.at(token_index + 2).id == Token.Id.MultilineStringLiteralLine) { try stream.write(","); return; } else {