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);