summaryrefslogtreecommitdiff
path: root/src/syntax/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/syntax/parser.rs')
-rw-r--r--src/syntax/parser.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs
index 7c05eebc..e6807404 100644
--- a/src/syntax/parser.rs
+++ b/src/syntax/parser.rs
@@ -839,7 +839,7 @@ fn args(p: &mut Parser) {
}
enum PatternKind {
- Normal,
+ Ident,
Destructuring,
}
@@ -849,18 +849,16 @@ fn pattern(p: &mut Parser) -> PatternKind {
if p.at(SyntaxKind::LeftParen) {
let kind = collection(p, false);
validate_destruct_pattern(p, m);
- p.wrap(m, SyntaxKind::Pattern);
if kind == SyntaxKind::Parenthesized {
- PatternKind::Normal
+ PatternKind::Ident
} else {
+ p.wrap(m, SyntaxKind::Destructuring);
PatternKind::Destructuring
}
} else {
- if p.expect(SyntaxKind::Ident) {
- p.wrap(m, SyntaxKind::Pattern);
- }
- PatternKind::Normal
+ p.expect(SyntaxKind::Ident);
+ PatternKind::Ident
}
}
@@ -872,7 +870,7 @@ fn let_binding(p: &mut Parser) {
let mut closure = false;
let mut destructuring = false;
match pattern(p) {
- PatternKind::Normal => {
+ PatternKind::Ident => {
closure = p.directly_at(SyntaxKind::LeftParen);
if closure {
let m3 = p.marker();