Commit 515d4920e7
Changed files (2)
lib
std
lib/std/zig/ast.zig
@@ -796,8 +796,11 @@ pub const Tree = struct {
.StructInitOne,
=> {
end_offset += 1; // rbrace
- n = datas[n].rhs;
- assert(n != 0);
+ if (datas[n].rhs == 0) {
+ return main_tokens[n] + end_offset;
+ } else {
+ n = datas[n].rhs;
+ }
},
.SliceOpen,
.CallOneComma,
lib/std/zig/parser_test.zig
@@ -464,6 +464,15 @@ test "zig fmt: anon literal in array" {
// );
//}
+test "zig fmt: anon struct literal 0 element" {
+ try testCanonical(
+ \\test {
+ \\ const x = .{};
+ \\}
+ \\
+ );
+}
+
test "zig fmt: anon struct literal 1 element" {
try testCanonical(
\\test {
@@ -527,6 +536,15 @@ test "zig fmt: anon struct literal 3 element comma" {
);
}
+test "zig fmt: struct literal 0 element" {
+ try testCanonical(
+ \\test {
+ \\ const x = X{};
+ \\}
+ \\
+ );
+}
+
test "zig fmt: struct literal 1 element" {
try testCanonical(
\\test {
@@ -653,6 +671,15 @@ test "zig fmt: anon list literal 3 element comma" {
);
}
+test "zig fmt: array literal 0 element" {
+ try testCanonical(
+ \\test {
+ \\ const x = [_]u32{};
+ \\}
+ \\
+ );
+}
+
test "zig fmt: array literal 1 element" {
try testCanonical(
\\test {