From 678882d4f844135cc5df33de1f6da326ec96a78b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 8 Aug 2018 00:59:16 +0300 Subject: literal pattern --- src/grammar/patterns.rs | 12 +++++ tests/data/parser/inline/0092_literal_pattern.rs | 7 +++ tests/data/parser/inline/0092_literal_pattern.txt | 59 +++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 tests/data/parser/inline/0092_literal_pattern.rs create mode 100644 tests/data/parser/inline/0092_literal_pattern.txt diff --git a/src/grammar/patterns.rs b/src/grammar/patterns.rs index 36ead7561..f23addfa3 100644 --- a/src/grammar/patterns.rs +++ b/src/grammar/patterns.rs @@ -13,6 +13,18 @@ pub(super) fn pattern(p: &mut Parser) { return; } + // test literal_pattern + // fn main() { + // match () { + // 92 => (), + // 'c' => (), + // "hello" => (), + // } + // } + if expressions::literal(p).is_some() { + return; + } + match la0 { UNDERSCORE => placeholder_pat(p), AMP => ref_pat(p), diff --git a/tests/data/parser/inline/0092_literal_pattern.rs b/tests/data/parser/inline/0092_literal_pattern.rs new file mode 100644 index 000000000..16f674d9d --- /dev/null +++ b/tests/data/parser/inline/0092_literal_pattern.rs @@ -0,0 +1,7 @@ +fn main() { + match () { + 92 => (), + 'c' => (), + "hello" => (), + } +} diff --git a/tests/data/parser/inline/0092_literal_pattern.txt b/tests/data/parser/inline/0092_literal_pattern.txt new file mode 100644 index 000000000..08ade31fb --- /dev/null +++ b/tests/data/parser/inline/0092_literal_pattern.txt @@ -0,0 +1,59 @@ +FILE@[0; 95) + FN_ITEM@[0; 94) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 7) + IDENT@[3; 7) "main" + PARAM_LIST@[7; 9) + L_PAREN@[7; 8) + R_PAREN@[8; 9) + WHITESPACE@[9; 10) + BLOCK_EXPR@[10; 94) + L_CURLY@[10; 11) + WHITESPACE@[11; 16) + MATCH_EXPR@[16; 92) + MATCH_KW@[16; 21) + WHITESPACE@[21; 22) + TUPLE_EXPR@[22; 24) + L_PAREN@[22; 23) + R_PAREN@[23; 24) + WHITESPACE@[24; 25) + L_CURLY@[25; 26) + WHITESPACE@[26; 35) + MATCH_ARM@[35; 43) + LITERAL@[35; 37) + INT_NUMBER@[35; 37) "92" + WHITESPACE@[37; 38) + FAT_ARROW@[38; 40) + WHITESPACE@[40; 41) + TUPLE_EXPR@[41; 43) + L_PAREN@[41; 42) + R_PAREN@[42; 43) + COMMA@[43; 44) + WHITESPACE@[44; 53) + MATCH_ARM@[53; 62) + LITERAL@[53; 56) + CHAR@[53; 56) + WHITESPACE@[56; 57) + FAT_ARROW@[57; 59) + WHITESPACE@[59; 60) + TUPLE_EXPR@[60; 62) + L_PAREN@[60; 61) + R_PAREN@[61; 62) + COMMA@[62; 63) + WHITESPACE@[63; 72) + MATCH_ARM@[72; 85) + LITERAL@[72; 79) + STRING@[72; 79) + WHITESPACE@[79; 80) + FAT_ARROW@[80; 82) + WHITESPACE@[82; 83) + TUPLE_EXPR@[83; 85) + L_PAREN@[83; 84) + R_PAREN@[84; 85) + COMMA@[85; 86) + WHITESPACE@[86; 91) + R_CURLY@[91; 92) + WHITESPACE@[92; 93) + R_CURLY@[93; 94) + WHITESPACE@[94; 95) -- cgit v1.2.3