Skip to content

Commit 6ee3515

Browse files
bors[bot]xffxff
andauthored
Merge #10449
10449: make Some(1..) parsed r=lnicola a=XFFXFF fixes #9066 [rustc_ty_utils/src/ty.rs](https://github.com/rust-lang/rust/blob/d7795d302adbb8c1547c952cd0d04a7f9ca29262/compiler/rustc_ty_utils/src/ty.rs#L524) Co-authored-by: zhoufan <[email protected]>
2 parents 4b7675f + a248f39 commit 6ee3515

File tree

3 files changed

+178
-92
lines changed

3 files changed

+178
-92
lines changed

crates/parser/src/grammar/patterns.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ fn pattern_single_r(p: &mut Parser, recovery_set: TokenSet) {
6969
// 200 .. 301 => (),
7070
// 302 .. => (),
7171
// }
72+
//
73+
// match Some(10 as u8) {
74+
// Some(0) | None => (),
75+
// Some(1..) => ()
76+
// }
7277
// }
7378

7479
// FIXME: support half_open_range_patterns (`..=2`),
@@ -78,9 +83,9 @@ fn pattern_single_r(p: &mut Parser, recovery_set: TokenSet) {
7883
let m = lhs.precede(p);
7984
p.bump(range_op);
8085

81-
// `0 .. =>` or `let 0 .. =`
82-
// ^ ^
83-
if p.at(T![=]) {
86+
// `0 .. =>` or `let 0 .. =` or `Some(0 .. )`
87+
// ^ ^ ^
88+
if p.at(T![=]) | p.at(T![')']) {
8489
// test half_open_range_pat
8590
// fn f() { let 0 .. = 1u32; }
8691
} else {
Lines changed: 165 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
SOURCE_FILE@0..135
2-
FN@0..134
1+
SOURCE_FILE@0..223
2+
FN@0..222
33
44
55
@@ -8,92 +8,168 @@ [email protected]
88
99
1010
11-
BLOCK_EXPR@10..134
12-
STMT_LIST@10..134
11+
BLOCK_EXPR@10..222
12+
STMT_LIST@10..222
1313
1414
15-
16-
17-
18-
19-
20-
21-
22-
23-
24-
25-
26-
27-
28-
29-
30-
31-
32-
33-
34-
35-
36-
37-
38-
39-
40-
41-
42-
43-
44-
45-
46-
47-
48-
49-
50-
51-
52-
53-
54-
55-
56-
57-
58-
59-
60-
61-
62-
63-
64-
65-
66-
67-
68-
69-
70-
71-
72-
73-
74-
75-
76-
77-
78-
79-
80-
81-
82-
83-
84-
85-
86-
87-
88-
89-
90-
91-
92-
93-
94-
95-
96-
97-
98-
99-
15+
16+
17+
18+
19+
20+
21+
22+
23+
24+
25+
26+
27+
28+
29+
30+
31+
32+
33+
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+
46+
47+
48+
49+
50+
51+
52+
53+
54+
55+
56+
57+
58+
59+
60+
61+
62+
63+
64+
65+
66+
67+
68+
69+
70+
71+
72+
73+
74+
75+
76+
77+
78+
79+
80+
81+
82+
83+
84+
85+
86+
87+
88+
89+
90+
91+
92+
93+
94+
95+
96+
97+
98+
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+

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
@@ -5,4 +5,9 @@ fn main() {
55
200 .. 301 => (),
66
302 .. => (),
77
}
8+
9+
match Some(10 as u8) {
10+
Some(0) | None => (),
11+
Some(1..) => ()
12+
}
813
}

0 commit comments

Comments
 (0)