authorgravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-04-10 09:37:29+02:00
committergravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-04-10 09:37:29+02:00
log5cd69ee6a4b7d02dbc48d93e8f8f95bd608d9d7c
tree2c68523086e7c966b0f2492e6e6679549d0475c9
parent2c7996f4006b94f81fc3b1c1e3f73a4a7a291782

std.zig.parser changed assign expr to only be allowed in some contexts

* Only allowed in while continue expr and statement expr

1 files changed, 6 insertions(+), 8 deletions(-)

std/zig/parser.zig+6-8
......@@ -721,7 +721,7 @@ pub const Parser = struct {
721721 },
722722 else => {
723723 self.putBackToken(token);
724 stack.append(State { .AssignmentExpressionBegin = dest_ptr }) catch unreachable;
724 stack.append(State { .UnwrapExpressionBegin = dest_ptr }) catch unreachable;
725725 continue;
726726 }
727727 }
......@@ -750,7 +750,7 @@ pub const Parser = struct {
750750
751751 State.AssignmentExpressionBegin => |dest_ptr| {
752752 stack.append(State { .AssignmentExpressionEnd = dest_ptr }) catch unreachable;
753 try stack.append(State { .UnwrapExpressionBegin = dest_ptr });
753 try stack.append(State { .Expression = dest_ptr });
754754 continue;
755755 },
756756
......@@ -762,7 +762,7 @@ pub const Parser = struct {
762762 dest_ptr.store(&node.base);
763763
764764 stack.append(State { .AssignmentExpressionEnd = dest_ptr }) catch unreachable;
765 try stack.append(State { .UnwrapExpressionBegin = DestPtr { .Field = &node.rhs } });
765 try stack.append(State { .Expression = DestPtr { .Field = &node.rhs } });
766766 continue;
767767 } else {
768768 self.putBackToken(token);
......@@ -1895,7 +1895,7 @@ pub const Parser = struct {
18951895
18961896 _ = (try self.eatToken(&stack, Token.Id.LParen)) ?? continue;
18971897 stack.append(State { .ExpectToken = Token.Id.RParen }) catch unreachable;
1898 try stack.append(State { .Expression = DestPtr { .NullableField = dest } });
1898 try stack.append(State { .AssignmentExpressionBegin = DestPtr { .NullableField = dest } });
18991899 },
19001900
19011901 State.ErrorPayload => |dest| {
......@@ -2333,7 +2333,7 @@ pub const Parser = struct {
23332333 try block.statements.append(&node.base);
23342334
23352335 stack.append(State { .Semicolon = &node.base }) catch unreachable;
2336 try stack.append(State { .Expression = DestPtr{.Field = &node.expr } });
2336 try stack.append(State { .AssignmentExpressionBegin = DestPtr{.Field = &node.expr } });
23372337 continue;
23382338 },
23392339 Token.Id.LBrace => {
......@@ -2347,7 +2347,7 @@ pub const Parser = struct {
23472347 self.putBackToken(next);
23482348 const statememt = try block.statements.addOne();
23492349 stack.append(State { .Semicolon = statememt }) catch unreachable;
2350 try stack.append(State { .Expression = DestPtr{.Field = statememt } });
2350 try stack.append(State { .AssignmentExpressionBegin = DestPtr{.Field = statememt } });
23512351 continue;
23522352 }
23532353 }
......@@ -4260,8 +4260,6 @@ test "zig fmt: precedence" {
42604260 \\ a or b and c;
42614261 \\ (a or b) and c;
42624262 \\ (a or b) and c;
4263 \\ a = b or c;
4264 \\ (a = b) or c;
42654263 \\}
42664264 \\
42674265 );