Skip to content

Commit 775670e

Browse files
committed
Split the test
1 parent b90ed92 commit 775670e

File tree

3 files changed

+42
-2
lines changed

3 files changed

+42
-2
lines changed

crates/parser/src/grammar/patterns.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,20 @@ fn pattern_single_r(p: &mut Parser, recovery_set: TokenSet) {
6969
// 302 .. => (),
7070
// }
7171
// }
72+
73+
// FIXME: support half_open_range_patterns (`..=2`),
74+
// exclusive_range_pattern (`..5`) with missing lhs
7275
for &range_op in [T![...], T![..=], T![..]].iter() {
7376
if p.at(range_op) {
7477
let m = lhs.precede(p);
7578
p.bump(range_op);
76-
if !p.at(T![=>]) {
77-
// not a range pat like `302 .. => ()`
79+
80+
// `0 .. =>` or `let 0 .. =`
81+
// ^ ^
82+
if p.at(T![=]) {
83+
// test half_open_range_pat
84+
// fn f() { let 0 .. = 1u32; }
85+
} else {
7886
atom_pat(p, recovery_set);
7987
}
8088
m.complete(p, RANGE_PAT);
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
SOURCE_FILE@0..28
2+
FN@0..27
3+
FN_KW@0..2 "fn"
4+
WHITESPACE@2..3 " "
5+
NAME@3..4
6+
IDENT@3..4 "f"
7+
PARAM_LIST@4..6
8+
L_PAREN@4..5 "("
9+
R_PAREN@5..6 ")"
10+
WHITESPACE@6..7 " "
11+
BLOCK_EXPR@7..27
12+
L_CURLY@7..8 "{"
13+
WHITESPACE@8..9 " "
14+
LET_STMT@9..25
15+
LET_KW@9..12 "let"
16+
WHITESPACE@12..13 " "
17+
RANGE_PAT@13..17
18+
LITERAL_PAT@13..14
19+
LITERAL@13..14
20+
INT_NUMBER@13..14 "0"
21+
WHITESPACE@14..15 " "
22+
DOT2@15..17 ".."
23+
WHITESPACE@17..18 " "
24+
EQ@18..19 "="
25+
WHITESPACE@19..20 " "
26+
LITERAL@20..24
27+
INT_NUMBER@20..24 "1u32"
28+
SEMICOLON@24..25 ";"
29+
WHITESPACE@25..26 " "
30+
R_CURLY@26..27 "}"
31+
WHITESPACE@27..28 "\n"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fn f() { let 0 .. = 1u32; }

0 commit comments

Comments
 (0)