diff --git a/lib/std/zig/Parse.zig b/lib/std/zig/Parse.zig index 95f3c1603ddad89c898f9f90c9c819959812bac8..7467da142de32dff48d76bffa8af52074134f8fc 100644 --- a/lib/std/zig/Parse.zig +++ b/lib/std/zig/Parse.zig @@ -1772,11 +1772,9 @@ const operTable = std.enums.directEnumArrayDefault(Token.Tag, OperInfo, .{ .prec // zig fmt: on }); -fn parseExprPrecedence(p: *Parse, min_exc_prec: PrecClass, prev_token_const: u32) Error!?Node.Index { +fn parseExprPrecedence(p: *Parse, min_exc_prec: PrecClass, prev_operator_token: u32) Error!?Node.Index { var node = try p.parsePrefixExpr() orelse return null; - var prev_operator_token = prev_token_const; - while (true) { const tok_tag = p.tokenTag(p.tok_i); const info = operTable[@backingInt(tok_tag)]; @@ -1884,8 +1882,7 @@ fn parseExprPrecedence(p: *Parse, min_exc_prec: PrecClass, prev_token_const: u32 } } - prev_operator_token = oper_token; - const rhs = try p.parseExprPrecedence(info.prec, prev_operator_token) orelse { + const rhs = try p.parseExprPrecedence(info.prec, oper_token) orelse { try p.warn(.expected_expr); return node; };