aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-02-09 22:42:00 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-02-09 22:42:00 -0700
commitfa5fcdd7343b8e759971ea14adead830b1f7c616 (patch)
treeb9d0ae701885f7787dc1751089642ae97340cdcb
parent9d87e6aeb8dd9c46b10483c31a392d7dac8a7dc4 (diff)
downloadzig-fa5fcdd7343b8e759971ea14adead830b1f7c616.tar.gz
zig-fa5fcdd7343b8e759971ea14adead830b1f7c616.zip
zig fmt: fix regression with many container members
-rw-r--r--lib/std/zig/ast.zig2
-rw-r--r--lib/std/zig/parse.zig5
-rw-r--r--lib/std/zig/parser_test.zig34
3 files changed, 19 insertions, 22 deletions
diff --git a/lib/std/zig/ast.zig b/lib/std/zig/ast.zig
index 35b10c6e2c..ea01a63096 100644
--- a/lib/std/zig/ast.zig
+++ b/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,
});
}
diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig
index da45090ffd..9bc3385105 100644
--- a/lib/std/zig/parse.zig
+++ b/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 {
diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig
index 6b9f39a728..bbca2741f2 100644
--- a/lib/std/zig/parser_test.zig
+++ b/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;