Commit fa5fcdd734

Andrew Kelley <andrew@ziglang.org>
2021-02-10 06:42:00
zig fmt: fix regression with many container members
1 parent 9d87e6a
Changed files (3)
lib/std/zig/ast.zig
@@ -1409,7 +1409,7 @@ pub const Tree = struct {
         return tree.fullContainerDecl(.{
             .main_token = main_token,
             .enum_token = main_token + 2, // union lparen enum
-            .members = tree.extra_data[data.lhs..data.rhs],
+            .members = tree.extra_data[members_range.start..members_range.end],
             .arg = data.lhs,
         });
     }
lib/std/zig/parse.zig
@@ -3609,10 +3609,7 @@ const Parser = struct {
                                 .main_token = main_token,
                                 .data = .{
                                     .lhs = enum_tag_expr,
-                                    .rhs = try p.addExtra(Node.SubRange{
-                                        .start = members_span.start,
-                                        .end = members_span.end,
-                                    }),
+                                    .rhs = try p.addExtra(members_span),
                                 },
                             });
                         } else {
lib/std/zig/parser_test.zig
@@ -734,23 +734,23 @@ test "zig fmt: while else err prong with no block" {
     );
 }
 
-//test "zig fmt: tagged union with enum values" {
-//    try testCanonical(
-//        \\const MultipleChoice2 = union(enum(u32)) {
-//        \\    Unspecified1: i32,
-//        \\    A: f32 = 20,
-//        \\    Unspecified2: void,
-//        \\    B: bool = 40,
-//        \\    Unspecified3: i32,
-//        \\    C: i8 = 60,
-//        \\    Unspecified4: void,
-//        \\    D: void = 1000,
-//        \\    Unspecified5: i32,
-//        \\};
-//        \\
-//    );
-//}
-//
+test "zig fmt: tagged union with enum values" {
+    try testCanonical(
+        \\const MultipleChoice2 = union(enum(u32)) {
+        \\    Unspecified1: i32,
+        \\    A: f32 = 20,
+        \\    Unspecified2: void,
+        \\    B: bool = 40,
+        \\    Unspecified3: i32,
+        \\    C: i8 = 60,
+        \\    Unspecified4: void,
+        \\    D: void = 1000,
+        \\    Unspecified5: i32,
+        \\};
+        \\
+    );
+}
+
 //test "zig fmt: allowzero pointer" {
 //    try testCanonical(
 //        \\const T = [*]allowzero const u8;