Skip to content

Commit ea5bd85

Browse files
committed
parser: fix delete array indexing
1 parent 49dfed2 commit ea5bd85

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

parser/src/lib.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -568,8 +568,10 @@ impl<'a> Parser<'a> {
568568
};
569569
let index = if lex.consume(&Token::OpenBracket) {
570570
let mut pratt = Pratt::new(self, false);
571-
let first = pratt.parse(lex)?;
572-
Some(pratt.parse_comma_expr(lex, first)?)
571+
let expr = pratt.parse(lex)?;
572+
let expr = pratt.parse_comma_expr(lex, expr)?;
573+
lex.expect(&Token::ClosedBracket, ParsingError::UnclosedArrayAccess)?;
574+
Some(expr)
573575
} else {
574576
None
575577
};

parser/src/sexpr.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,11 @@ impl Debug for SimpleStatement<'_> {
191191
}
192192

193193
Self::Delete(array, Some(index)) => {
194-
write!(f, "(delete (index {array:?} {index:?}))")
194+
write!(f, "(delete (Index {array:?}")?;
195+
for i in index {
196+
write!(f, " {i}")?;
197+
}
198+
write!(f, "))")
195199
}
196200
Self::Delete(array, None) => write!(f, "(delete {array:?})"),
197201
}

0 commit comments

Comments
 (0)