diff options
author | Ville Penttinen <[email protected]> | 2019-03-04 17:10:14 +0000 |
---|---|---|
committer | Ville Penttinen <[email protected]> | 2019-03-04 17:10:14 +0000 |
commit | 1f4468a8dae10db4f500bde3c1708228de6137b6 (patch) | |
tree | 5d2201db2a770053f0527d82df453e3478c940c1 /crates/ra_parser | |
parent | bbaf750b10810c21d42710a5d12181ca73099525 (diff) |
Add support for parsing multiple if and while-let patterns
Diffstat (limited to 'crates/ra_parser')
-rw-r--r-- | crates/ra_parser/src/grammar/expressions/atom.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/ra_parser/src/grammar/expressions/atom.rs b/crates/ra_parser/src/grammar/expressions/atom.rs index e74305b6a..dfa391632 100644 --- a/crates/ra_parser/src/grammar/expressions/atom.rs +++ b/crates/ra_parser/src/grammar/expressions/atom.rs | |||
@@ -281,10 +281,20 @@ fn for_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { | |||
281 | 281 | ||
282 | // test cond | 282 | // test cond |
283 | // fn foo() { if let Some(_) = None {} } | 283 | // fn foo() { if let Some(_) = None {} } |
284 | // fn bar() { | ||
285 | // if let Some(_) | Some(_) = None {} | ||
286 | // if let | Some(_) = None {} | ||
287 | // while let Some(_) | Some(_) = None {} | ||
288 | // while let | Some(_) = None {} | ||
289 | // } | ||
284 | fn cond(p: &mut Parser) { | 290 | fn cond(p: &mut Parser) { |
285 | let m = p.start(); | 291 | let m = p.start(); |
286 | if p.eat(LET_KW) { | 292 | if p.eat(LET_KW) { |
293 | p.eat(PIPE); | ||
287 | patterns::pattern(p); | 294 | patterns::pattern(p); |
295 | while p.eat(PIPE) { | ||
296 | patterns::pattern(p); | ||
297 | } | ||
288 | p.expect(EQ); | 298 | p.expect(EQ); |
289 | } | 299 | } |
290 | expr_no_struct(p); | 300 | expr_no_struct(p); |