@@ -19,7 +19,7 @@ use syntax::source_map::{BytePos, Span};
19
19
use comment:: { combine_strs_with_missing_comments, contains_comment} ;
20
20
use expr:: rewrite_field;
21
21
use items:: { rewrite_struct_field, rewrite_struct_field_prefix} ;
22
- use lists:: { definitive_tactic, itemize_list, write_list, ListFormatting , Separator } ;
22
+ use lists:: { definitive_tactic, itemize_list, write_list, ListFormatting , ListItem , Separator } ;
23
23
use rewrite:: { Rewrite , RewriteContext } ;
24
24
use shape:: { Indent , Shape } ;
25
25
use source_map:: SpanUtils ;
@@ -227,7 +227,7 @@ fn rewrite_aligned_items_inner<T: AlignedItem>(
227
227
field_prefix_max_width = 0 ;
228
228
}
229
229
230
- let items = itemize_list (
230
+ let mut items = itemize_list (
231
231
context. snippet_provider ,
232
232
fields. iter ( ) ,
233
233
"}" ,
@@ -248,6 +248,20 @@ fn rewrite_aligned_items_inner<T: AlignedItem>(
248
248
one_line_width,
249
249
) ;
250
250
251
+ if tactic == DefinitiveListTactic :: Horizontal {
252
+ // since the items fits on a line, there is no need to align them
253
+ let do_rewrite =
254
+ |field : & T | -> Option < String > { field. rewrite_aligned_item ( context, item_shape, 0 ) } ;
255
+ fields
256
+ . iter ( )
257
+ . zip ( items. iter_mut ( ) )
258
+ . for_each ( |( field, list_item) : ( & T , & mut ListItem ) | {
259
+ if list_item. item . is_some ( ) {
260
+ list_item. item = do_rewrite ( field) ;
261
+ }
262
+ } ) ;
263
+ }
264
+
251
265
let fmt = ListFormatting :: new ( item_shape, context. config )
252
266
. tactic ( tactic)
253
267
. trailing_separator ( context. config . trailing_comma ( ) )
0 commit comments