Skip to content

Commit 8d24f0e

Browse files
bors[bot]xffxff
andauthored
Merge #10794
10794: fix: parse the range pat inside the tuple pat r=lnicola a=XFFXFF fixes #10784 Co-authored-by: zhoufan <[email protected]>
2 parents ea01a3a + a539b5e commit 8d24f0e

File tree

3 files changed

+168
-82
lines changed

3 files changed

+168
-82
lines changed

crates/parser/src/grammar/patterns.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ fn pattern_single_r(p: &mut Parser, recovery_set: TokenSet) {
7474
// Some(0) | None => (),
7575
// Some(1..) => ()
7676
// }
77+
//
78+
// match (10 as u8, 5 as u8) {
79+
// (0, _) => (),
80+
// (1.., _) => ()
81+
// }
7782
// }
7883

7984
// FIXME: support half_open_range_patterns (`..=2`),
@@ -85,7 +90,7 @@ fn pattern_single_r(p: &mut Parser, recovery_set: TokenSet) {
8590

8691
// `0 .. =>` or `let 0 .. =` or `Some(0 .. )`
8792
// ^ ^ ^
88-
if p.at(T![=]) | p.at(T![')']) {
93+
if p.at(T![=]) | p.at(T![')']) | p.at(T![,]) {
8994
// test half_open_range_pat
9095
// fn f() { let 0 .. = 1u32; }
9196
} else {
Lines changed: 157 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
SOURCE_FILE@0..223
2-
FN@0..222
1+
SOURCE_FILE@0..307
2+
FN@0..306
33
44
55
@@ -8,8 +8,8 @@ [email protected]
88
99
1010
11-
BLOCK_EXPR@10..222
12-
STMT_LIST@10..222
11+
BLOCK_EXPR@10..306
12+
STMT_LIST@10..306
1313
1414
1515
@@ -96,80 +96,156 @@ [email protected]
9696
9797
9898
99-
100-
101-
102-
103-
104-
105-
106-
107-
108-
109-
110-
111-
112-
113-
114-
115-
116-
117-
118-
119-
120-
121-
122-
123-
124-
125-
126-
127-
128-
129-
130-
131-
132-
133-
134-
135-
136-
137-
138-
139-
140-
141-
142-
143-
144-
145-
146-
147-
148-
149-
150-
151-
152-
153-
154-
155-
156-
157-
158-
159-
160-
161-
162-
163-
164-
165-
166-
167-
168-
169-
170-
171-
172-
173-
174-
175-
99+
100+
101+
102+
103+
104+
105+
106+
107+
108+
109+
110+
111+
112+
113+
114+
115+
116+
117+
118+
119+
120+
121+
122+
123+
124+
125+
126+
127+
128+
129+
130+
131+
132+
133+
134+
135+
136+
137+
138+
139+
140+
141+
142+
143+
144+
145+
146+
147+
148+
149+
150+
151+
152+
153+
154+
155+
156+
157+
158+
159+
160+
161+
162+
163+
164+
165+
166+
167+
168+
169+
170+
171+
172+
173+
174+
175+
176+
177+
178+
179+
180+
181+
182+
183+
184+
185+
186+
187+
188+
189+
190+
191+
192+
193+
194+
195+
196+
197+
198+
199+
200+
201+
202+
203+
204+
205+
206+
207+
208+
209+
210+
211+
212+
213+
214+
215+
216+
217+
218+
219+
220+
221+
222+
223+
224+
225+
226+
227+
228+
229+
230+
231+
232+
233+
234+
235+
236+
237+
238+
239+
240+
241+
242+
243+
244+
245+
246+
247+
248+
249+
250+
251+

crates/syntax/test_data/parser/inline/ok/0058_range_pat.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,9 @@ fn main() {
1010
Some(0) | None => (),
1111
Some(1..) => ()
1212
}
13+
14+
match (10 as u8, 5 as u8) {
15+
(0, _) => (),
16+
(1.., _) => ()
17+
}
1318
}

0 commit comments

Comments
 (0)