From 3680c854a21db665d64cdb8f31aa0f9a1af16ceb Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 26 Apr 2023 13:46:42 +0200 Subject: Touch up docs --- src/syntax/parser.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/syntax/parser.rs') diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs index ab73479e..1198774b 100644 --- a/src/syntax/parser.rs +++ b/src/syntax/parser.rs @@ -850,12 +850,19 @@ fn item(p: &mut Parser, keyed: bool) -> SyntaxKind { return SyntaxKind::Spread; } - if !p.eat_if(SyntaxKind::Underscore) { - code_expr_or_pattern(p); - } else { - return SyntaxKind::Underscore; + if p.at(SyntaxKind::Underscore) { + // This is a temporary workaround to fix `v.map(_ => {})`. + let mut lexer = p.lexer.clone(); + let next = + std::iter::from_fn(|| Some(lexer.next())).find(|kind| !kind.is_trivia()); + if next != Some(SyntaxKind::Arrow) { + p.eat(); + return SyntaxKind::Underscore; + } } + code_expr_or_pattern(p); + if !p.eat_if(SyntaxKind::Colon) { return SyntaxKind::Int; } -- cgit v1.2.3