diff options
author | Ville Penttinen <[email protected]> | 2019-03-05 09:28:53 +0000 |
---|---|---|
committer | Ville Penttinen <[email protected]> | 2019-03-05 09:31:25 +0000 |
commit | eb1ac43867921501723457846f7aaaa36cd4ebdd (patch) | |
tree | bd835b7ceb245823d5ddd7bd725c99463e798774 /crates/ra_parser/src/grammar/expressions | |
parent | 1f4468a8dae10db4f500bde3c1708228de6137b6 (diff) |
Introduce pattern_list to parse pipe separated patterns
pattern_list comes in two variants, one uses the default PAT_RECOVERY_SET as the
recovery set, while other allows the user to provide a recovery set.
Diffstat (limited to 'crates/ra_parser/src/grammar/expressions')
-rw-r--r-- | crates/ra_parser/src/grammar/expressions/atom.rs | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/crates/ra_parser/src/grammar/expressions/atom.rs b/crates/ra_parser/src/grammar/expressions/atom.rs index dfa391632..9f282c74d 100644 --- a/crates/ra_parser/src/grammar/expressions/atom.rs +++ b/crates/ra_parser/src/grammar/expressions/atom.rs | |||
@@ -290,11 +290,7 @@ fn for_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { | |||
290 | fn cond(p: &mut Parser) { | 290 | fn cond(p: &mut Parser) { |
291 | let m = p.start(); | 291 | let m = p.start(); |
292 | if p.eat(LET_KW) { | 292 | if p.eat(LET_KW) { |
293 | p.eat(PIPE); | 293 | patterns::pattern_list(p); |
294 | patterns::pattern(p); | ||
295 | while p.eat(PIPE) { | ||
296 | patterns::pattern(p); | ||
297 | } | ||
298 | p.expect(EQ); | 294 | p.expect(EQ); |
299 | } | 295 | } |
300 | expr_no_struct(p); | 296 | expr_no_struct(p); |
@@ -386,11 +382,7 @@ pub(crate) fn match_arm_list(p: &mut Parser) { | |||
386 | // } | 382 | // } |
387 | fn match_arm(p: &mut Parser) -> BlockLike { | 383 | fn match_arm(p: &mut Parser) -> BlockLike { |
388 | let m = p.start(); | 384 | let m = p.start(); |
389 | p.eat(PIPE); | 385 | patterns::pattern_list_r(p, TokenSet::empty()); |
390 | patterns::pattern_r(p, TokenSet::empty()); | ||
391 | while p.eat(PIPE) { | ||
392 | patterns::pattern(p); | ||
393 | } | ||
394 | if p.at(IF_KW) { | 386 | if p.at(IF_KW) { |
395 | match_guard(p); | 387 | match_guard(p); |
396 | } | 388 | } |