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.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs
index 83d9ae46..16d519fe 100644
--- a/src/syntax/parser.rs
+++ b/src/syntax/parser.rs
@@ -853,16 +853,9 @@ fn pattern(p: &mut Parser) -> PatternKind {
PatternKind::Destructuring
} else {
- let success = p.expect(SyntaxKind::Ident);
- if p.at(SyntaxKind::Comma) {
- // TODO: this should only be a warning instead
- p.expected("keyword `in`. did you mean to use a destructuring pattern?");
- }
-
- if success {
+ if p.expect(SyntaxKind::Ident) {
p.wrap(m, SyntaxKind::Pattern);
}
-
PatternKind::Normal
}
}
@@ -964,7 +957,13 @@ fn for_loop(p: &mut Parser) {
let m = p.marker();
p.assert(SyntaxKind::For);
pattern(p);
- p.expect(SyntaxKind::In);
+ if p.at(SyntaxKind::Comma) {
+ p.expected("keyword `in`. did you mean to use a destructuring pattern?");
+ p.eat_if(SyntaxKind::Ident);
+ p.eat_if(SyntaxKind::In);
+ } else {
+ p.expect(SyntaxKind::In);
+ }
code_expr(p);
block(p);
p.wrap(m, SyntaxKind::ForLoop);