File tree Expand file tree Collapse file tree 6 files changed +69
-21
lines changed Expand file tree Collapse file tree 6 files changed +69
-21
lines changed Original file line number Diff line number Diff line change @@ -562,8 +562,12 @@ fn closure_expr(p: &mut Parser<'_>) -> CompletedMarker {
562
562
563
563
let m = p. start ( ) ;
564
564
565
+ // test closure_binder
566
+ // fn main() { for<'a> || (); }
565
567
if p. at ( T ! [ for ] ) {
568
+ let b = p. start ( ) ;
566
569
types:: for_binder ( p) ;
570
+ b. complete ( p, CLOSURE_BINDER ) ;
567
571
}
568
572
// test const_closure
569
573
// fn main() { let cl = const || _ = 0; }
Original file line number Diff line number Diff line change @@ -83,6 +83,10 @@ mod ok {
83
83
#[ test]
84
84
fn cast_expr ( ) { run_and_expect_no_errors ( "test_data/parser/inline/ok/cast_expr.rs" ) ; }
85
85
#[ test]
86
+ fn closure_binder ( ) {
87
+ run_and_expect_no_errors ( "test_data/parser/inline/ok/closure_binder.rs" ) ;
88
+ }
89
+ #[ test]
86
90
fn closure_body_underscore_assignment ( ) {
87
91
run_and_expect_no_errors (
88
92
"test_data/parser/inline/ok/closure_body_underscore_assignment.rs" ,
Original file line number Diff line number Diff line change @@ -186,13 +186,14 @@ SOURCE_FILE
186
186
TUPLE_EXPR
187
187
L_PAREN "("
188
188
CLOSURE_EXPR
189
- FOR_KW "for"
190
- GENERIC_PARAM_LIST
191
- L_ANGLE "<"
192
- LIFETIME_PARAM
193
- LIFETIME
194
- LIFETIME_IDENT "'a"
195
- R_ANGLE ">"
189
+ CLOSURE_BINDER
190
+ FOR_KW "for"
191
+ GENERIC_PARAM_LIST
192
+ L_ANGLE "<"
193
+ LIFETIME_PARAM
194
+ LIFETIME
195
+ LIFETIME_IDENT "'a"
196
+ R_ANGLE ">"
196
197
WHITESPACE " "
197
198
BIN_EXPR
198
199
BIN_EXPR
Original file line number Diff line number Diff line change
1
+ SOURCE_FILE
2
+ FN
3
+ FN_KW "fn"
4
+ WHITESPACE " "
5
+ NAME
6
+ IDENT "main"
7
+ PARAM_LIST
8
+ L_PAREN "("
9
+ R_PAREN ")"
10
+ WHITESPACE " "
11
+ BLOCK_EXPR
12
+ STMT_LIST
13
+ L_CURLY "{"
14
+ WHITESPACE " "
15
+ EXPR_STMT
16
+ CLOSURE_EXPR
17
+ CLOSURE_BINDER
18
+ FOR_KW "for"
19
+ GENERIC_PARAM_LIST
20
+ L_ANGLE "<"
21
+ LIFETIME_PARAM
22
+ LIFETIME
23
+ LIFETIME_IDENT "'a"
24
+ R_ANGLE ">"
25
+ WHITESPACE " "
26
+ PARAM_LIST
27
+ PIPE "|"
28
+ PIPE "|"
29
+ WHITESPACE " "
30
+ TUPLE_EXPR
31
+ L_PAREN "("
32
+ R_PAREN ")"
33
+ SEMICOLON ";"
34
+ WHITESPACE " "
35
+ R_CURLY "}"
36
+ WHITESPACE "\n"
Original file line number Diff line number Diff line change
1
+ fn main ( ) { for <' a > || ( ) ; }
Original file line number Diff line number Diff line change @@ -202,13 +202,14 @@ SOURCE_FILE
202
202
WHITESPACE "\n "
203
203
EXPR_STMT
204
204
CLOSURE_EXPR
205
- FOR_KW "for"
206
- GENERIC_PARAM_LIST
207
- L_ANGLE "<"
208
- LIFETIME_PARAM
209
- LIFETIME
210
- LIFETIME_IDENT "'a"
211
- R_ANGLE ">"
205
+ CLOSURE_BINDER
206
+ FOR_KW "for"
207
+ GENERIC_PARAM_LIST
208
+ L_ANGLE "<"
209
+ LIFETIME_PARAM
210
+ LIFETIME
211
+ LIFETIME_IDENT "'a"
212
+ R_ANGLE ">"
212
213
WHITESPACE " "
213
214
PARAM_LIST
214
215
PIPE "|"
@@ -222,13 +223,14 @@ SOURCE_FILE
222
223
WHITESPACE "\n "
223
224
EXPR_STMT
224
225
CLOSURE_EXPR
225
- FOR_KW "for"
226
- GENERIC_PARAM_LIST
227
- L_ANGLE "<"
228
- LIFETIME_PARAM
229
- LIFETIME
230
- LIFETIME_IDENT "'a"
231
- R_ANGLE ">"
226
+ CLOSURE_BINDER
227
+ FOR_KW "for"
228
+ GENERIC_PARAM_LIST
229
+ L_ANGLE "<"
230
+ LIFETIME_PARAM
231
+ LIFETIME
232
+ LIFETIME_IDENT "'a"
233
+ R_ANGLE ">"
232
234
WHITESPACE " "
233
235
MOVE_KW "move"
234
236
WHITESPACE " "
You can’t perform that action at this time.
0 commit comments