parser: fix delete array indexing

This commit is contained in:
Guillem L. Jara
2026-05-19 22:58:19 +02:00
parent 49dfed25d8
commit ea5bd85525
2 changed files with 9 additions and 3 deletions
+4 -2
View File
@@ -568,8 +568,10 @@ impl<'a> Parser<'a> {
};
let index = if lex.consume(&Token::OpenBracket) {
let mut pratt = Pratt::new(self, false);
let first = pratt.parse(lex)?;
Some(pratt.parse_comma_expr(lex, first)?)
let expr = pratt.parse(lex)?;
let expr = pratt.parse_comma_expr(lex, expr)?;
lex.expect(&Token::ClosedBracket, ParsingError::UnclosedArrayAccess)?;
Some(expr)
} else {
None
};
+5 -1
View File
@@ -191,7 +191,11 @@ impl Debug for SimpleStatement<'_> {
}
Self::Delete(array, Some(index)) => {
write!(f, "(delete (index {array:?} {index:?}))")
write!(f, "(delete (Index {array:?}")?;
for i in index {
write!(f, " {i}")?;
}
write!(f, "))")
}
Self::Delete(array, None) => write!(f, "(delete {array:?})"),
}