| ... | ... | @@ -2048,29 +2048,38 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { |
| 2048 | 2048 | } |
| 2049 | 2049 | _ = try c.addToken(.r_brace, "}"); |
| 2050 | 2050 | |
| 2051 | | if (payload.inits.len < 2) { |
| 2052 | | return c.addNode(.{ |
| 2053 | | .tag = .struct_init_one_comma, |
| 2051 | return switch (payload.inits.len) { |
| 2052 | 0 => c.addNode(.{ |
| 2053 | .tag = .struct_init_one, |
| 2054 | 2054 | .main_token = l_brace, |
| 2055 | 2055 | .data = .{ |
| 2056 | 2056 | .lhs = lhs, |
| 2057 | | .rhs = inits[0], |
| 2057 | .rhs = 0, |
| 2058 | 2058 | }, |
| 2059 | | }); |
| 2060 | | } else { |
| 2061 | | const span = try c.listToSpan(inits); |
| 2062 | | return c.addNode(.{ |
| 2063 | | .tag = .struct_init_comma, |
| 2059 | }), |
| 2060 | 1 => c.addNode(.{ |
| 2061 | .tag = .struct_init_one_comma, |
| 2064 | 2062 | .main_token = l_brace, |
| 2065 | 2063 | .data = .{ |
| 2066 | 2064 | .lhs = lhs, |
| 2067 | | .rhs = try c.addExtra(NodeSubRange{ |
| 2068 | | .start = span.start, |
| 2069 | | .end = span.end, |
| 2070 | | }), |
| 2065 | .rhs = inits[0], |
| 2071 | 2066 | }, |
| 2072 | | }); |
| 2073 | | } |
| 2067 | }), |
| 2068 | else => blk: { |
| 2069 | const span = try c.listToSpan(inits); |
| 2070 | break :blk c.addNode(.{ |
| 2071 | .tag = .struct_init_comma, |
| 2072 | .main_token = l_brace, |
| 2073 | .data = .{ |
| 2074 | .lhs = lhs, |
| 2075 | .rhs = try c.addExtra(NodeSubRange{ |
| 2076 | .start = span.start, |
| 2077 | .end = span.end, |
| 2078 | }), |
| 2079 | }, |
| 2080 | }); |
| 2081 | }, |
| 2082 | }; |
| 2074 | 2083 | }, |
| 2075 | 2084 | .@"anytype" => unreachable, // Handled in renderParams |
| 2076 | 2085 | } |