From ba21da52741bf207db5081811e00eacf45796429 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 7 Aug 2018 14:41:03 +0300 Subject: tuple patterns --- src/grammar/patterns.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/grammar/patterns.rs') diff --git a/src/grammar/patterns.rs b/src/grammar/patterns.rs index d67f180fa..f1d48b5fa 100644 --- a/src/grammar/patterns.rs +++ b/src/grammar/patterns.rs @@ -16,6 +16,7 @@ pub(super) fn pattern(p: &mut Parser) { match la0 { UNDERSCORE => placeholder_pat(p), AMP => ref_pat(p), + L_PAREN => tuple_pat(p), _ => p.err_and_bump("expected pattern"), } } @@ -33,7 +34,7 @@ fn path_pat(p: &mut Parser) { let kind = match p.current() { L_PAREN => { tuple_pat_fields(p); - TUPLE_PAT + TUPLE_STRUCT_PAT } L_CURLY => { struct_pat_fields(p); @@ -116,6 +117,17 @@ fn ref_pat(p: &mut Parser) { m.complete(p, REF_PAT); } +// test tuple_pat +// fn main() { +// let (a, b, ..) = (); +// } +fn tuple_pat(p: &mut Parser) { + assert!(p.at(L_PAREN)); + let m = p.start(); + tuple_pat_fields(p); + m.complete(p, TUPLE_PAT); +} + // test bind_pat // fn main() { // let a = (); -- cgit v1.2.3