authorgravatar for timonkruiper@gmail.comTimon Kruiper <timonkruiper@gmail.com> 2019-06-14 17:05:16+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-07-23 14:51:30-04:00
log59850c1ce12a325c8602d9201ab4a62ce12865bc
tree98eb155a0df61675ce55d20eb5ef43167a1cd7a6
parent57aa8997bd0b651d56a22efee46598fff167253d

Fixed an integer overflow in zig fmt and added testcase


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

std/zig/parser_test.zig+26
......@@ -2267,6 +2267,32 @@ test "zig fmt: file ends with struct field" {
22672267 );
22682268}
22692269
2270test "zig fmt: comments at several places in struct init" {
2271 try testTransform(
2272 \\var bar = Bar{
2273 \\ .x = 10, // test
2274 \\ .y = "test"
2275 \\ // test
2276 \\};
2277 \\
2278 ,
2279 \\var bar = Bar{
2280 \\ .x = 10, // test
2281 \\ .y = "test", // test
2282 \\};
2283 \\
2284 );
2285
2286 try testCanonical(
2287 \\var bar = Bar{ // test
2288 \\ .x = 10, // test
2289 \\ .y = "test",
2290 \\ // test
2291 \\};
2292 \\
2293 );
2294}
2295
22702296const std = @import("std");
22712297const mem = std.mem;
22722298const warn = std.debug.warn;
std/zig/render.zig+7-1
......@@ -2020,7 +2020,13 @@ fn renderTokenOffset(
20202020
20212021 const after_comment_token = tree.tokens.at(token_index + offset);
20222022 const next_line_indent = switch (after_comment_token.id) {
2023 Token.Id.RParen, Token.Id.RBrace, Token.Id.RBracket => indent - indent_delta,
2023 Token.Id.RParen, Token.Id.RBrace, Token.Id.RBracket => blk: {
2024 if (indent > indent_delta) {
2025 break :blk indent - indent_delta;
2026 } else {
2027 break :blk 0;
2028 }
2029 },
20242030 else => indent,
20252031 };
20262032 try stream.writeByteNTimes(' ', next_line_indent);