File tree Expand file tree Collapse file tree 6 files changed +69
-21
lines changed
src/tools/rust-analyzer/crates/parser 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 {
562562
563563 let m = p. start ( ) ;
564564
565+ // test closure_binder
566+ // fn main() { for<'a> || (); }
565567 if p. at ( T ! [ for ] ) {
568+ let b = p. start ( ) ;
566569 types:: for_binder ( p) ;
570+ b. complete ( p, CLOSURE_BINDER ) ;
567571 }
568572 // test const_closure
569573 // fn main() { let cl = const || _ = 0; }
Original file line number Diff line number Diff line change @@ -83,6 +83,10 @@ mod ok {
8383 #[ test]
8484 fn cast_expr ( ) { run_and_expect_no_errors ( "test_data/parser/inline/ok/cast_expr.rs" ) ; }
8585 #[ test]
86+ fn closure_binder ( ) {
87+ run_and_expect_no_errors ( "test_data/parser/inline/ok/closure_binder.rs" ) ;
88+ }
89+ #[ test]
8690 fn closure_body_underscore_assignment ( ) {
8791 run_and_expect_no_errors (
8892 "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
186186 TUPLE_EXPR
187187 L_PAREN "("
188188 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 ">"
196197 WHITESPACE " "
197198 BIN_EXPR
198199 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
202202 WHITESPACE "\n "
203203 EXPR_STMT
204204 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 ">"
212213 WHITESPACE " "
213214 PARAM_LIST
214215 PIPE "|"
@@ -222,13 +223,14 @@ SOURCE_FILE
222223 WHITESPACE "\n "
223224 EXPR_STMT
224225 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 ">"
232234 WHITESPACE " "
233235 MOVE_KW "move"
234236 WHITESPACE " "
You can’t perform that action at this time.
0 commit comments