Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/grammar/patterns.rs')
-rw-r--r--crates/parser/src/grammar/patterns.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/crates/parser/src/grammar/patterns.rs b/crates/parser/src/grammar/patterns.rs
index abcefffa23..5f4977886f 100644
--- a/crates/parser/src/grammar/patterns.rs
+++ b/crates/parser/src/grammar/patterns.rs
@@ -431,14 +431,15 @@ fn slice_pat(p: &mut Parser<'_>) -> CompletedMarker {
fn pat_list(p: &mut Parser<'_>, ket: SyntaxKind) {
while !p.at(EOF) && !p.at(ket) {
- if !p.at_ts(PAT_TOP_FIRST) {
- p.error("expected a pattern");
- break;
- }
-
pattern_top(p);
- if !p.at(ket) {
- p.expect(T![,]);
+ if !p.at(T![,]) {
+ if p.at_ts(PAT_TOP_FIRST) {
+ p.error(format!("expected {:?}, got {:?}", T![,], p.current()));
+ } else {
+ break;
+ }
+ } else {
+ p.bump(T![,]);
}
}
}