authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-05-25 01:52:59-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-05-25 01:52:59-04:00
log3f302f841136ebbcc4da0707fff6faaac4c03e55
treeb950009368ff8be27359ece474602b7455578292
parent000c01a36aeef162d743ebf4bd8ee67380f26672

handle more cases of inserting trailing commas


1 files changed, 13 insertions(+), 7 deletions(-)

std/zig/render.zig+13-7
......@@ -449,13 +449,16 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
449449 var it = field_inits.iterator(0);
450450 while (it.next()) |field_init| {
451451 try stream.writeByteNTimes(' ', new_indent);
452 try renderExpression(allocator, stream, tree, new_indent, field_init.*, Space.None);
453
454 const comma = tree.nextToken(field_init.*.lastToken());
455 try renderToken(tree, stream, comma, new_indent, Space.Newline);
456452
457453 if (it.peek()) |next_field_init| {
454 try renderExpression(allocator, stream, tree, new_indent, field_init.*, Space.None);
455
456 const comma = tree.nextToken(field_init.*.lastToken());
457 try renderToken(tree, stream, comma, new_indent, Space.Newline);
458
458459 try renderExtraNewline(tree, stream, next_field_init.*);
460 } else {
461 try renderTrailingComma(allocator, stream, tree, new_indent, field_init.*, Space.Newline);
459462 }
460463 }
461464
......@@ -499,7 +502,7 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
499502
500503 try renderExtraNewline(tree, stream, next_expr.*);
501504 } else {
502 try renderTrailingComma(allocator, stream, tree, indent, expr.*, Space.Newline);
505 try renderTrailingComma(allocator, stream, tree, new_indent, expr.*, Space.Newline);
503506 }
504507 }
505508
......@@ -743,11 +746,14 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
743746 var it = err_set_decl.decls.iterator(0);
744747 while (it.next()) |node| {
745748 try stream.writeByteNTimes(' ', new_indent);
746 try renderExpression(allocator, stream, tree, new_indent, node.*, Space.None);
747 try renderToken(tree, stream, tree.nextToken(node.*.lastToken()), new_indent, Space.Newline); // ,
748749
749750 if (it.peek()) |next_node| {
751 try renderExpression(allocator, stream, tree, new_indent, node.*, Space.None);
752 try renderToken(tree, stream, tree.nextToken(node.*.lastToken()), new_indent, Space.Newline); // ,
753
750754 try renderExtraNewline(tree, stream, next_node.*);
755 } else {
756 try renderTrailingComma(allocator, stream, tree, new_indent, node.*, Space.Newline);
751757 }
752758 }
753759