@@ -16,7 +16,7 @@ use crate::config::{Config, GroupImportsTactic};
1616use crate :: imports:: { UseSegmentKind , UseTree , normalize_use_trees_with_granularity} ;
1717use crate :: items:: { is_mod_decl, rewrite_extern_crate, rewrite_mod} ;
1818use crate :: lists:: { ListFormatting , ListItem , itemize_list, write_list} ;
19- use crate :: rewrite:: { RewriteContext , RewriteErrorExt } ;
19+ use crate :: rewrite:: { RewriteContext , RewriteError , RewriteErrorExt , RewriteResult } ;
2020use crate :: shape:: Shape ;
2121use crate :: sort:: version_sort;
2222use crate :: source_map:: LineRangeUtils ;
@@ -69,11 +69,11 @@ fn wrap_reorderable_items(
6969 context : & RewriteContext < ' _ > ,
7070 list_items : & [ ListItem ] ,
7171 shape : Shape ,
72- ) -> Option < String > {
72+ ) -> RewriteResult {
7373 let fmt = ListFormatting :: new ( shape, context. config )
7474 . separator ( "" )
7575 . align_comments ( false ) ;
76- write_list ( list_items, & fmt) . ok ( )
76+ write_list ( list_items, & fmt)
7777}
7878
7979fn rewrite_reorderable_item (
@@ -96,7 +96,7 @@ fn rewrite_reorderable_or_regroupable_items(
9696 reorderable_items : & [ & ast:: Item ] ,
9797 shape : Shape ,
9898 span : Span ,
99- ) -> Option < String > {
99+ ) -> RewriteResult {
100100 match reorderable_items[ 0 ] . kind {
101101 // FIXME: Remove duplicated code.
102102 ast:: ItemKind :: Use ( ..) => {
@@ -138,7 +138,7 @@ fn rewrite_reorderable_or_regroupable_items(
138138 }
139139
140140 // 4 = "use ", 1 = ";"
141- let nested_shape = shape. offset_left_opt ( 4 ) ?. sub_width_opt ( 1 ) ?;
141+ let nested_shape = shape. offset_left ( 4 , span ) ?. sub_width ( 1 , span ) ?;
142142 let item_vec: Vec < _ > = regrouped_items
143143 . into_iter ( )
144144 . filter ( |use_group| !use_group. is_empty ( ) )
@@ -159,10 +159,10 @@ fn rewrite_reorderable_or_regroupable_items(
159159 . collect ( ) ;
160160 wrap_reorderable_items ( context, & item_vec, nested_shape)
161161 } )
162- . collect :: < Option < Vec < _ > > > ( ) ?;
162+ . collect :: < Result < Vec < _ > , RewriteError > > ( ) ?;
163163
164164 let join_string = format ! ( "\n \n {}" , shape. indent. to_string( context. config) ) ;
165- Some ( item_vec. join ( & join_string) )
165+ Ok ( item_vec. join ( & join_string) )
166166 }
167167 _ => {
168168 let list_items = itemize_list (
@@ -313,7 +313,7 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
313313 self . shape ( ) ,
314314 span,
315315 ) ;
316- self . push_rewrite ( span, rw) ;
316+ self . push_rewrite ( span, rw. ok ( ) ) ;
317317 } else {
318318 for item in items {
319319 self . push_rewrite ( item. span , None ) ;
0 commit comments