@@ -3,7 +3,7 @@ use std::cmp::min;
3
3
4
4
use itertools:: Itertools ;
5
5
use rustc_ast:: token:: { Delimiter , Lit , LitKind } ;
6
- use rustc_ast:: { ast, ptr, token} ;
6
+ use rustc_ast:: { ast, ptr, token, ForLoopKind } ;
7
7
use rustc_span:: { BytePos , Span } ;
8
8
9
9
use crate :: chains:: rewrite_chain;
@@ -134,7 +134,7 @@ pub(crate) fn format_expr(
134
134
}
135
135
ast:: ExprKind :: Let ( ref pat, ref expr, _span, _) => rewrite_let ( context, shape, pat, expr) ,
136
136
ast:: ExprKind :: If ( ..)
137
- | ast:: ExprKind :: ForLoop ( .. )
137
+ | ast:: ExprKind :: ForLoop { .. }
138
138
| ast:: ExprKind :: Loop ( ..)
139
139
| ast:: ExprKind :: While ( ..) => to_control_flow ( expr, expr_type)
140
140
. and_then ( |control_flow| control_flow. rewrite ( context, shape) ) ,
@@ -682,9 +682,15 @@ fn to_control_flow(expr: &ast::Expr, expr_type: ExprType) -> Option<ControlFlow<
682
682
expr. span ,
683
683
) )
684
684
}
685
- ast:: ExprKind :: ForLoop ( ref pat, ref cond, ref block, label) => {
686
- Some ( ControlFlow :: new_for ( pat, cond, block, label, expr. span ) )
687
- }
685
+ ast:: ExprKind :: ForLoop {
686
+ ref pat,
687
+ ref iter,
688
+ ref body,
689
+ label,
690
+ kind,
691
+ } => Some ( ControlFlow :: new_for (
692
+ pat, iter, body, label, expr. span , kind,
693
+ ) ) ,
688
694
ast:: ExprKind :: Loop ( ref block, label, _) => {
689
695
Some ( ControlFlow :: new_loop ( block, label, expr. span ) )
690
696
}
@@ -771,14 +777,18 @@ impl<'a> ControlFlow<'a> {
771
777
block : & ' a ast:: Block ,
772
778
label : Option < ast:: Label > ,
773
779
span : Span ,
780
+ kind : ForLoopKind ,
774
781
) -> ControlFlow < ' a > {
775
782
ControlFlow {
776
783
cond : Some ( cond) ,
777
784
block,
778
785
else_block : None ,
779
786
label,
780
787
pat : Some ( pat) ,
781
- keyword : "for" ,
788
+ keyword : match kind {
789
+ ForLoopKind :: For => "for" ,
790
+ ForLoopKind :: ForAwait => "for await" ,
791
+ } ,
782
792
matcher : "" ,
783
793
connector : " in" ,
784
794
allow_single_line : false ,
@@ -1364,7 +1374,7 @@ pub(crate) fn can_be_overflowed_expr(
1364
1374
|| context. config . overflow_delimited_expr ( )
1365
1375
}
1366
1376
ast:: ExprKind :: If ( ..)
1367
- | ast:: ExprKind :: ForLoop ( .. )
1377
+ | ast:: ExprKind :: ForLoop { .. }
1368
1378
| ast:: ExprKind :: Loop ( ..)
1369
1379
| ast:: ExprKind :: While ( ..) => {
1370
1380
context. config . combine_control_expr ( ) && context. use_block_indent ( ) && args_len == 1
0 commit comments