@@ -88,6 +88,8 @@ pub(crate) struct FmtVisitor<'a> {
88
88
pub ( crate ) macro_rewrite_failure : bool ,
89
89
pub ( crate ) report : FormatReport ,
90
90
pub ( crate ) skip_context : SkipContext ,
91
+ /// If set to `true`, normalize number of vertical spaces on formatting missing snippets.
92
+ pub ( crate ) normalize_vertical_spaces : bool ,
91
93
}
92
94
93
95
impl < ' a > Drop for FmtVisitor < ' a > {
@@ -141,7 +143,7 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
141
143
142
144
match stmt. as_ast_node ( ) . kind {
143
145
ast:: StmtKind :: Item ( ref item) => {
144
- self . visit_item ( item) ;
146
+ self . visit_item ( item, true ) ;
145
147
// If the item requires a trailing ";" (like `struct Foo;`), we should have already
146
148
// handled it. Otherwise there still may be a trailing ";", but it is unnecessary.
147
149
// Drop it by fast-forwarding the visitor to the end of the item.
@@ -408,7 +410,12 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
408
410
self . visit_block ( block, inner_attrs, true )
409
411
}
410
412
411
- pub ( crate ) fn visit_item ( & mut self , item : & ast:: Item ) {
413
+ pub ( crate ) fn visit_item ( & mut self , item : & ast:: Item , normalize_spaces : bool ) {
414
+ self . normalize_vertical_spaces = normalize_spaces;
415
+ self . visit_item_inner ( item) ;
416
+ }
417
+
418
+ fn visit_item_inner ( & mut self , item : & ast:: Item ) {
412
419
skip_out_of_file_lines_range_visitor ! ( self , item. span) ;
413
420
414
421
// This is where we bail out if there is a skip attribute. This is only
@@ -819,6 +826,7 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
819
826
macro_rewrite_failure : false ,
820
827
report,
821
828
skip_context : Default :: default ( ) ,
829
+ normalize_vertical_spaces : false ,
822
830
}
823
831
}
824
832
0 commit comments