authorgravatar for gbell12907@gmail.comCMDRZero <gbell12907@gmail.com> 2026-07-31 12:21:38-05:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-22 12:21:43+02:00
loga25a20160258b9936ff402e5da404420004fecff
treecc691b9683521f6abdbf049ed73059a324d11f42
parent197f7ee6d248a004763d5bb640a14dc4117d5a70

Fix `Parse.zig` bug pointing to wrong ambiguous operator


1 files changed, 2 insertions(+), 5 deletions(-)

lib/std/zig/Parse.zig+2-5
......@@ -1772,11 +1772,9 @@ const operTable = std.enums.directEnumArrayDefault(Token.Tag, OperInfo, .{ .prec
17721772 // zig fmt: on
17731773});
17741774
1775fn parseExprPrecedence(p: *Parse, min_exc_prec: PrecClass, prev_token_const: u32) Error!?Node.Index {
1775fn parseExprPrecedence(p: *Parse, min_exc_prec: PrecClass, prev_operator_token: u32) Error!?Node.Index {
17761776 var node = try p.parsePrefixExpr() orelse return null;
17771777
1778 var prev_operator_token = prev_token_const;
1779
17801778 while (true) {
17811779 const tok_tag = p.tokenTag(p.tok_i);
17821780 const info = operTable[@backingInt(tok_tag)];
......@@ -1884,8 +1882,7 @@ fn parseExprPrecedence(p: *Parse, min_exc_prec: PrecClass, prev_token_const: u32
18841882 }
18851883 }
18861884
1887 prev_operator_token = oper_token;
1888 const rhs = try p.parseExprPrecedence(info.prec, prev_operator_token) orelse {
1885 const rhs = try p.parseExprPrecedence(info.prec, oper_token) orelse {
18891886 try p.warn(.expected_expr);
18901887 return node;
18911888 };