This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +150
-3
lines changed
test_data/parser/inline/ok Expand file tree Collapse file tree 3 files changed +150
-3
lines changed Original file line number Diff line number Diff line change @@ -75,6 +75,16 @@ fn pattern_single_r(p: &mut Parser<'_>, recovery_set: TokenSet) {
75
75
// Some(1..) => ()
76
76
// }
77
77
//
78
+ // match () {
79
+ // S { a: 0 } => (),
80
+ // S { a: 1.. } => (),
81
+ // }
82
+ //
83
+ // match () {
84
+ // [0] => (),
85
+ // [1..] => (),
86
+ // }
87
+ //
78
88
// match (10 as u8, 5 as u8) {
79
89
// (0, _) => (),
80
90
// (1.., _) => ()
@@ -88,9 +98,20 @@ fn pattern_single_r(p: &mut Parser<'_>, recovery_set: TokenSet) {
88
98
let m = lhs. precede ( p) ;
89
99
p. bump ( range_op) ;
90
100
91
- // `0 .. =>` or `let 0 .. =` or `Some(0 .. )`
92
- // ^ ^ ^
93
- if p. at ( T ! [ =] ) | p. at ( T ! [ ')' ] ) | p. at ( T ! [ , ] ) {
101
+ // testing if we're at one of the following positions:
102
+ // `0 .. =>`
103
+ // ^
104
+ // `let 0 .. =`
105
+ // ^
106
+ // (1.., _)
107
+ // ^
108
+ // `Some(0 .. )`
109
+ // ^
110
+ // `S { t: 0.. }`
111
+ // ^
112
+ // `[0..]`
113
+ // ^
114
+ if p. at ( T ! [ =] ) | p. at ( T ! [ ')' ] ) | p. at ( T ! [ , ] ) | p. at ( T ! [ '}' ] ) | p. at ( T ! [ ']' ] ) {
94
115
// test half_open_range_pat
95
116
// fn f() { let 0 .. = 1u32; }
96
117
} else {
Original file line number Diff line number Diff line change @@ -172,6 +172,122 @@ SOURCE_FILE
172
172
WHITESPACE "\n "
173
173
R_CURLY "}"
174
174
WHITESPACE "\n\n "
175
+ EXPR_STMT
176
+ MATCH_EXPR
177
+ MATCH_KW "match"
178
+ WHITESPACE " "
179
+ TUPLE_EXPR
180
+ L_PAREN "("
181
+ R_PAREN ")"
182
+ WHITESPACE " "
183
+ MATCH_ARM_LIST
184
+ L_CURLY "{"
185
+ WHITESPACE "\n "
186
+ MATCH_ARM
187
+ RECORD_PAT
188
+ PATH
189
+ PATH_SEGMENT
190
+ NAME_REF
191
+ IDENT "S"
192
+ WHITESPACE " "
193
+ RECORD_PAT_FIELD_LIST
194
+ L_CURLY "{"
195
+ WHITESPACE " "
196
+ RECORD_PAT_FIELD
197
+ NAME_REF
198
+ IDENT "a"
199
+ COLON ":"
200
+ WHITESPACE " "
201
+ LITERAL_PAT
202
+ LITERAL
203
+ INT_NUMBER "0"
204
+ WHITESPACE " "
205
+ R_CURLY "}"
206
+ WHITESPACE " "
207
+ FAT_ARROW "=>"
208
+ WHITESPACE " "
209
+ TUPLE_EXPR
210
+ L_PAREN "("
211
+ R_PAREN ")"
212
+ COMMA ","
213
+ WHITESPACE "\n "
214
+ MATCH_ARM
215
+ RECORD_PAT
216
+ PATH
217
+ PATH_SEGMENT
218
+ NAME_REF
219
+ IDENT "S"
220
+ WHITESPACE " "
221
+ RECORD_PAT_FIELD_LIST
222
+ L_CURLY "{"
223
+ WHITESPACE " "
224
+ RECORD_PAT_FIELD
225
+ NAME_REF
226
+ IDENT "a"
227
+ COLON ":"
228
+ WHITESPACE " "
229
+ RANGE_PAT
230
+ LITERAL_PAT
231
+ LITERAL
232
+ INT_NUMBER "1"
233
+ DOT2 ".."
234
+ WHITESPACE " "
235
+ R_CURLY "}"
236
+ WHITESPACE " "
237
+ FAT_ARROW "=>"
238
+ WHITESPACE " "
239
+ TUPLE_EXPR
240
+ L_PAREN "("
241
+ R_PAREN ")"
242
+ COMMA ","
243
+ WHITESPACE "\n "
244
+ R_CURLY "}"
245
+ WHITESPACE "\n\n "
246
+ EXPR_STMT
247
+ MATCH_EXPR
248
+ MATCH_KW "match"
249
+ WHITESPACE " "
250
+ TUPLE_EXPR
251
+ L_PAREN "("
252
+ R_PAREN ")"
253
+ WHITESPACE " "
254
+ MATCH_ARM_LIST
255
+ L_CURLY "{"
256
+ WHITESPACE "\n "
257
+ MATCH_ARM
258
+ SLICE_PAT
259
+ L_BRACK "["
260
+ LITERAL_PAT
261
+ LITERAL
262
+ INT_NUMBER "0"
263
+ R_BRACK "]"
264
+ WHITESPACE " "
265
+ FAT_ARROW "=>"
266
+ WHITESPACE " "
267
+ TUPLE_EXPR
268
+ L_PAREN "("
269
+ R_PAREN ")"
270
+ COMMA ","
271
+ WHITESPACE "\n "
272
+ MATCH_ARM
273
+ SLICE_PAT
274
+ L_BRACK "["
275
+ RANGE_PAT
276
+ LITERAL_PAT
277
+ LITERAL
278
+ INT_NUMBER "1"
279
+ DOT2 ".."
280
+ R_BRACK "]"
281
+ WHITESPACE " "
282
+ FAT_ARROW "=>"
283
+ WHITESPACE " "
284
+ TUPLE_EXPR
285
+ L_PAREN "("
286
+ R_PAREN ")"
287
+ COMMA ","
288
+ WHITESPACE "\n "
289
+ R_CURLY "}"
290
+ WHITESPACE "\n\n "
175
291
MATCH_EXPR
176
292
MATCH_KW "match"
177
293
WHITESPACE " "
Original file line number Diff line number Diff line change @@ -11,6 +11,16 @@ fn main() {
11
11
Some ( 1 ..) => ( )
12
12
}
13
13
14
+ match ( ) {
15
+ S { a : 0 } => ( ) ,
16
+ S { a : 1 .. } => ( ) ,
17
+ }
18
+
19
+ match ( ) {
20
+ [ 0 ] => ( ) ,
21
+ [ 1 ..] => ( ) ,
22
+ }
23
+
14
24
match ( 10 as u8 , 5 as u8 ) {
15
25
( 0 , _) => ( ) ,
16
26
( 1 .., _) => ( )
You can’t perform that action at this time.
0 commit comments