From 859290a9dec1dede6e60e5309a8c0d07a637ed32 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 24 Jun 2026 13:31:11 +0100 Subject: [PATCH] Support `where` clauses for `proc` groups --- core/odin/parser/parser.odin | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin index fcfca0121..5e681728d 100644 --- a/core/odin/parser/parser.odin +++ b/core/odin/parser/parser.odin @@ -2553,6 +2553,17 @@ parse_operand :: proc(p: ^Parser, lhs: bool) -> ^ast.Expr { for p.curr_tok.kind != .Close_Brace && p.curr_tok.kind != .EOF { elem := parse_expr(p, false) + + if p.curr_tok.kind == .Where { + tok_where := expect_token(p, .Where) + cond := parse_expr(p, false) + + be := ast.new(ast.Binary_Expr, elem.pos, end_pos(p.prev_tok)) + be.left = elem + be.op = tok_where + be.right = cond + elem = be + } append(&args, elem) allow_token(p, .Comma) or_break