summaryrefslogtreecommitdiff
path: root/src/syntax/parser.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-01-28 18:32:58 +0100
committerLaurenz <laurmaedje@gmail.com>2023-01-28 18:32:58 +0100
commit406de22ee5cd74dc6f67743bad4710415bb50c41 (patch)
tree37536600378cd325956201ea175469bc22db2b1a /src/syntax/parser.rs
parent2d56e3c5e245bf8824bf0ea8f1f1a05cb9716dc5 (diff)
Remove method call syntax kind
Diffstat (limited to 'src/syntax/parser.rs')
-rw-r--r--src/syntax/parser.rs22
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;
}