@@ -3,7 +3,7 @@ use std::cmp::min;
33
44use itertools:: Itertools ;
55use rustc_ast:: token:: { Delimiter , Lit , LitKind } ;
6- use rustc_ast:: { ast, ptr, token} ;
6+ use rustc_ast:: { ast, ptr, token, ForLoopKind } ;
77use rustc_span:: { BytePos , Span } ;
88
99use crate :: chains:: rewrite_chain;
@@ -134,7 +134,7 @@ pub(crate) fn format_expr(
134134 }
135135 ast:: ExprKind :: Let ( ref pat, ref expr, _span, _) => rewrite_let ( context, shape, pat, expr) ,
136136 ast:: ExprKind :: If ( ..)
137- | ast:: ExprKind :: ForLoop ( .. )
137+ | ast:: ExprKind :: ForLoop { .. }
138138 | ast:: ExprKind :: Loop ( ..)
139139 | ast:: ExprKind :: While ( ..) => to_control_flow ( expr, expr_type)
140140 . 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<
682682 expr. span ,
683683 ) )
684684 }
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+ ) ) ,
688694 ast:: ExprKind :: Loop ( ref block, label, _) => {
689695 Some ( ControlFlow :: new_loop ( block, label, expr. span ) )
690696 }
@@ -771,14 +777,18 @@ impl<'a> ControlFlow<'a> {
771777 block : & ' a ast:: Block ,
772778 label : Option < ast:: Label > ,
773779 span : Span ,
780+ kind : ForLoopKind ,
774781 ) -> ControlFlow < ' a > {
775782 ControlFlow {
776783 cond : Some ( cond) ,
777784 block,
778785 else_block : None ,
779786 label,
780787 pat : Some ( pat) ,
781- keyword : "for" ,
788+ keyword : match kind {
789+ ForLoopKind :: For => "for" ,
790+ ForLoopKind :: ForAwait => "for await" ,
791+ } ,
782792 matcher : "" ,
783793 connector : " in" ,
784794 allow_single_line : false ,
@@ -1364,7 +1374,7 @@ pub(crate) fn can_be_overflowed_expr(
13641374 || context. config . overflow_delimited_expr ( )
13651375 }
13661376 ast:: ExprKind :: If ( ..)
1367- | ast:: ExprKind :: ForLoop ( .. )
1377+ | ast:: ExprKind :: ForLoop { .. }
13681378 | ast:: ExprKind :: Loop ( ..)
13691379 | ast:: ExprKind :: While ( ..) => {
13701380 context. config . combine_control_expr ( ) && context. use_block_indent ( ) && args_len == 1
0 commit comments