From f220fc2f4b20dffe979b1f96d31c306e975bc9dc Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sun, 20 Apr 2025 21:25:28 +0100 Subject: [PATCH] lang: ast: fix nested lambdas not parsing correctly --- lang/ast/expr/arith.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lang/ast/expr/arith.c b/lang/ast/expr/arith.c index 8e4d6b0..179529d 100644 --- a/lang/ast/expr/arith.c +++ b/lang/ast/expr/arith.c @@ -768,6 +768,14 @@ struct token_parse_result arith_parse_right_bracket( struct expr_parser_state *state = parser_get_state(ctx, struct expr_parser_state); + if (expr_terminates_at_token(state, IVY_SYM_RIGHT_BRACKET)) { + state->s_prev_token = IVY_SYM_RIGHT_BRACKET; + struct token_parse_result result + = expr_finalise_and_return(ctx, state); + result.r_flags = PARSE_REPEAT_TOKEN; + return result; + } + if (state->s_prev_token == IVY_SYM_LEFT_BRACKET) { /* we've just parsed a subscript operator. nothing further to do here. */ return PARSE_RESULT(IVY_OK, 0);