@@ -557,11 +557,11 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
557
557
};
558
558
559
559
560
- const new_indent = indent + indent_delta ;
561
- try renderToken (tree , stream , lbrace , new_indent , Space .Newline );
562
- try stream .writeByteNTimes (' ' , new_indent );
563
-
564
560
if (maybe_row_size ) | row_size | {
561
+ const new_indent = indent + indent_delta ;
562
+ try renderToken (tree , stream , lbrace , new_indent , Space .Newline );
563
+ try stream .writeByteNTimes (' ' , new_indent );
564
+
565
565
var it = exprs .iterator (0 );
566
566
var i : usize = 0 ;
567
567
while (it .next ()) | expr | {
@@ -597,6 +597,30 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
597
597
return ;
598
598
}
599
599
600
+ const src_has_trailing_comma = blk : {
601
+ const maybe_comma = tree .prevToken (suffix_op .rtoken );
602
+ break :blk tree .tokens .at (maybe_comma ).id == Token .Id .Comma ;
603
+ };
604
+ if (! src_has_trailing_comma ) {
605
+ try renderToken (tree , stream , lbrace , indent , Space .Space );
606
+ var it = exprs .iterator (0 );
607
+ while (it .next ()) | expr | {
608
+ try renderExpression (allocator , stream , tree , indent , expr .* , Space .None );
609
+
610
+ if (it .peek ()) | next_expr | {
611
+ const comma = tree .nextToken (expr .* .lastToken ());
612
+ try renderToken (tree , stream , comma , indent , Space .Space ); // ,
613
+ }
614
+ }
615
+
616
+ try renderToken (tree , stream , suffix_op .rtoken , indent , space );
617
+ return ;
618
+ }
619
+
620
+ const new_indent = indent + indent_delta ;
621
+ try renderToken (tree , stream , lbrace , new_indent , Space .Newline );
622
+ try stream .writeByteNTimes (' ' , new_indent );
623
+
600
624
var it = exprs .iterator (0 );
601
625
while (it .next ()) | expr | {
602
626
0 commit comments