diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-01-28 18:32:58 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-01-28 18:32:58 +0100 |
| commit | 406de22ee5cd74dc6f67743bad4710415bb50c41 (patch) | |
| tree | 37536600378cd325956201ea175469bc22db2b1a /src/syntax/parser.rs | |
| parent | 2d56e3c5e245bf8824bf0ea8f1f1a05cb9716dc5 (diff) | |
Remove method call syntax kind
Diffstat (limited to 'src/syntax/parser.rs')
| -rw-r--r-- | src/syntax/parser.rs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs index 1b5c10a3..602d9f2c 100644 --- a/src/syntax/parser.rs +++ b/src/syntax/parser.rs @@ -374,12 +374,12 @@ fn math_op(kind: SyntaxKind) -> Option<(SyntaxKind, SyntaxKind, ast::Assoc, usiz } fn math_args(p: &mut Parser) { - p.assert(SyntaxKind::Text); - let m = p.marker(); - let mut arg = p.marker(); + p.convert(SyntaxKind::LeftParen); + let mut namable = true; let mut named = None; + let mut arg = p.marker(); while !p.eof() && !p.at(SyntaxKind::Dollar) { if namable @@ -418,11 +418,14 @@ fn math_args(p: &mut Parser) { maybe_wrap_in_math(p, arg, named); } - p.wrap(m, SyntaxKind::Args); - if !p.eat_if(SyntaxKind::Text) { + if p.at(SyntaxKind::Text) && p.current_text() == ")" { + p.convert(SyntaxKind::RightParen); + } else { p.expected("closing paren"); p.balanced = false; } + + p.wrap(m, SyntaxKind::Args); } fn maybe_wrap_in_math(p: &mut Parser, arg: Marker, named: Option<Marker>) { @@ -512,14 +515,7 @@ fn code_expr_prec(p: &mut Parser, atomic: bool, min_prec: usize) { if p.eat_if(SyntaxKind::Dot) { p.expect(SyntaxKind::Ident); - if p.directly_at(SyntaxKind::LeftParen) - || p.directly_at(SyntaxKind::LeftBracket) - { - args(p); - p.wrap(m, SyntaxKind::MethodCall); - } else { - p.wrap(m, SyntaxKind::FieldAccess) - } + p.wrap(m, SyntaxKind::FieldAccess); continue; } |
