Merge #366
366: parse minus before number literal pattern r=matklad a=csmoe r?@matklad ![unknown](https://user-images.githubusercontent.com/35686186/50547871-d5449e00-0c7d-11e9-9ff5-1031e78019de.png) Co-authored-by: csmoe <csmoe@msn.com>
This commit is contained in:
commit
c0d1b17a4e
3 changed files with 51 additions and 33 deletions
|
@ -48,11 +48,16 @@ fn atom_pat(p: &mut Parser, recovery_set: TokenSet) -> Option<CompletedMarker> {
|
|||
// test literal_pattern
|
||||
// fn main() {
|
||||
// match () {
|
||||
// -1 => (),
|
||||
// 92 => (),
|
||||
// 'c' => (),
|
||||
// "hello" => (),
|
||||
// }
|
||||
// }
|
||||
if p.at(MINUS) && (p.nth(1) == INT_NUMBER || p.nth(1) == FLOAT_NUMBER) {
|
||||
p.bump();
|
||||
}
|
||||
|
||||
if let Some(m) = expressions::literal(p) {
|
||||
return Some(m);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
fn main() {
|
||||
match () {
|
||||
-1 => (),
|
||||
92 => (),
|
||||
'c' => (),
|
||||
"hello" => (),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
SOURCE_FILE@[0; 95)
|
||||
FN_DEF@[0; 94)
|
||||
SOURCE_FILE@[0; 113)
|
||||
FN_DEF@[0; 112)
|
||||
FN_KW@[0; 2)
|
||||
WHITESPACE@[2; 3)
|
||||
NAME@[3; 7)
|
||||
|
@ -8,22 +8,23 @@ SOURCE_FILE@[0; 95)
|
|||
L_PAREN@[7; 8)
|
||||
R_PAREN@[8; 9)
|
||||
WHITESPACE@[9; 10)
|
||||
BLOCK@[10; 94)
|
||||
BLOCK@[10; 112)
|
||||
L_CURLY@[10; 11)
|
||||
WHITESPACE@[11; 16)
|
||||
MATCH_EXPR@[16; 92)
|
||||
MATCH_EXPR@[16; 110)
|
||||
MATCH_KW@[16; 21)
|
||||
WHITESPACE@[21; 22)
|
||||
TUPLE_EXPR@[22; 24)
|
||||
L_PAREN@[22; 23)
|
||||
R_PAREN@[23; 24)
|
||||
WHITESPACE@[24; 25)
|
||||
MATCH_ARM_LIST@[25; 92)
|
||||
MATCH_ARM_LIST@[25; 110)
|
||||
L_CURLY@[25; 26)
|
||||
WHITESPACE@[26; 35)
|
||||
MATCH_ARM@[35; 43)
|
||||
LITERAL@[35; 37)
|
||||
INT_NUMBER@[35; 37) "92"
|
||||
MINUS@[35; 36)
|
||||
LITERAL@[36; 37)
|
||||
INT_NUMBER@[36; 37) "1"
|
||||
WHITESPACE@[37; 38)
|
||||
FAT_ARROW@[38; 40)
|
||||
WHITESPACE@[40; 41)
|
||||
|
@ -32,29 +33,40 @@ SOURCE_FILE@[0; 95)
|
|||
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)
|
||||
MATCH_ARM@[53; 61)
|
||||
LITERAL@[53; 55)
|
||||
INT_NUMBER@[53; 55) "92"
|
||||
WHITESPACE@[55; 56)
|
||||
FAT_ARROW@[56; 58)
|
||||
WHITESPACE@[58; 59)
|
||||
TUPLE_EXPR@[59; 61)
|
||||
L_PAREN@[59; 60)
|
||||
R_PAREN@[60; 61)
|
||||
COMMA@[61; 62)
|
||||
WHITESPACE@[62; 71)
|
||||
MATCH_ARM@[71; 80)
|
||||
LITERAL@[71; 74)
|
||||
CHAR@[71; 74)
|
||||
WHITESPACE@[74; 75)
|
||||
FAT_ARROW@[75; 77)
|
||||
WHITESPACE@[77; 78)
|
||||
TUPLE_EXPR@[78; 80)
|
||||
L_PAREN@[78; 79)
|
||||
R_PAREN@[79; 80)
|
||||
COMMA@[80; 81)
|
||||
WHITESPACE@[81; 90)
|
||||
MATCH_ARM@[90; 103)
|
||||
LITERAL@[90; 97)
|
||||
STRING@[90; 97)
|
||||
WHITESPACE@[97; 98)
|
||||
FAT_ARROW@[98; 100)
|
||||
WHITESPACE@[100; 101)
|
||||
TUPLE_EXPR@[101; 103)
|
||||
L_PAREN@[101; 102)
|
||||
R_PAREN@[102; 103)
|
||||
COMMA@[103; 104)
|
||||
WHITESPACE@[104; 109)
|
||||
R_CURLY@[109; 110)
|
||||
WHITESPACE@[110; 111)
|
||||
R_CURLY@[111; 112)
|
||||
WHITESPACE@[112; 113)
|
||||
|
|
Loading…
Add table
Reference in a new issue