diff options
Diffstat (limited to 'crates/typst-syntax/src/parser.rs')
| -rw-r--r-- | crates/typst-syntax/src/parser.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/typst-syntax/src/parser.rs b/crates/typst-syntax/src/parser.rs index ff01bacf..2cbce1d7 100644 --- a/crates/typst-syntax/src/parser.rs +++ b/crates/typst-syntax/src/parser.rs @@ -1102,13 +1102,17 @@ fn expr_with_paren(p: &mut Parser, atomic: bool) { if p.at(SyntaxKind::Arrow) { p.restore(checkpoint); params(p); - p.assert(SyntaxKind::Arrow); + if !p.expect(SyntaxKind::Arrow) { + return; + } code_expr(p); p.wrap(m, SyntaxKind::Closure); } else if p.at(SyntaxKind::Eq) && kind != SyntaxKind::Parenthesized { p.restore(checkpoint); destructuring_or_parenthesized(p, true, &mut HashSet::new()); - p.assert(SyntaxKind::Eq); + if !p.expect(SyntaxKind::Eq) { + return; + } code_expr(p); p.wrap(m, SyntaxKind::DestructAssignment); } else { |
